diff --git a/cairo_programs/print_features/print_array.cairo b/cairo_programs/print_features/print_array.cairo new file mode 100644 index 00000000..33214a91 --- /dev/null +++ b/cairo_programs/print_features/print_array.cairo @@ -0,0 +1,20 @@ +%builtins range_check + +from starkware.cairo.common.alloc import alloc + +func main{range_check_ptr: felt}() { + let name = 0x4b4b5254; + let (arr: felt*) = alloc(); + assert arr[0] = 1; + assert arr[1] = 2; + assert arr[2] = 3; + assert arr[3] = 4; + assert arr[4] = 5; + let arr_len = 5; + %{ + print(bytes.fromhex(f"{ids.name:062x}").decode().replace('\x00','')) + arr = [memory[ids.arr + i] for i in range(ids.arr_len)] + print(arr) + %} + return(); +} \ No newline at end of file diff --git a/cairo_programs/print_features/print_array.json b/cairo_programs/print_features/print_array.json new file mode 100644 index 00000000..9ee65831 --- /dev/null +++ b/cairo_programs/print_features/print_array.json @@ -0,0 +1,837 @@ +{ + "attributes": [], + "builtins": [ + "range_check" + ], + "compiler_version": "0.13.1", + "data": [ + "0x40780017fff7fff", + "0x1", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffffe", + "0x480680017fff8000", + "0x1", + "0x400080007ffe7fff", + "0x480680017fff8000", + "0x2", + "0x400080017ffd7fff", + "0x480680017fff8000", + "0x3", + "0x400080027ffc7fff", + "0x480680017fff8000", + "0x4", + "0x400080037ffb7fff", + "0x480680017fff8000", + "0x5", + "0x400080047ffa7fff", + "0x480a7ffd7fff8000", + "0x208b7fff7fff7ffe" + ], + "debug_info": { + "file_contents": {}, + "instruction_locations": { + "0": { + "accessible_scopes": [ + "starkware.cairo.common.alloc", + "starkware.cairo.common.alloc.alloc" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 0 + }, + "reference_ids": {} + }, + "hints": [ + { + "location": { + "end_col": 38, + "end_line": 3, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/alloc.cairo" + }, + "start_col": 5, + "start_line": 3 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 12, + "end_line": 4, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/alloc.cairo" + }, + "start_col": 5, + "start_line": 4 + } + }, + "2": { + "accessible_scopes": [ + "starkware.cairo.common.alloc", + "starkware.cairo.common.alloc.alloc" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 1 + }, + "reference_ids": {} + }, + "hints": [], + "inst": { + "end_col": 40, + "end_line": 5, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/alloc.cairo" + }, + "start_col": 5, + "start_line": 5 + } + }, + "3": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 0 + }, + "reference_ids": { + "__main__.main.name": 1, + "__main__.main.range_check_ptr": 0 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 7, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "start_col": 24, + "start_line": 7 + } + }, + "5": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 3 + }, + "reference_ids": { + "__main__.main.arr": 2, + "__main__.main.name": 1, + "__main__.main.range_check_ptr": 0 + } + }, + "hints": [], + "inst": { + "end_col": 22, + "end_line": 8, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "start_col": 21, + "start_line": 8 + } + }, + "7": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 4 + }, + "reference_ids": { + "__main__.main.__temp0": 3, + "__main__.main.arr": 2, + "__main__.main.name": 1, + "__main__.main.range_check_ptr": 0 + } + }, + "hints": [], + "inst": { + "end_col": 23, + "end_line": 8, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "start_col": 5, + "start_line": 8 + } + }, + "8": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 4 + }, + "reference_ids": { + "__main__.main.__temp0": 3, + "__main__.main.arr": 2, + "__main__.main.name": 1, + "__main__.main.range_check_ptr": 0 + } + }, + "hints": [], + "inst": { + "end_col": 22, + "end_line": 9, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "start_col": 21, + "start_line": 9 + } + }, + "10": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 5 + }, + "reference_ids": { + "__main__.main.__temp0": 3, + "__main__.main.__temp1": 4, + "__main__.main.arr": 2, + "__main__.main.name": 1, + "__main__.main.range_check_ptr": 0 + } + }, + "hints": [], + "inst": { + "end_col": 23, + "end_line": 9, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "start_col": 5, + "start_line": 9 + } + }, + "11": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 5 + }, + "reference_ids": { + "__main__.main.__temp0": 3, + "__main__.main.__temp1": 4, + "__main__.main.arr": 2, + "__main__.main.name": 1, + "__main__.main.range_check_ptr": 0 + } + }, + "hints": [], + "inst": { + "end_col": 22, + "end_line": 10, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "start_col": 21, + "start_line": 10 + } + }, + "13": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 6 + }, + "reference_ids": { + "__main__.main.__temp0": 3, + "__main__.main.__temp1": 4, + "__main__.main.__temp2": 5, + "__main__.main.arr": 2, + "__main__.main.name": 1, + "__main__.main.range_check_ptr": 0 + } + }, + "hints": [], + "inst": { + "end_col": 23, + "end_line": 10, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "start_col": 5, + "start_line": 10 + } + }, + "14": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 6 + }, + "reference_ids": { + "__main__.main.__temp0": 3, + "__main__.main.__temp1": 4, + "__main__.main.__temp2": 5, + "__main__.main.arr": 2, + "__main__.main.name": 1, + "__main__.main.range_check_ptr": 0 + } + }, + "hints": [], + "inst": { + "end_col": 22, + "end_line": 11, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "start_col": 21, + "start_line": 11 + } + }, + "16": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 7 + }, + "reference_ids": { + "__main__.main.__temp0": 3, + "__main__.main.__temp1": 4, + "__main__.main.__temp2": 5, + "__main__.main.__temp3": 6, + "__main__.main.arr": 2, + "__main__.main.name": 1, + "__main__.main.range_check_ptr": 0 + } + }, + "hints": [], + "inst": { + "end_col": 23, + "end_line": 11, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "start_col": 5, + "start_line": 11 + } + }, + "17": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 7 + }, + "reference_ids": { + "__main__.main.__temp0": 3, + "__main__.main.__temp1": 4, + "__main__.main.__temp2": 5, + "__main__.main.__temp3": 6, + "__main__.main.arr": 2, + "__main__.main.name": 1, + "__main__.main.range_check_ptr": 0 + } + }, + "hints": [], + "inst": { + "end_col": 22, + "end_line": 12, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "start_col": 21, + "start_line": 12 + } + }, + "19": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 8 + }, + "reference_ids": { + "__main__.main.__temp0": 3, + "__main__.main.__temp1": 4, + "__main__.main.__temp2": 5, + "__main__.main.__temp3": 6, + "__main__.main.__temp4": 7, + "__main__.main.arr": 2, + "__main__.main.name": 1, + "__main__.main.range_check_ptr": 0 + } + }, + "hints": [], + "inst": { + "end_col": 23, + "end_line": 12, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "start_col": 5, + "start_line": 12 + } + }, + "20": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 8 + }, + "reference_ids": { + "__main__.main.__temp0": 3, + "__main__.main.__temp1": 4, + "__main__.main.__temp2": 5, + "__main__.main.__temp3": 6, + "__main__.main.__temp4": 7, + "__main__.main.arr": 2, + "__main__.main.arr_len": 8, + "__main__.main.name": 1, + "__main__.main.range_check_ptr": 0 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 18, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "start_col": 5, + "start_line": 14 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 32, + "end_line": 5, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "parent_location": [ + { + "end_col": 32, + "end_line": 5, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "parent_location": [ + { + "end_col": 14, + "end_line": 19, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "start_col": 5, + "start_line": 19 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 11, + "start_line": 5 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 11, + "start_line": 5 + } + }, + "21": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 9 + }, + "reference_ids": { + "__main__.main.__temp0": 3, + "__main__.main.__temp1": 4, + "__main__.main.__temp2": 5, + "__main__.main.__temp3": 6, + "__main__.main.__temp4": 7, + "__main__.main.arr": 2, + "__main__.main.arr_len": 8, + "__main__.main.name": 1, + "__main__.main.range_check_ptr": 0 + } + }, + "hints": [], + "inst": { + "end_col": 14, + "end_line": 19, + "input_file": { + "filename": "cairo_programs/print_features/print_array.cairo" + }, + "start_col": 5, + "start_line": 19 + } + } + } + }, + "hints": { + "0": [ + { + "accessible_scopes": [ + "starkware.cairo.common.alloc", + "starkware.cairo.common.alloc.alloc" + ], + "code": "memory[ap] = segments.add()", + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 0 + }, + "reference_ids": {} + } + } + ], + "20": [ + { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "code": "print(bytes.fromhex(f\"{ids.name:062x}\").decode().replace('\\x00',''))\narr = [memory[ids.arr + i] for i in range(ids.arr_len)]\nprint(arr)", + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 8 + }, + "reference_ids": { + "__main__.main.__temp0": 3, + "__main__.main.__temp1": 4, + "__main__.main.__temp2": 5, + "__main__.main.__temp3": 6, + "__main__.main.__temp4": 7, + "__main__.main.arr": 2, + "__main__.main.arr_len": 8, + "__main__.main.name": 1, + "__main__.main.range_check_ptr": 0 + } + } + } + ] + }, + "identifiers": { + "__main__.alloc": { + "destination": "starkware.cairo.common.alloc.alloc", + "type": "alias" + }, + "__main__.main": { + "decorators": [], + "pc": 3, + "type": "function" + }, + "__main__.main.Args": { + "full_name": "__main__.main.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "__main__.main.ImplicitArgs": { + "full_name": "__main__.main.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "__main__.main.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "__main__.main.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "__main__.main.__temp0": { + "cairo_type": "felt", + "full_name": "__main__.main.__temp0", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 4 + }, + "pc": 7, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "__main__.main.__temp1": { + "cairo_type": "felt", + "full_name": "__main__.main.__temp1", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 5 + }, + "pc": 10, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "__main__.main.__temp2": { + "cairo_type": "felt", + "full_name": "__main__.main.__temp2", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 6 + }, + "pc": 13, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "__main__.main.__temp3": { + "cairo_type": "felt", + "full_name": "__main__.main.__temp3", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 7 + }, + "pc": 16, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "__main__.main.__temp4": { + "cairo_type": "felt", + "full_name": "__main__.main.__temp4", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 8 + }, + "pc": 19, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "__main__.main.arr": { + "cairo_type": "felt*", + "full_name": "__main__.main.arr", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 3 + }, + "pc": 5, + "value": "[cast(ap + (-1), felt**)]" + } + ], + "type": "reference" + }, + "__main__.main.arr_len": { + "cairo_type": "felt", + "full_name": "__main__.main.arr_len", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 8 + }, + "pc": 20, + "value": "cast(5, felt)" + } + ], + "type": "reference" + }, + "__main__.main.name": { + "cairo_type": "felt", + "full_name": "__main__.main.name", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 0 + }, + "pc": 3, + "value": "cast(1263227476, felt)" + } + ], + "type": "reference" + }, + "__main__.main.range_check_ptr": { + "cairo_type": "felt", + "full_name": "__main__.main.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 0 + }, + "pc": 3, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.alloc.alloc": { + "decorators": [], + "pc": 0, + "type": "function" + }, + "starkware.cairo.common.alloc.alloc.Args": { + "full_name": "starkware.cairo.common.alloc.alloc.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.common.alloc.alloc.ImplicitArgs": { + "full_name": "starkware.cairo.common.alloc.alloc.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.common.alloc.alloc.Return": { + "cairo_type": "(ptr: felt*)", + "type": "type_definition" + }, + "starkware.cairo.common.alloc.alloc.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + } + }, + "main_scope": "__main__", + "prime": "0x800000000000011000000000000000000000000000000000000000000000001", + "reference_manager": { + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 0 + }, + "pc": 3, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 0 + }, + "pc": 3, + "value": "cast(1263227476, felt)" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 3 + }, + "pc": 5, + "value": "[cast(ap + (-1), felt**)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 4 + }, + "pc": 7, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 5 + }, + "pc": 10, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 6 + }, + "pc": 13, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 7 + }, + "pc": 16, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 8 + }, + "pc": 19, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 8 + }, + "pc": 20, + "value": "cast(5, felt)" + } + ] + } +} diff --git a/cairo_programs/print_features/print_dict_array.cairo b/cairo_programs/print_features/print_dict_array.cairo new file mode 100644 index 00000000..fffebe23 --- /dev/null +++ b/cairo_programs/print_features/print_dict_array.cairo @@ -0,0 +1,34 @@ +%builtins range_check + +from starkware.cairo.common.dict_access import DictAccess +from starkware.cairo.common.default_dict import default_dict_new, default_dict_finalize +from starkware.cairo.common.dict import dict_write + +struct MyStruct { + a: felt, + b: felt, + c: felt, +} + +func main{range_check_ptr: felt}() { + let name = 0x4b4b5254; + let (dict_ptr) = default_dict_new(0); + let pointer_size = 3; + + tempvar one = new MyStruct(1,2,3); + dict_write{dict_ptr=dict_ptr}(0, cast(one, felt)); + tempvar two = new MyStruct(2,3,4); + dict_write{dict_ptr=dict_ptr}(1, cast(two, felt)); + tempvar three = new MyStruct(3,4,5); + dict_write{dict_ptr=dict_ptr}(2, cast(three, felt)); + tempvar four = new MyStruct(4,5,6); + dict_write{dict_ptr=dict_ptr}(3, cast(four, felt)); + %{ + print(bytes.fromhex(f"{ids.name:062x}").decode().replace('\x00','')) + data = __dict_manager.get_dict(ids.dict_ptr) + print( + {k: v if isinstance(v, int) else [memory[v + i] for i in range(ids.pointer_size)] for k, v in data.items()} + ) + %} + return(); +} \ No newline at end of file diff --git a/cairo_programs/print_features/print_dict_array.json b/cairo_programs/print_features/print_dict_array.json new file mode 100644 index 00000000..9fb98b3a --- /dev/null +++ b/cairo_programs/print_features/print_dict_array.json @@ -0,0 +1,11890 @@ +{ + "attributes": [], + "builtins": [ + "range_check" + ], + "compiler_version": "0.13.1", + "data": [ + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x800000000000011000000000000000000000000000000000000000000000000", + "0x482480017ffe8000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffff", + "0x208b7fff7fff7ffe", + "0x480280007ffb8000", + "0x480280017ffb8000", + "0x484480017fff8000", + "0x2aaaaaaaaaaaab05555555555555556", + "0x48307fff7ffd8000", + "0x480280027ffb8000", + "0x480280037ffb8000", + "0x484480017fff8000", + "0x4000000000000088000000000000001", + "0x48307fff7ffd8000", + "0xa0680017fff8000", + "0xe", + "0x480680017fff8000", + "0x800000000000011000000000000000000000000000000000000000000000000", + "0x48287ffc80007fff", + "0x40307ffc7ff87fff", + "0x48297ffd80007ffc", + "0x482680017ffd8000", + "0x1", + "0x48507fff7ffe8000", + "0x40507ff97ff57fff", + "0x482680017ffb8000", + "0x4", + "0x208b7fff7fff7ffe", + "0xa0680017fff8000", + "0xc", + "0x480680017fff8000", + "0x800000000000011000000000000000000000000000000000000000000000000", + "0x48287ffd80007fff", + "0x48327fff7ffc8000", + "0x40307ffa7ff67fff", + "0x48527ffe7ffc8000", + "0x40507ff97ff57fff", + "0x482680017ffb8000", + "0x4", + "0x208b7fff7fff7ffe", + "0x40317ffd7ff97ffd", + "0x48297ffc80007ffd", + "0x48527fff7ffc8000", + "0x40507ffb7ff77fff", + "0x40780017fff7fff", + "0x2", + "0x482680017ffb8000", + "0x4", + "0x208b7fff7fff7ffe", + "0x48297ffd80007ffc", + "0x20680017fff7fff", + "0x4", + "0x402780017ffc7ffc", + "0x1", + "0x480a7ffb7fff8000", + "0x480a7ffc7fff8000", + "0x480a7ffd7fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffcc", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x3", + "0x402b7ffb80007ffc", + "0x20780017fff8000", + "0x5", + "0x480a7ffa7fff8000", + "0x480a7ffd7fff8000", + "0x208b7fff7fff7ffe", + "0x4846800180008000", + "0x2aaaaaaaaaaaab0555555555555555555555555555555555555555555555556", + "0x20780017fff8002", + "0x7", + "0x400380007ffa8001", + "0x482680017ffa8000", + "0x1", + "0x10780017fff7fff", + "0x3", + "0x480a7ffa7fff8000", + "0x480a7ffb7fff8000", + "0x482680017ffc8000", + "0x800000000000011000000000000000000000000000000000000000000000000", + "0x480a80017fff8000", + "0x48127ffb7fff8000", + "0x480a7ffd7fff8000", + "0x480a80027fff8000", + "0x1104800180018000", + "0x3", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x2", + "0x480280007ff78000", + "0x484480017fff8000", + "0x3", + "0x48327fff7ff88001", + "0x4800800280007fff", + "0x482680017ff78000", + "0x1", + "0x400180007ffe7ffa", + "0x400380007ffc7ffa", + "0x400180017ffe8000", + "0x400380017ffc8000", + "0x20780017fff8001", + "0xf", + "0x480080007fff8000", + "0x482480017fff8000", + "0x1", + "0x484480017fff8000", + "0x3", + "0x48307fff7ffb8002", + "0x4000800180017ff9", + "0x4800800280018000", + "0x4001800080007ffa", + "0x482480017ffa8001", + "0x1", + "0xa0680017fff7ffd", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff6", + "0x40317ffe80007ff9", + "0x480080007fff8000", + "0x48287ff780007ffe", + "0x400280027ffc7ffb", + "0x48317fff80007ffb", + "0x20680017fff7fff", + "0x7", + "0x482480017ffc8000", + "0x1", + "0x482680017ffc8000", + "0x3", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x20780017fff7ffd", + "0xe", + "0x482680017ffa8000", + "0x1", + "0x48307fff80007ffe", + "0x400080017ff97fff", + "0x482480017ff98000", + "0x2", + "0x480a7ff87fff8000", + "0x480a7ff97fff8000", + "0x48127ffa7fff8000", + "0x48127ff87fff8000", + "0x10780017fff7fff", + "0xc", + "0x482480017ffb8000", + "0x1", + "0x480a7ffa7fff8000", + "0x48127ffd7fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff9e", + "0x480a7ff87fff8000", + "0x480a7ff97fff8000", + "0x48127fe37fff8000", + "0x48127fe17fff8000", + "0x482680017ffc8000", + "0x3", + "0x480a7ffd7fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffbc", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x208b7fff7fff7ffe", + "0x400380007ffb7ffc", + "0x400380027ffb7ffd", + "0x482680017ffb8000", + "0x3", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x1104800180018000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff7", + "0x40137fff7fff8000", + "0x480a7ffb7fff8000", + "0x480a7ffc7fff8000", + "0x480a7ffd7fff8000", + "0x480a80007fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff8c", + "0x48127ffe7fff8000", + "0x480a80007fff8000", + "0x48127ffd7fff8000", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x3", + "0x480a7ffa7fff8000", + "0x480a7ffb7fff8000", + "0x480a7ffc7fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffea", + "0x40137ffe7fff8000", + "0x40137fff7fff8001", + "0x40137ffd7fff8002", + "0x4829800080008001", + "0x480a80007fff8000", + "0x484480017ffe8000", + "0x2aaaaaaaaaaaab0555555555555555555555555555555555555555555555556", + "0x480a7ffd7fff8000", + "0x1104800180018000", + "0x6", + "0x480a80027fff8000", + "0x480a80007fff8000", + "0x480a80017fff8000", + "0x208b7fff7fff7ffe", + "0x20780017fff7ffc", + "0x3", + "0x208b7fff7fff7ffe", + "0x400380017ffb7ffd", + "0x482680017ffb8000", + "0x3", + "0x482680017ffc8000", + "0x800000000000011000000000000000000000000000000000000000000000000", + "0x480a7ffd7fff8000", + "0x1104800180018000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff8", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x0", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffdb", + "0x480680017fff8000", + "0x1", + "0x480680017fff8000", + "0x2", + "0x480680017fff8000", + "0x3", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff1b", + "0x482480017fff8000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffffe", + "0x48127ff67fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffd7fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffb7", + "0x480680017fff8000", + "0x2", + "0x480680017fff8000", + "0x3", + "0x480680017fff8000", + "0x4", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff0b", + "0x482480017fff8000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffffe", + "0x48127ff67fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffd7fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffa7", + "0x480680017fff8000", + "0x3", + "0x480680017fff8000", + "0x4", + "0x480680017fff8000", + "0x5", + "0x1104800180018000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffefb", + "0x482480017fff8000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffffe", + "0x48127ff67fff8000", + "0x480680017fff8000", + "0x2", + "0x48127ffd7fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff97", + "0x480680017fff8000", + "0x4", + "0x480680017fff8000", + "0x5", + "0x480680017fff8000", + "0x6", + "0x1104800180018000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffeeb", + "0x482480017fff8000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffffe", + "0x48127ff67fff8000", + "0x480680017fff8000", + "0x3", + "0x48127ffd7fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff87", + "0x480a7ffd7fff8000", + "0x208b7fff7fff7ffe" + ], + "debug_info": { + "file_contents": {}, + "instruction_locations": { + "0": { + "accessible_scopes": [ + "starkware.cairo.lang.compiler.lib.registers", + "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 0 + }, + "reference_ids": {} + }, + "hints": [], + "inst": { + "end_col": 73, + "end_line": 7, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/lang/compiler/lib/registers.cairo" + }, + "start_col": 5, + "start_line": 7 + } + }, + "1": { + "accessible_scopes": [ + "starkware.cairo.lang.compiler.lib.registers", + "starkware.cairo.lang.compiler.lib.registers.get_ap" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 0 + }, + "reference_ids": {} + }, + "hints": [], + "inst": { + "end_col": 43, + "end_line": 16, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/lang/compiler/lib/registers.cairo" + }, + "start_col": 28, + "start_line": 16 + } + }, + "3": { + "accessible_scopes": [ + "starkware.cairo.lang.compiler.lib.registers", + "starkware.cairo.lang.compiler.lib.registers.get_ap" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.lang.compiler.lib.registers.get_ap.fp_val": 0, + "starkware.cairo.lang.compiler.lib.registers.get_ap.pc_val": 1 + } + }, + "hints": [], + "inst": { + "end_col": 30, + "end_line": 17, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/lang/compiler/lib/registers.cairo" + }, + "start_col": 20, + "start_line": 17 + } + }, + "5": { + "accessible_scopes": [ + "starkware.cairo.lang.compiler.lib.registers", + "starkware.cairo.lang.compiler.lib.registers.get_ap" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.lang.compiler.lib.registers.get_ap.fp_val": 0, + "starkware.cairo.lang.compiler.lib.registers.get_ap.pc_val": 1 + } + }, + "hints": [], + "inst": { + "end_col": 32, + "end_line": 17, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/lang/compiler/lib/registers.cairo" + }, + "start_col": 5, + "start_line": 17 + } + }, + "6": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 4 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 184, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 164 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 42, + "end_line": 186, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 25, + "start_line": 186 + } + }, + "7": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 4 + } + }, + "hints": [], + "inst": { + "end_col": 66, + "end_line": 186, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 45, + "start_line": 186 + } + }, + "8": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 4 + } + }, + "hints": [], + "inst": { + "end_col": 86, + "end_line": 186, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 45, + "start_line": 186 + } + }, + "10": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 4 + } + }, + "hints": [], + "inst": { + "end_col": 86, + "end_line": 186, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 25, + "start_line": 186 + } + }, + "11": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 4 + } + }, + "hints": [], + "inst": { + "end_col": 45, + "end_line": 187, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 24, + "start_line": 187 + } + }, + "12": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 4 + } + }, + "hints": [], + "inst": { + "end_col": 69, + "end_line": 187, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 48, + "start_line": 187 + } + }, + "13": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 4 + } + }, + "hints": [], + "inst": { + "end_col": 89, + "end_line": 187, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 48, + "start_line": 187 + } + }, + "15": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 4 + } + }, + "hints": [], + "inst": { + "end_col": 89, + "end_line": 187, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 24, + "start_line": 187 + } + }, + "16": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 8 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [ + { + "location": { + "end_col": 49, + "end_line": 196, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 196 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 42, + "end_line": 197, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 197 + } + }, + "18": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 9 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 25, + "end_line": 198, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 23, + "start_line": 198 + } + }, + "20": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.__temp6": 16, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 30, + "end_line": 198, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 22, + "start_line": 198 + } + }, + "21": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.__temp6": 16, + "starkware.cairo.common.math.assert_le_felt.__temp7": 17, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 198, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 198 + } + }, + "22": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.__temp6": 16, + "starkware.cairo.common.math.assert_le_felt.__temp7": 17, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 29, + "end_line": 199, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 24, + "start_line": 199 + } + }, + "23": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 12 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.__temp6": 16, + "starkware.cairo.common.math.assert_le_felt.__temp7": 17, + "starkware.cairo.common.math.assert_le_felt.__temp8": 18, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 39, + "end_line": 199, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 34, + "start_line": 199 + } + }, + "25": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 13 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.__temp6": 16, + "starkware.cairo.common.math.assert_le_felt.__temp7": 17, + "starkware.cairo.common.math.assert_le_felt.__temp8": 18, + "starkware.cairo.common.math.assert_le_felt.__temp9": 19, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 40, + "end_line": 199, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 23, + "start_line": 199 + } + }, + "26": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 14 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp10": 20, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.__temp6": 16, + "starkware.cairo.common.math.assert_le_felt.__temp7": 17, + "starkware.cairo.common.math.assert_le_felt.__temp8": 18, + "starkware.cairo.common.math.assert_le_felt.__temp9": 19, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 41, + "end_line": 199, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 199 + } + }, + "27": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 14 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp10": 20, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.__temp6": 16, + "starkware.cairo.common.math.assert_le_felt.__temp7": 17, + "starkware.cairo.common.math.assert_le_felt.__temp8": 18, + "starkware.cairo.common.math.assert_le_felt.__temp9": 19, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 188, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 154, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 15, + "end_line": 200, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 200 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 21, + "start_line": 154 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 27, + "start_line": 188 + } + }, + "29": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 15 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp10": 20, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.__temp6": 16, + "starkware.cairo.common.math.assert_le_felt.__temp7": 17, + "starkware.cairo.common.math.assert_le_felt.__temp8": 18, + "starkware.cairo.common.math.assert_le_felt.__temp9": 19, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 15, + "end_line": 200, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 200 + } + }, + "30": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 9 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [ + { + "location": { + "end_col": 49, + "end_line": 204, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 204 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 50, + "end_line": 205, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 205 + } + }, + "32": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 23, + "end_line": 206, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 21, + "start_line": 206 + } + }, + "34": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp11": 21, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 28, + "end_line": 206, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 20, + "start_line": 206 + } + }, + "35": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 12 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp11": 21, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.m1mb": 22, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 30, + "end_line": 207, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 22, + "start_line": 207 + } + }, + "36": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 13 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp11": 21, + "starkware.cairo.common.math.assert_le_felt.__temp12": 23, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.m1mb": 22, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 207, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 207 + } + }, + "37": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 13 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp11": 21, + "starkware.cairo.common.math.assert_le_felt.__temp12": 23, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.m1mb": 22, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 208, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 23, + "start_line": 208 + } + }, + "38": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 14 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp11": 21, + "starkware.cairo.common.math.assert_le_felt.__temp12": 23, + "starkware.cairo.common.math.assert_le_felt.__temp13": 24, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.m1mb": 22, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 32, + "end_line": 208, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 208 + } + }, + "39": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 14 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp11": 21, + "starkware.cairo.common.math.assert_le_felt.__temp12": 23, + "starkware.cairo.common.math.assert_le_felt.__temp13": 24, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.m1mb": 22, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 188, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 154, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 15, + "end_line": 209, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 209 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 21, + "start_line": 154 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 27, + "start_line": 188 + } + }, + "41": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 15 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp11": 21, + "starkware.cairo.common.math.assert_le_felt.__temp12": 23, + "starkware.cairo.common.math.assert_le_felt.__temp13": 24, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.m1mb": 22, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 15, + "end_line": 209, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 209 + } + }, + "42": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [ + { + "location": { + "end_col": 31, + "end_line": 213, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 213 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 24, + "end_line": 214, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 214 + } + }, + "43": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 33, + "end_line": 215, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 28, + "start_line": 215 + } + }, + "44": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp14": 25, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 34, + "end_line": 215, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 23, + "start_line": 215 + } + }, + "45": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 12 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp14": 25, + "starkware.cairo.common.math.assert_le_felt.__temp15": 26, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 215, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 215 + } + }, + "46": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 12 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp14": 25, + "starkware.cairo.common.math.assert_le_felt.__temp15": 26, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 12, + "end_line": 216, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 216 + } + }, + "48": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 14 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp14": 25, + "starkware.cairo.common.math.assert_le_felt.__temp15": 26, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 188, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 154, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 15, + "end_line": 217, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 217 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 21, + "start_line": 154 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 27, + "start_line": 188 + } + }, + "50": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 15 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp14": 25, + "starkware.cairo.common.math.assert_le_felt.__temp15": 26, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + }, + "hints": [], + "inst": { + "end_col": 15, + "end_line": 217, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 217 + } + }, + "51": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 3, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.a": 27, + "starkware.cairo.common.math.assert_lt_felt.b": 28, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 29 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 230, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 224 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 15, + "end_line": 231, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 9, + "start_line": 231 + } + }, + "52": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 3, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.__temp16": 30, + "starkware.cairo.common.math.assert_lt_felt.a": 27, + "starkware.cairo.common.math.assert_lt_felt.b": 28, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 29 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 231, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 231 + } + }, + "54": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 3, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.__temp16": 30, + "starkware.cairo.common.math.assert_lt_felt.a": 27, + "starkware.cairo.common.math.assert_lt_felt.b": 28, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 29 + } + }, + "hints": [], + "inst": { + "end_col": 18, + "end_line": 233, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 9, + "start_line": 233 + } + }, + "56": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 3, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.__temp16": 30, + "starkware.cairo.common.math.assert_lt_felt.a": 27, + "starkware.cairo.common.math.assert_lt_felt.b": 28, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 29 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 223, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 154, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 25, + "end_line": 235, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 235 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 21, + "start_line": 154 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 21, + "start_line": 223 + } + }, + "57": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 3, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.__temp16": 30, + "starkware.cairo.common.math.assert_lt_felt.a": 27, + "starkware.cairo.common.math.assert_lt_felt.b": 28, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 29 + } + }, + "hints": [], + "inst": { + "end_col": 39, + "end_line": 223, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 21, + "end_line": 235, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 20, + "start_line": 235 + }, + "While expanding the reference 'a' in:" + ], + "start_col": 38, + "start_line": 223 + } + }, + "58": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 3, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.__temp16": 30, + "starkware.cairo.common.math.assert_lt_felt.a": 27, + "starkware.cairo.common.math.assert_lt_felt.b": 28, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 29 + } + }, + "hints": [], + "inst": { + "end_col": 42, + "end_line": 223, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 24, + "end_line": 235, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 23, + "start_line": 235 + }, + "While expanding the reference 'b' in:" + ], + "start_col": 41, + "start_line": 223 + } + }, + "59": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 3, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.__temp16": 30, + "starkware.cairo.common.math.assert_lt_felt.a": 27, + "starkware.cairo.common.math.assert_lt_felt.b": 28, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 29 + } + }, + "hints": [], + "inst": { + "end_col": 25, + "end_line": 235, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 235 + } + }, + "61": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 3, + "offset": 21 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.__temp16": 30, + "starkware.cairo.common.math.assert_lt_felt.a": 27, + "starkware.cairo.common.math.assert_lt_felt.b": 28, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 31 + } + }, + "hints": [], + "inst": { + "end_col": 15, + "end_line": 236, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 236 + } + }, + "62": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 35, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 18, + "end_line": 27, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 27 + } + }, + "64": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 35, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [ + { + "location": { + "end_col": 27, + "end_line": 28, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 28 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 56, + "end_line": 29, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 29 + } + }, + "65": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 35, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 31, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 31 + } + }, + "67": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 35, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [ + { + "location": { + "end_col": 30, + "end_line": 33, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 33 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 33, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 33, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 46, + "end_line": 34, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 34 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 24 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 24 + } + }, + "68": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 35, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 91, + "end_line": 25, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 44, + "end_line": 34, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 31, + "start_line": 34 + }, + "While expanding the reference 'squashed_dict' in:" + ], + "start_col": 65, + "start_line": 25 + } + }, + "69": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 35, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 34, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 34 + } + }, + "70": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 35, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 52, + "end_line": 38, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 26, + "start_line": 38 + } + }, + "72": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 39, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 35, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 59, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 39 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 7, + "end_line": 62, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 62 + } + }, + "74": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 39, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 35, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 65, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 65 + } + }, + "75": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 39, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 35, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 54, + "end_line": 66, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 35, + "start_line": 66 + } + }, + "77": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 39, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 40, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 62, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 62 + } + }, + "79": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 39, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 35, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 33, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 50, + "end_line": 63, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 35, + "start_line": 63 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 24 + } + }, + "80": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 39, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 42, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 25, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 70, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 23, + "start_line": 70 + }, + "While expanding the reference 'dict_accesses' in:" + ], + "start_col": 5, + "start_line": 25 + } + }, + "81": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 39, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 42, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 55, + "end_line": 71, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 34, + "start_line": 71 + } + }, + "83": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 39, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 42, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 20, + "end_line": 36, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 22, + "end_line": 72, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 13, + "start_line": 72 + }, + "While expanding the reference 'first_key' in:" + ], + "start_col": 11, + "start_line": 36 + } + }, + "84": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 8 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 39, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 42, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 23, + "end_line": 38, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 38, + "end_line": 73, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 28, + "start_line": 73 + }, + "While expanding the reference 'n_accesses' in:" + ], + "start_col": 13, + "start_line": 38 + } + }, + "85": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 9 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 39, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 42, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 91, + "end_line": 25, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 74, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 23, + "start_line": 74 + }, + "While expanding the reference 'squashed_dict' in:" + ], + "start_col": 65, + "start_line": 25 + } + }, + "86": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 39, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 42, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 19, + "end_line": 37, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 26, + "end_line": 75, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 18, + "start_line": 75 + }, + "While expanding the reference 'big_keys' in:" + ], + "start_col": 11, + "start_line": 37 + } + }, + "87": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 39, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 42, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + }, + "hints": [], + "inst": { + "end_col": 6, + "end_line": 76, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 44, + "start_line": 68 + } + }, + "89": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 39, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 44 + } + }, + "hints": [ + { + "location": { + "end_col": 26, + "end_line": 77, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 77 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 42, + "end_line": 78, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 78 + } + }, + "90": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 18, + "end_line": 110, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 110 + } + }, + "92": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 134, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 130 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 53, + "end_line": 136, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 36, + "start_line": 136 + } + }, + "93": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 63, + "end_line": 137, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 25, + "start_line": 137 + } + }, + "95": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 67, + "end_line": 140, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 140 + } + }, + "96": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 59, + "end_line": 142, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 142 + } + }, + "97": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 66, + "end_line": 143, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 143 + } + }, + "99": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 27, + "end_line": 146, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 146 + } + }, + "100": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 24, + "end_line": 149, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 149 + } + }, + "101": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 49, + "end_line": 151, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 151 + } + }, + "102": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 47, + "end_line": 152, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 152 + } + }, + "103": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [ + { + "location": { + "end_col": 68, + "end_line": 160, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 160 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 43, + "end_line": 161, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 161 + } + }, + "105": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 175, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 171 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 77, + "end_line": 177, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 177 + } + }, + "106": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 8 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 69, + "end_line": 178, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 178 + } + }, + "108": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 9 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 74, + "end_line": 179, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 179 + } + }, + "110": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 86, + "end_line": 180, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 180 + } + }, + "111": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.access": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 47, + "end_line": 184, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 184 + } + }, + "112": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.access": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 47, + "end_line": 185, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 185 + } + }, + "113": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 12 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.access": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 21, + "end_line": 188, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 188 + } + }, + "114": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 12 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.access": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 77, + "end_line": 191, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 191 + } + }, + "116": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 13 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.access": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [ + { + "location": { + "end_col": 78, + "end_line": 194, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 194 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 54, + "end_line": 195, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 195 + } + }, + "118": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [ + { + "location": { + "end_col": 50, + "end_line": 201, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 201 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 78, + "end_line": 202, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 202 + } + }, + "119": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 52, + "end_line": 203, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 203 + } + }, + "120": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 81, + "end_line": 205, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 31, + "start_line": 205 + } + }, + "121": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [ + { + "location": { + "end_col": 65, + "end_line": 206, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 206 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 49, + "end_line": 209, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 209 + } + }, + "122": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 70, + "end_line": 212, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 34, + "start_line": 212 + } + }, + "123": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 215, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 215 + } + }, + "125": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [ + { + "location": { + "end_col": 36, + "end_line": 216, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 216 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 63, + "end_line": 211, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 48, + "end_line": 217, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 33, + "start_line": 217 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 27, + "start_line": 211 + } + }, + "127": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 95, + "end_line": 217, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 64, + "start_line": 217 + } + }, + "129": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 97, + "end_line": 217, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 217 + } + }, + "130": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 12, + "end_line": 222, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 222 + } + }, + "132": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 227, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 224 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 7, + "end_line": 229, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 229 + } + }, + "134": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 55, + "end_line": 236, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 48, + "start_line": 236 + } + }, + "136": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 68, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 56, + "end_line": 236, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 36, + "start_line": 236 + } + }, + "137": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 68, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": 69, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 57, + "end_line": 236, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 236 + } + }, + "138": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 68, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": 69, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 54, + "end_line": 237, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 35, + "start_line": 237 + } + }, + "140": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 68, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": 69, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 70, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 103, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 46, + "end_line": 238, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 33, + "start_line": 238 + }, + "While expanding the reference 'dict_accesses' in:" + ], + "start_col": 5, + "start_line": 103 + } + }, + "141": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 8 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 68, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": 69, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 71, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 70, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 104, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 68, + "end_line": 239, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 44, + "start_line": 239 + }, + "While expanding the reference 'dict_accesses_end_minus1' in:" + ], + "start_col": 5, + "start_line": 104 + } + }, + "142": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 9 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 68, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": 69, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 71, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 72, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 70, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 24, + "end_line": 221, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 240, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 28, + "start_line": 240 + }, + "While expanding the reference 'next_key' in:" + ], + "start_col": 20, + "start_line": 221 + } + }, + "143": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 68, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": 69, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 71, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 72, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 73, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 70, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 212, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 56, + "end_line": 241, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 38, + "start_line": 241 + }, + "While expanding the reference 'remaining_accesses' in:" + ], + "start_col": 13, + "start_line": 212 + } + }, + "144": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 68, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": 69, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 71, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 72, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 73, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 70, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 74, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 229, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 229 + } + }, + "146": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 63, + "end_line": 211, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 55, + "end_line": 230, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 40, + "start_line": 230 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 27, + "start_line": 211 + } + }, + "148": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 8, + "end_line": 105, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 62, + "end_line": 230, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 59, + "start_line": 230 + }, + "While expanding the reference 'key' in:" + ], + "start_col": 5, + "start_line": 105 + } + }, + "149": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 24, + "end_line": 221, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 74, + "end_line": 230, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 66, + "start_line": 230 + }, + "While expanding the reference 'next_key' in:" + ], + "start_col": 20, + "start_line": 221 + } + }, + "150": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 75, + "end_line": 230, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 230 + } + }, + "152": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 30 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 75, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 103, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 46, + "end_line": 231, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 33, + "start_line": 231 + }, + "While expanding the reference 'dict_accesses' in:" + ], + "start_col": 5, + "start_line": 103 + } + }, + "153": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 31 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 76, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 75, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 104, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 68, + "end_line": 232, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 44, + "start_line": 232 + }, + "While expanding the reference 'dict_accesses_end_minus1' in:" + ], + "start_col": 5, + "start_line": 104 + } + }, + "154": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 32 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 76, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 77, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 75, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 24, + "end_line": 221, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 233, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 28, + "start_line": 233 + }, + "While expanding the reference 'next_key' in:" + ], + "start_col": 20, + "start_line": 221 + } + }, + "155": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 33 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 76, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 77, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 78, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 75, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 212, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 56, + "end_line": 234, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 38, + "start_line": 234 + }, + "While expanding the reference 'remaining_accesses' in:" + ], + "start_col": 13, + "start_line": 212 + } + }, + "156": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 8, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 81, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 82, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 84, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 80, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 83, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 54, + "end_line": 250, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 23, + "start_line": 250 + } + }, + "158": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 8, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 81, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 82, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 84, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 80, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 83, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 13, + "end_line": 108, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 26, + "end_line": 251, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 18, + "start_line": 251 + }, + "While expanding the reference 'big_keys' in:" + ], + "start_col": 5, + "start_line": 108 + } + }, + "159": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 8, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 81, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 82, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 84, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 80, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 83, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 6, + "end_line": 252, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 12, + "start_line": 244 + } + }, + "161": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 9, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 81, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 82, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 84, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 80, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 83, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 252, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 244 + } + }, + "162": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_new" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 10, + "offset": 0 + }, + "reference_ids": {} + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 16, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 9 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 12, + "end_line": 17, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 17 + } + }, + "164": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_new" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 10, + "offset": 1 + }, + "reference_ids": {} + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 18, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 18 + } + }, + "165": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_write" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 11, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_write.dict_ptr": 87, + "starkware.cairo.common.dict.dict_write.key": 85, + "starkware.cairo.common.dict.dict_write.new_value": 86 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 44, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 39 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 23, + "end_line": 45, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 45 + } + }, + "166": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_write" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 11, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_write.dict_ptr": 87, + "starkware.cairo.common.dict.dict_write.key": 85, + "starkware.cairo.common.dict.dict_write.new_value": 86 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 46, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 46 + } + }, + "167": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_write" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 11, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_write.dict_ptr": 88, + "starkware.cairo.common.dict.dict_write.key": 85, + "starkware.cairo.common.dict.dict_write.new_value": 86 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 47, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 38, + "end_line": 38, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 15, + "end_line": 48, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 48 + }, + "While trying to retrieve the implicit argument 'dict_ptr' in:" + ], + "start_col": 17, + "start_line": 38 + }, + "While expanding the reference 'dict_ptr' in:" + ], + "start_col": 20, + "start_line": 47 + } + }, + "169": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_write" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 11, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_write.dict_ptr": 88, + "starkware.cairo.common.dict.dict_write.key": 85, + "starkware.cairo.common.dict.dict_write.new_value": 86 + } + }, + "hints": [], + "inst": { + "end_col": 15, + "end_line": 48, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 48 + } + }, + "170": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 12, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 90, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 89, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 91 + } + }, + "hints": [], + "inst": { + "end_col": 18, + "end_line": 85, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 85 + } + }, + "172": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 12, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 90, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 89, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 91 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 96, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 87 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 49, + "end_line": 97, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 39, + "start_line": 97 + } + }, + "174": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 12, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 90, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 89, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 91, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 92 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 97, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 10, + "start_line": 97 + } + }, + "175": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 12, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 90, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 89, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 91, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 93 + } + }, + "hints": [ + { + "location": { + "end_col": 26, + "end_line": 98, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 98 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 33, + "end_line": 82, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 33, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 6, + "end_line": 104, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 31, + "start_line": 100 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 24 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 82 + } + }, + "176": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 12, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 90, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 89, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 91, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 93 + } + }, + "hints": [], + "inst": { + "end_col": 37, + "end_line": 83, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 42, + "end_line": 101, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 23, + "start_line": 101 + }, + "While expanding the reference 'dict_accesses_start' in:" + ], + "start_col": 5, + "start_line": 83 + } + }, + "177": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 12, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 90, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 89, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 91, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 93 + } + }, + "hints": [], + "inst": { + "end_col": 69, + "end_line": 83, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 44, + "end_line": 102, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 27, + "start_line": 102 + }, + "While expanding the reference 'dict_accesses_end' in:" + ], + "start_col": 39, + "start_line": 83 + } + }, + "178": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 12, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 90, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 89, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 91, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 93 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 97, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 42, + "end_line": 103, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 23, + "start_line": 103 + }, + "While expanding the reference 'squashed_dict_start' in:" + ], + "start_col": 16, + "start_line": 97 + } + }, + "179": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 12, + "offset": 8 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 90, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 89, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 91, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 93 + } + }, + "hints": [], + "inst": { + "end_col": 6, + "end_line": 104, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 31, + "start_line": 100 + } + }, + "181": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 13, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 90, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 89, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 94, + "starkware.cairo.common.dict.dict_squash.squashed_dict_end": 95, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 93 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 110, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 106 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 33, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 6, + "end_line": 104, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 33, + "end_line": 82, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 91, + "end_line": 111, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 111 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 82 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 31, + "start_line": 100 + }, + "While trying to update the implicit return value 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 24 + } + }, + "182": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 13, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 90, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 89, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 94, + "starkware.cairo.common.dict.dict_squash.squashed_dict_end": 95, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 93 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 97, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 52, + "end_line": 111, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 33, + "start_line": 111 + }, + "While expanding the reference 'squashed_dict_start' in:" + ], + "start_col": 16, + "start_line": 97 + } + }, + "183": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 13, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 90, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 89, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 94, + "starkware.cairo.common.dict.dict_squash.squashed_dict_end": 95, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 93 + } + }, + "hints": [], + "inst": { + "end_col": 27, + "end_line": 100, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 89, + "end_line": 111, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 72, + "start_line": 111 + }, + "While expanding the reference 'squashed_dict_end' in:" + ], + "start_col": 10, + "start_line": 100 + } + }, + "184": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 13, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 90, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 89, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 94, + "starkware.cairo.common.dict.dict_squash.squashed_dict_end": 95, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 93 + } + }, + "hints": [], + "inst": { + "end_col": 91, + "end_line": 111, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 111 + } + }, + "185": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_new" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 14, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_new.default_value": 96 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 15, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 9 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 12, + "end_line": 16, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 16 + } + }, + "187": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_new" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 14, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_new.default_value": 96 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 17, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 17 + } + }, + "188": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 15, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 100 + } + }, + "hints": [], + "inst": { + "end_col": 18, + "end_line": 26, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 26 + } + }, + "190": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 15, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 100 + } + }, + "hints": [], + "inst": { + "end_col": 43, + "end_line": 23, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 33, + "end_line": 82, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 6, + "end_line": 29, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 64, + "start_line": 27 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 82 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 28, + "start_line": 23 + } + }, + "191": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 15, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 100 + } + }, + "hints": [], + "inst": { + "end_col": 37, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 28, + "end_line": 28, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 9, + "start_line": 28 + }, + "While expanding the reference 'dict_accesses_start' in:" + ], + "start_col": 5, + "start_line": 24 + } + }, + "192": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 15, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 100 + } + }, + "hints": [], + "inst": { + "end_col": 69, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 47, + "end_line": 28, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 30, + "start_line": 28 + }, + "While expanding the reference 'dict_accesses_end' in:" + ], + "start_col": 39, + "start_line": 24 + } + }, + "193": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 15, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 100 + } + }, + "hints": [], + "inst": { + "end_col": 6, + "end_line": 29, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 64, + "start_line": 27 + } + }, + "195": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 101, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 103, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 102 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 27, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 10, + "start_line": 27 + } + }, + "196": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 101, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 103, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 104 + } + }, + "hints": [], + "inst": { + "end_col": 60, + "end_line": 27, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 37, + "start_line": 27 + } + }, + "197": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 101, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 104 + } + }, + "hints": [], + "inst": { + "end_col": 45, + "end_line": 30, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 30 + } + }, + "198": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 106, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 104 + } + }, + "hints": [], + "inst": { + "end_col": 60, + "end_line": 34, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 21, + "start_line": 34 + } + }, + "199": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 107, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 106, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 104 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 27, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 48, + "end_line": 33, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 29, + "start_line": 33 + }, + "While expanding the reference 'squashed_dict_start' in:" + ], + "start_col": 16, + "start_line": 27 + } + }, + "200": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 107, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 106, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 104 + } + }, + "hints": [], + "inst": { + "end_col": 79, + "end_line": 34, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 20, + "start_line": 34 + } + }, + "202": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 107, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 106, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 104 + } + }, + "hints": [], + "inst": { + "end_col": 90, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 35, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 23, + "start_line": 35 + }, + "While expanding the reference 'default_value' in:" + ], + "start_col": 71, + "start_line": 24 + } + }, + "203": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 107, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 106, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 104 + } + }, + "hints": [], + "inst": { + "end_col": 6, + "end_line": 36, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 32 + } + }, + "205": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 17, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 107, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 106, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 104 + } + }, + "hints": [], + "inst": { + "end_col": 26, + "end_line": 30, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 43, + "end_line": 23, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 91, + "end_line": 37, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 37 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 28, + "start_line": 23 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 11, + "start_line": 30 + } + }, + "206": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 17, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 107, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 106, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 104 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 27, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 52, + "end_line": 37, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 33, + "start_line": 37 + }, + "While expanding the reference 'squashed_dict_start' in:" + ], + "start_col": 16, + "start_line": 27 + } + }, + "207": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 17, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 107, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 106, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 104 + } + }, + "hints": [], + "inst": { + "end_col": 60, + "end_line": 27, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 89, + "end_line": 37, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 72, + "start_line": 37 + }, + "While expanding the reference 'squashed_dict_end' in:" + ], + "start_col": 43, + "start_line": 27 + } + }, + "208": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 17, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 107, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 98, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 106, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 104 + } + }, + "hints": [], + "inst": { + "end_col": 91, + "end_line": 37, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 37 + } + }, + "209": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 110, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 109 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 43, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 43 + } + }, + "211": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 110, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 109 + } + }, + "hints": [], + "inst": { + "end_col": 19, + "end_line": 44, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 9, + "start_line": 44 + } + }, + "212": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 110, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 109 + } + }, + "hints": [], + "inst": { + "end_col": 59, + "end_line": 47, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 47 + } + }, + "213": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 110, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 109 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 49, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 9, + "start_line": 49 + } + }, + "215": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 110, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 109 + } + }, + "hints": [], + "inst": { + "end_col": 34, + "end_line": 50, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 20, + "start_line": 50 + } + }, + "217": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 110, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 109 + } + }, + "hints": [], + "inst": { + "end_col": 76, + "end_line": 41, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 51, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 23, + "start_line": 51 + }, + "While expanding the reference 'default_value' in:" + ], + "start_col": 57, + "start_line": 41 + } + }, + "218": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 110, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 109 + } + }, + "hints": [], + "inst": { + "end_col": 6, + "end_line": 52, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 12, + "start_line": 48 + } + }, + "220": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 19, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 110, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 109 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 52, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 48 + } + }, + "221": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 0 + }, + "reference_ids": { + "__main__.main.name": 112, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 40, + "end_line": 15, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 39, + "start_line": 15 + } + }, + "223": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 1 + }, + "reference_ids": { + "__main__.main.name": 112, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 41, + "end_line": 15, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 22, + "start_line": 15 + } + }, + "225": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 4 + }, + "reference_ids": { + "__main__.main.dict_ptr": 113, + "__main__.main.name": 112, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 33, + "end_line": 18, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 32, + "start_line": 18 + } + }, + "227": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 5 + }, + "reference_ids": { + "__main__.main.dict_ptr": 113, + "__main__.main.name": 112, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 18, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 34, + "start_line": 18 + } + }, + "229": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 6 + }, + "reference_ids": { + "__main__.main.dict_ptr": 113, + "__main__.main.name": 112, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 37, + "end_line": 18, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 36, + "start_line": 18 + } + }, + "231": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 7 + }, + "reference_ids": { + "__main__.main.dict_ptr": 113, + "__main__.main.name": 112, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 38, + "end_line": 18, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 19, + "start_line": 18 + } + }, + "233": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 12 + }, + "reference_ids": { + "__main__.main.dict_ptr": 113, + "__main__.main.name": 112, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 38, + "end_line": 18, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 19, + "start_line": 18 + } + }, + "235": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 13 + }, + "reference_ids": { + "__main__.main.dict_ptr": 113, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 18, + "end_line": 15, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "parent_location": [ + { + "end_col": 33, + "end_line": 19, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 25, + "start_line": 19 + }, + "While expanding the reference 'dict_ptr' in:" + ], + "start_col": 10, + "start_line": 15 + } + }, + "236": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 14 + }, + "reference_ids": { + "__main__.main.dict_ptr": 113, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 19, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 35, + "start_line": 19 + } + }, + "238": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 15 + }, + "reference_ids": { + "__main__.main.dict_ptr": 113, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 53, + "end_line": 19, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 38, + "start_line": 19 + } + }, + "239": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 16 + }, + "reference_ids": { + "__main__.main.dict_ptr": 113, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 54, + "end_line": 19, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 5, + "start_line": 19 + } + }, + "241": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 19 + }, + "reference_ids": { + "__main__.main.dict_ptr": 116, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 33, + "end_line": 20, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 32, + "start_line": 20 + } + }, + "243": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 20 + }, + "reference_ids": { + "__main__.main.dict_ptr": 116, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 20, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 34, + "start_line": 20 + } + }, + "245": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 21 + }, + "reference_ids": { + "__main__.main.dict_ptr": 116, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 37, + "end_line": 20, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 36, + "start_line": 20 + } + }, + "247": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 22 + }, + "reference_ids": { + "__main__.main.dict_ptr": 116, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 38, + "end_line": 20, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 19, + "start_line": 20 + } + }, + "249": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 27 + }, + "reference_ids": { + "__main__.main.dict_ptr": 116, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111 + } + }, + "hints": [], + "inst": { + "end_col": 38, + "end_line": 20, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 19, + "start_line": 20 + } + }, + "251": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 28 + }, + "reference_ids": { + "__main__.main.dict_ptr": 116, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 33, + "end_line": 19, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "parent_location": [ + { + "end_col": 33, + "end_line": 21, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 25, + "start_line": 21 + }, + "While expanding the reference 'dict_ptr' in:" + ], + "start_col": 25, + "start_line": 19 + } + }, + "252": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 29 + }, + "reference_ids": { + "__main__.main.dict_ptr": 116, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 21, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 35, + "start_line": 21 + } + }, + "254": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 30 + }, + "reference_ids": { + "__main__.main.dict_ptr": 116, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 53, + "end_line": 21, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 38, + "start_line": 21 + } + }, + "255": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 31 + }, + "reference_ids": { + "__main__.main.dict_ptr": 116, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 54, + "end_line": 21, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 5, + "start_line": 21 + } + }, + "257": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 34 + }, + "reference_ids": { + "__main__.main.dict_ptr": 118, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 22, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 34, + "start_line": 22 + } + }, + "259": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 35 + }, + "reference_ids": { + "__main__.main.dict_ptr": 118, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 37, + "end_line": 22, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 36, + "start_line": 22 + } + }, + "261": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 36 + }, + "reference_ids": { + "__main__.main.dict_ptr": 118, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 39, + "end_line": 22, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 38, + "start_line": 22 + } + }, + "263": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 37 + }, + "reference_ids": { + "__main__.main.dict_ptr": 118, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 40, + "end_line": 22, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 21, + "start_line": 22 + } + }, + "265": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 42 + }, + "reference_ids": { + "__main__.main.dict_ptr": 118, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 40, + "end_line": 22, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 21, + "start_line": 22 + } + }, + "267": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 43 + }, + "reference_ids": { + "__main__.main.dict_ptr": 118, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 33, + "end_line": 21, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "parent_location": [ + { + "end_col": 33, + "end_line": 23, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 25, + "start_line": 23 + }, + "While expanding the reference 'dict_ptr' in:" + ], + "start_col": 25, + "start_line": 21 + } + }, + "268": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 44 + }, + "reference_ids": { + "__main__.main.dict_ptr": 118, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 23, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 35, + "start_line": 23 + } + }, + "270": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 45 + }, + "reference_ids": { + "__main__.main.dict_ptr": 118, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 55, + "end_line": 23, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 38, + "start_line": 23 + } + }, + "271": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 46 + }, + "reference_ids": { + "__main__.main.dict_ptr": 118, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 56, + "end_line": 23, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 5, + "start_line": 23 + } + }, + "273": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 49 + }, + "reference_ids": { + "__main__.main.dict_ptr": 120, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 34, + "end_line": 24, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 33, + "start_line": 24 + } + }, + "275": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 50 + }, + "reference_ids": { + "__main__.main.dict_ptr": 120, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 24, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 35, + "start_line": 24 + } + }, + "277": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 51 + }, + "reference_ids": { + "__main__.main.dict_ptr": 120, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 38, + "end_line": 24, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 37, + "start_line": 24 + } + }, + "279": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 52 + }, + "reference_ids": { + "__main__.main.dict_ptr": 120, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 39, + "end_line": 24, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 20, + "start_line": 24 + } + }, + "281": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 57 + }, + "reference_ids": { + "__main__.main.dict_ptr": 120, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 39, + "end_line": 24, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 20, + "start_line": 24 + } + }, + "283": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 58 + }, + "reference_ids": { + "__main__.main.dict_ptr": 120, + "__main__.main.four": 121, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 33, + "end_line": 23, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "parent_location": [ + { + "end_col": 33, + "end_line": 25, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 25, + "start_line": 25 + }, + "While expanding the reference 'dict_ptr' in:" + ], + "start_col": 25, + "start_line": 23 + } + }, + "284": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 59 + }, + "reference_ids": { + "__main__.main.dict_ptr": 120, + "__main__.main.four": 121, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 25, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 35, + "start_line": 25 + } + }, + "286": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 60 + }, + "reference_ids": { + "__main__.main.dict_ptr": 120, + "__main__.main.four": 121, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 54, + "end_line": 25, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 38, + "start_line": 25 + } + }, + "287": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 61 + }, + "reference_ids": { + "__main__.main.dict_ptr": 120, + "__main__.main.four": 121, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 55, + "end_line": 25, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 5, + "start_line": 25 + } + }, + "289": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 64 + }, + "reference_ids": { + "__main__.main.dict_ptr": 122, + "__main__.main.four": 121, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 32, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 5, + "start_line": 26 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 32, + "end_line": 13, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "parent_location": [ + { + "end_col": 32, + "end_line": 13, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "parent_location": [ + { + "end_col": 14, + "end_line": 33, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 5, + "start_line": 33 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 11, + "start_line": 13 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 11, + "start_line": 13 + } + }, + "290": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 65 + }, + "reference_ids": { + "__main__.main.dict_ptr": 122, + "__main__.main.four": 121, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + }, + "hints": [], + "inst": { + "end_col": 14, + "end_line": 33, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_array.cairo" + }, + "start_col": 5, + "start_line": 33 + } + } + } + }, + "hints": { + "6": [ + { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "code": "import itertools\n\nfrom starkware.cairo.common.math_utils import assert_integer\nassert_integer(ids.a)\nassert_integer(ids.b)\na = ids.a % PRIME\nb = ids.b % PRIME\nassert a <= b, f'a = {a} is not less than or equal to b = {b}.'\n\n# Find an arc less than PRIME / 3, and another less than PRIME / 2.\nlengths_and_indices = [(a, 0), (b - a, 1), (PRIME - 1 - b, 2)]\nlengths_and_indices.sort()\nassert lengths_and_indices[0][0] <= PRIME // 3 and lengths_and_indices[1][0] <= PRIME // 2\nexcluded = lengths_and_indices[2][1]\n\nmemory[ids.range_check_ptr + 1], memory[ids.range_check_ptr + 0] = (\n divmod(lengths_and_indices[0][0], ids.PRIME_OVER_3_HIGH))\nmemory[ids.range_check_ptr + 3], memory[ids.range_check_ptr + 2] = (\n divmod(lengths_and_indices[1][0], ids.PRIME_OVER_2_HIGH))", + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 4 + } + } + } + ], + "16": [ + { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "code": "memory[ap] = 1 if excluded != 0 else 0", + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 8 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + } + } + ], + "30": [ + { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "code": "memory[ap] = 1 if excluded != 1 else 0", + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 9 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + } + } + ], + "42": [ + { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "code": "assert excluded == 2", + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 5, + "starkware.cairo.common.math.assert_le_felt.__temp1": 6, + "starkware.cairo.common.math.assert_le_felt.__temp2": 7, + "starkware.cairo.common.math.assert_le_felt.__temp3": 9, + "starkware.cairo.common.math.assert_le_felt.__temp4": 10, + "starkware.cairo.common.math.assert_le_felt.__temp5": 11, + "starkware.cairo.common.math.assert_le_felt.a": 2, + "starkware.cairo.common.math.assert_le_felt.arc_long": 12, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 15, + "starkware.cairo.common.math.assert_le_felt.arc_short": 8, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 14, + "starkware.cairo.common.math.assert_le_felt.b": 3, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 13 + } + } + } + ], + "51": [ + { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "code": "from starkware.cairo.common.math_utils import assert_integer\nassert_integer(ids.a)\nassert_integer(ids.b)\nassert (ids.a % PRIME) < (ids.b % PRIME), \\\n f'a = {ids.a % PRIME} is not less than b = {ids.b % PRIME}.'", + "flow_tracking_data": { + "ap_tracking": { + "group": 3, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.a": 27, + "starkware.cairo.common.math.assert_lt_felt.b": 28, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 29 + } + } + } + ], + "64": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "code": "vm_enter_scope()", + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 35, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + } + } + ], + "67": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "code": "vm_exit_scope()", + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 35, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + } + } + ], + "72": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "code": "dict_access_size = ids.DictAccess.SIZE\naddress = ids.dict_accesses.address_\nassert ids.ptr_diff % dict_access_size == 0, \\\n 'Accesses array size must be divisible by DictAccess.SIZE'\nn_accesses = ids.n_accesses\nif '__squash_dict_max_size' in globals():\n assert n_accesses <= __squash_dict_max_size, \\\n f'squash_dict() can only be used with n_accesses<={__squash_dict_max_size}. ' \\\n f'Got: n_accesses={n_accesses}.'\n# A map from key to the list of indices accessing it.\naccess_indices = {}\nfor i in range(n_accesses):\n key = memory[address + dict_access_size * i]\n access_indices.setdefault(key, []).append(i)\n# Descending list of keys.\nkeys = sorted(access_indices.keys(), reverse=True)\n# Are the keys used bigger than range_check bound.\nids.big_keys = 1 if keys[0] >= range_check_builtin.bound else 0\nids.first_key = key = keys.pop()", + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 39, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 35, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 34 + } + } + } + ], + "89": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "code": "vm_exit_scope()", + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 38, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 32, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 33, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 37, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 39, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 36, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 44 + } + } + } + ], + "92": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "current_access_indices = sorted(access_indices[key])[::-1]\ncurrent_access_index = current_access_indices.pop()\nmemory[ids.range_check_ptr] = current_access_index", + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + } + } + ], + "103": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "ids.should_skip_loop = 0 if current_access_indices else 1", + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + } + } + ], + "105": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "new_access_index = current_access_indices.pop()\nids.loop_temps.index_delta_minus1 = new_access_index - current_access_index - 1\ncurrent_access_index = new_access_index", + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + } + } + ], + "116": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "ids.loop_temps.should_continue = 1 if current_access_indices else 0", + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 13 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.access": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + } + } + ], + "118": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "assert len(current_access_indices) == 0", + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + } + } + ], + "121": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "assert ids.n_used_accesses == len(access_indices[key])", + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + } + } + ], + "125": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "assert len(keys) == 0", + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + } + } + ], + "132": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "assert len(keys) > 0, 'No keys left but remaining_accesses > 0.'\nids.next_key = key = keys.pop()", + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 48, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 50 + } + } + } + ], + "162": [ + { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_new" + ], + "code": "if '__dict_manager' not in globals():\n from starkware.cairo.common.dict import DictManager\n __dict_manager = DictManager()\n\nmemory[ap] = __dict_manager.new_dict(segments, initial_dict)\ndel initial_dict", + "flow_tracking_data": { + "ap_tracking": { + "group": 10, + "offset": 0 + }, + "reference_ids": {} + } + } + ], + "165": [ + { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_write" + ], + "code": "dict_tracker = __dict_manager.get_tracker(ids.dict_ptr)\ndict_tracker.current_ptr += ids.DictAccess.SIZE\nids.dict_ptr.prev_value = dict_tracker.data[ids.key]\ndict_tracker.data[ids.key] = ids.new_value", + "flow_tracking_data": { + "ap_tracking": { + "group": 11, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_write.dict_ptr": 87, + "starkware.cairo.common.dict.dict_write.key": 85, + "starkware.cairo.common.dict.dict_write.new_value": 86 + } + } + } + ], + "172": [ + { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "code": "# Prepare arguments for dict_new. In particular, the same dictionary values should be copied\n# to the new (squashed) dictionary.\nvm_enter_scope({\n # Make __dict_manager accessible.\n '__dict_manager': __dict_manager,\n # Create a copy of the dict, in case it changes in the future.\n 'initial_dict': dict(__dict_manager.get_dict(ids.dict_accesses_end)),\n})", + "flow_tracking_data": { + "ap_tracking": { + "group": 12, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 90, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 89, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 91 + } + } + } + ], + "175": [ + { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "code": "vm_exit_scope()", + "flow_tracking_data": { + "ap_tracking": { + "group": 12, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 90, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 89, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 91, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 93 + } + } + } + ], + "181": [ + { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "code": "# Update the DictTracker's current_ptr to point to the end of the squashed dict.\n__dict_manager.get_tracker(ids.squashed_dict_start).current_ptr = \\\n ids.squashed_dict_end.address_", + "flow_tracking_data": { + "ap_tracking": { + "group": 13, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 90, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 89, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 94, + "starkware.cairo.common.dict.dict_squash.squashed_dict_end": 95, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 93 + } + } + } + ], + "185": [ + { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_new" + ], + "code": "if '__dict_manager' not in globals():\n from starkware.cairo.common.dict import DictManager\n __dict_manager = DictManager()\n\nmemory[ap] = __dict_manager.new_default_dict(segments, ids.default_value)", + "flow_tracking_data": { + "ap_tracking": { + "group": 14, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_new.default_value": 96 + } + } + } + ], + "289": [ + { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "code": "print(bytes.fromhex(f\"{ids.name:062x}\").decode().replace('\\x00',''))\ndata = __dict_manager.get_dict(ids.dict_ptr)\nprint(\n {k: v if isinstance(v, int) else [memory[v + i] for i in range(ids.pointer_size)] for k, v in data.items()}\n)", + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 64 + }, + "reference_ids": { + "__main__.main.dict_ptr": 122, + "__main__.main.four": 121, + "__main__.main.name": 112, + "__main__.main.one": 115, + "__main__.main.pointer_size": 114, + "__main__.main.range_check_ptr": 111, + "__main__.main.three": 119, + "__main__.main.two": 117 + } + } + } + ] + }, + "identifiers": { + "__main__.DictAccess": { + "destination": "starkware.cairo.common.dict_access.DictAccess", + "type": "alias" + }, + "__main__.MyStruct": { + "full_name": "__main__.MyStruct", + "members": { + "a": { + "cairo_type": "felt", + "offset": 0 + }, + "b": { + "cairo_type": "felt", + "offset": 1 + }, + "c": { + "cairo_type": "felt", + "offset": 2 + } + }, + "size": 3, + "type": "struct" + }, + "__main__.default_dict_finalize": { + "destination": "starkware.cairo.common.default_dict.default_dict_finalize", + "type": "alias" + }, + "__main__.default_dict_new": { + "destination": "starkware.cairo.common.default_dict.default_dict_new", + "type": "alias" + }, + "__main__.dict_write": { + "destination": "starkware.cairo.common.dict.dict_write", + "type": "alias" + }, + "__main__.main": { + "decorators": [], + "pc": 221, + "type": "function" + }, + "__main__.main.Args": { + "full_name": "__main__.main.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "__main__.main.ImplicitArgs": { + "full_name": "__main__.main.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "__main__.main.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "__main__.main.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "__main__.main.dict_ptr": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "__main__.main.dict_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 20, + "offset": 4 + }, + "pc": 225, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 19 + }, + "pc": 241, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 34 + }, + "pc": 257, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 49 + }, + "pc": 273, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 64 + }, + "pc": 289, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "__main__.main.four": { + "cairo_type": "__main__.MyStruct*", + "full_name": "__main__.main.four", + "references": [ + { + "ap_tracking_data": { + "group": 20, + "offset": 58 + }, + "pc": 283, + "value": "[cast(ap + (-1), __main__.MyStruct**)]" + } + ], + "type": "reference" + }, + "__main__.main.name": { + "cairo_type": "felt", + "full_name": "__main__.main.name", + "references": [ + { + "ap_tracking_data": { + "group": 20, + "offset": 0 + }, + "pc": 221, + "value": "cast(1263227476, felt)" + } + ], + "type": "reference" + }, + "__main__.main.one": { + "cairo_type": "__main__.MyStruct*", + "full_name": "__main__.main.one", + "references": [ + { + "ap_tracking_data": { + "group": 20, + "offset": 13 + }, + "pc": 235, + "value": "[cast(ap + (-1), __main__.MyStruct**)]" + } + ], + "type": "reference" + }, + "__main__.main.pointer_size": { + "cairo_type": "felt", + "full_name": "__main__.main.pointer_size", + "references": [ + { + "ap_tracking_data": { + "group": 20, + "offset": 4 + }, + "pc": 225, + "value": "cast(3, felt)" + } + ], + "type": "reference" + }, + "__main__.main.range_check_ptr": { + "cairo_type": "felt", + "full_name": "__main__.main.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 20, + "offset": 0 + }, + "pc": 221, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "__main__.main.three": { + "cairo_type": "__main__.MyStruct*", + "full_name": "__main__.main.three", + "references": [ + { + "ap_tracking_data": { + "group": 20, + "offset": 43 + }, + "pc": 267, + "value": "[cast(ap + (-1), __main__.MyStruct**)]" + } + ], + "type": "reference" + }, + "__main__.main.two": { + "cairo_type": "__main__.MyStruct*", + "full_name": "__main__.main.two", + "references": [ + { + "ap_tracking_data": { + "group": 20, + "offset": 28 + }, + "pc": 251, + "value": "[cast(ap + (-1), __main__.MyStruct**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.bool.FALSE": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.bool.TRUE": { + "type": "const", + "value": 1 + }, + "starkware.cairo.common.default_dict.DictAccess": { + "destination": "starkware.cairo.common.dict_access.DictAccess", + "type": "alias" + }, + "starkware.cairo.common.default_dict.default_dict_finalize": { + "decorators": [], + "pc": 188, + "type": "function" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.Args": { + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.Args", + "members": { + "default_value": { + "cairo_type": "felt", + "offset": 2 + }, + "dict_accesses_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 1 + }, + "dict_accesses_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 0 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.ImplicitArgs": { + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.Return": { + "cairo_type": "(squashed_dict_start: starkware.cairo.common.dict_access.DictAccess*, squashed_dict_end: starkware.cairo.common.dict_access.DictAccess*)", + "type": "type_definition" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.SIZEOF_LOCALS": { + "type": "const", + "value": 3 + }, + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.__temp19", + "references": [ + { + "ap_tracking_data": { + "group": 16, + "offset": 1 + }, + "pc": 199, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.default_value", + "references": [ + { + "ap_tracking_data": { + "group": 15, + "offset": 0 + }, + "pc": 188, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end", + "references": [ + { + "ap_tracking_data": { + "group": 15, + "offset": 0 + }, + "pc": 188, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start", + "references": [ + { + "ap_tracking_data": { + "group": 15, + "offset": 0 + }, + "pc": 188, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 15, + "offset": 0 + }, + "pc": 188, + "value": "[cast(fp + (-6), felt*)]" + }, + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 195, + "value": "[cast(ap + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 198, + "value": "[cast(fp + 2, felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end", + "references": [ + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 195, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 197, + "value": "[cast(fp + 1, starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start", + "references": [ + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 195, + "value": "[cast(ap + (-2), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 196, + "value": "[cast(fp, starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner": { + "decorators": [], + "pc": 209, + "type": "function" + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.Args": { + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize_inner.Args", + "members": { + "default_value": { + "cairo_type": "felt", + "offset": 2 + }, + "dict_accesses_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 0 + }, + "n_accesses": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.ImplicitArgs": { + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize_inner.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value", + "references": [ + { + "ap_tracking_data": { + "group": 18, + "offset": 0 + }, + "pc": 209, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start", + "references": [ + { + "ap_tracking_data": { + "group": 18, + "offset": 0 + }, + "pc": 209, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses", + "references": [ + { + "ap_tracking_data": { + "group": 18, + "offset": 0 + }, + "pc": 209, + "value": "[cast(fp + (-4), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_new": { + "decorators": [], + "pc": 185, + "type": "function" + }, + "starkware.cairo.common.default_dict.default_dict_new.Args": { + "full_name": "starkware.cairo.common.default_dict.default_dict_new.Args", + "members": { + "default_value": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.default_dict.default_dict_new.ImplicitArgs": { + "full_name": "starkware.cairo.common.default_dict.default_dict_new.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.common.default_dict.default_dict_new.Return": { + "cairo_type": "(res: starkware.cairo.common.dict_access.DictAccess*)", + "type": "type_definition" + }, + "starkware.cairo.common.default_dict.default_dict_new.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.default_dict.default_dict_new.default_value": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.default_dict.default_dict_new.default_value", + "references": [ + { + "ap_tracking_data": { + "group": 14, + "offset": 0 + }, + "pc": 185, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.dict_squash": { + "destination": "starkware.cairo.common.dict.dict_squash", + "type": "alias" + }, + "starkware.cairo.common.dict.DictAccess": { + "destination": "starkware.cairo.common.dict_access.DictAccess", + "type": "alias" + }, + "starkware.cairo.common.dict.dict_new": { + "decorators": [], + "pc": 162, + "type": "function" + }, + "starkware.cairo.common.dict.dict_new.Args": { + "full_name": "starkware.cairo.common.dict.dict_new.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.common.dict.dict_new.ImplicitArgs": { + "full_name": "starkware.cairo.common.dict.dict_new.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.common.dict.dict_new.Return": { + "cairo_type": "(res: starkware.cairo.common.dict_access.DictAccess*)", + "type": "type_definition" + }, + "starkware.cairo.common.dict.dict_new.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.dict.dict_squash": { + "decorators": [], + "pc": 170, + "type": "function" + }, + "starkware.cairo.common.dict.dict_squash.Args": { + "full_name": "starkware.cairo.common.dict.dict_squash.Args", + "members": { + "dict_accesses_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 1 + }, + "dict_accesses_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 0 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.cairo.common.dict.dict_squash.ImplicitArgs": { + "full_name": "starkware.cairo.common.dict.dict_squash.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.dict.dict_squash.Return": { + "cairo_type": "(squashed_dict_start: starkware.cairo.common.dict_access.DictAccess*, squashed_dict_end: starkware.cairo.common.dict_access.DictAccess*)", + "type": "type_definition" + }, + "starkware.cairo.common.dict.dict_squash.SIZEOF_LOCALS": { + "type": "const", + "value": 1 + }, + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.dict.dict_squash.dict_accesses_end", + "references": [ + { + "ap_tracking_data": { + "group": 12, + "offset": 0 + }, + "pc": 170, + "value": "[cast(fp + (-3), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.dict.dict_squash.dict_accesses_start", + "references": [ + { + "ap_tracking_data": { + "group": 12, + "offset": 0 + }, + "pc": 170, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.dict.dict_squash.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 12, + "offset": 0 + }, + "pc": 170, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 13, + "offset": 0 + }, + "pc": 181, + "value": "[cast(ap + (-2), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.dict_squash.squashed_dict_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.dict.dict_squash.squashed_dict_end", + "references": [ + { + "ap_tracking_data": { + "group": 13, + "offset": 0 + }, + "pc": 181, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.dict.dict_squash.squashed_dict_start", + "references": [ + { + "ap_tracking_data": { + "group": 12, + "offset": 4 + }, + "pc": 174, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 12, + "offset": 4 + }, + "pc": 175, + "value": "[cast(fp, starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.dict_write": { + "decorators": [], + "pc": 165, + "type": "function" + }, + "starkware.cairo.common.dict.dict_write.Args": { + "full_name": "starkware.cairo.common.dict.dict_write.Args", + "members": { + "key": { + "cairo_type": "felt", + "offset": 0 + }, + "new_value": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.cairo.common.dict.dict_write.ImplicitArgs": { + "full_name": "starkware.cairo.common.dict.dict_write.ImplicitArgs", + "members": { + "dict_ptr": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.dict.dict_write.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "starkware.cairo.common.dict.dict_write.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.dict.dict_write.dict_ptr": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.dict.dict_write.dict_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 11, + "offset": 0 + }, + "pc": 165, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 11, + "offset": 0 + }, + "pc": 167, + "value": "cast([fp + (-5)] + 3, starkware.cairo.common.dict_access.DictAccess*)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.dict_write.key": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.dict.dict_write.key", + "references": [ + { + "ap_tracking_data": { + "group": 11, + "offset": 0 + }, + "pc": 165, + "value": "[cast(fp + (-4), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.dict_write.new_value": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.dict.dict_write.new_value", + "references": [ + { + "ap_tracking_data": { + "group": 11, + "offset": 0 + }, + "pc": 165, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.squash_dict": { + "destination": "starkware.cairo.common.squash_dict.squash_dict", + "type": "alias" + }, + "starkware.cairo.common.dict_access.DictAccess": { + "full_name": "starkware.cairo.common.dict_access.DictAccess", + "members": { + "key": { + "cairo_type": "felt", + "offset": 0 + }, + "new_value": { + "cairo_type": "felt", + "offset": 2 + }, + "prev_value": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.cairo.common.math.FALSE": { + "destination": "starkware.cairo.common.bool.FALSE", + "type": "alias" + }, + "starkware.cairo.common.math.TRUE": { + "destination": "starkware.cairo.common.bool.TRUE", + "type": "alias" + }, + "starkware.cairo.common.math.assert_le_felt": { + "decorators": [ + "known_ap_change" + ], + "pc": 6, + "type": "function" + }, + "starkware.cairo.common.math.assert_le_felt.Args": { + "full_name": "starkware.cairo.common.math.assert_le_felt.Args", + "members": { + "a": { + "cairo_type": "felt", + "offset": 0 + }, + "b": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.cairo.common.math.assert_le_felt.ImplicitArgs": { + "full_name": "starkware.cairo.common.math.assert_le_felt.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.math.assert_le_felt.PRIME_OVER_2_HIGH": { + "type": "const", + "value": 5316911983139663648412552867652567041 + }, + "starkware.cairo.common.math.assert_le_felt.PRIME_OVER_3_HIGH": { + "type": "const", + "value": 3544607988759775765608368578435044694 + }, + "starkware.cairo.common.math.assert_le_felt.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "starkware.cairo.common.math.assert_le_felt.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.math.assert_le_felt.__temp0": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp0", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 1 + }, + "pc": 7, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp1": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp1", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 2 + }, + "pc": 8, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp10": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp10", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 14 + }, + "pc": 26, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp11": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp11", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 11 + }, + "pc": 34, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp12": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp12", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 13 + }, + "pc": 36, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp13": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp13", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 14 + }, + "pc": 38, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp14": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp14", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 11 + }, + "pc": 44, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp15": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp15", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 12 + }, + "pc": 45, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp2": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp2", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 3 + }, + "pc": 10, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp3": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp3", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 5 + }, + "pc": 12, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp4": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp4", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 6 + }, + "pc": 13, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp5": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp5", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 7 + }, + "pc": 15, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp6": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp6", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 10 + }, + "pc": 20, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp7": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp7", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 11 + }, + "pc": 21, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp8": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp8", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 12 + }, + "pc": 23, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp9": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp9", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 13 + }, + "pc": 25, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.a": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.a", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 6, + "value": "[cast(fp + (-4), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.arc_long": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.arc_long", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 8 + }, + "pc": 16, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.arc_prod": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.arc_prod", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 8 + }, + "pc": 16, + "value": "cast([ap + (-5)] * [ap + (-1)], felt)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.arc_short": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.arc_short", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 4 + }, + "pc": 11, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.arc_sum": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.arc_sum", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 8 + }, + "pc": 16, + "value": "cast([ap + (-5)] + [ap + (-1)], felt)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.b": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.b", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 6, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.m1mb": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.m1mb", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 12 + }, + "pc": 35, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 6, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 8 + }, + "pc": 16, + "value": "cast([fp + (-5)] + 4, felt)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.skip_exclude_a": { + "pc": 30, + "type": "label" + }, + "starkware.cairo.common.math.assert_le_felt.skip_exclude_b_minus_a": { + "pc": 42, + "type": "label" + }, + "starkware.cairo.common.math.assert_lt_felt": { + "decorators": [ + "known_ap_change" + ], + "pc": 51, + "type": "function" + }, + "starkware.cairo.common.math.assert_lt_felt.Args": { + "full_name": "starkware.cairo.common.math.assert_lt_felt.Args", + "members": { + "a": { + "cairo_type": "felt", + "offset": 0 + }, + "b": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.cairo.common.math.assert_lt_felt.ImplicitArgs": { + "full_name": "starkware.cairo.common.math.assert_lt_felt.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.math.assert_lt_felt.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "starkware.cairo.common.math.assert_lt_felt.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.math.assert_lt_felt.__temp16": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_lt_felt.__temp16", + "references": [ + { + "ap_tracking_data": { + "group": 3, + "offset": 1 + }, + "pc": 52, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_lt_felt.a": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_lt_felt.a", + "references": [ + { + "ap_tracking_data": { + "group": 3, + "offset": 0 + }, + "pc": 51, + "value": "[cast(fp + (-4), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_lt_felt.b": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_lt_felt.b", + "references": [ + { + "ap_tracking_data": { + "group": 3, + "offset": 0 + }, + "pc": 51, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_lt_felt.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 3, + "offset": 0 + }, + "pc": 51, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 3, + "offset": 21 + }, + "pc": 61, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.DictAccess": { + "destination": "starkware.cairo.common.dict_access.DictAccess", + "type": "alias" + }, + "starkware.cairo.common.squash_dict.assert_lt_felt": { + "destination": "starkware.cairo.common.math.assert_lt_felt", + "type": "alias" + }, + "starkware.cairo.common.squash_dict.squash_dict": { + "decorators": [], + "pc": 62, + "type": "function" + }, + "starkware.cairo.common.squash_dict.squash_dict.Args": { + "full_name": "starkware.cairo.common.squash_dict.squash_dict.Args", + "members": { + "dict_accesses": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 0 + }, + "dict_accesses_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 1 + }, + "squashed_dict": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 2 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.cairo.common.squash_dict.squash_dict.ImplicitArgs": { + "full_name": "starkware.cairo.common.squash_dict.squash_dict.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.squash_dict.squash_dict.Return": { + "cairo_type": "(squashed_dict: starkware.cairo.common.dict_access.DictAccess*)", + "type": "type_definition" + }, + "starkware.cairo.common.squash_dict.squash_dict.SIZEOF_LOCALS": { + "type": "const", + "value": 3 + }, + "starkware.cairo.common.squash_dict.squash_dict.big_keys": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.big_keys", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 3 + }, + "pc": 70, + "value": "[cast(fp + 2, felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.dict_accesses", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 62, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 62, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict.first_key": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.first_key", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 3 + }, + "pc": 70, + "value": "[cast(fp + 1, felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.n_accesses", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 4 + }, + "pc": 72, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.ptr_diff", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 3 + }, + "pc": 65, + "value": "[cast(fp, felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 62, + "value": "[cast(fp + (-6), felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 5 + }, + "pc": 77, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 5 + }, + "pc": 80, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 0 + }, + "pc": 89, + "value": "[cast(ap + (-2), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.squashed_dict", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 62, + "value": "[cast(fp + (-3), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 0 + }, + "pc": 89, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner": { + "decorators": [], + "pc": 90, + "type": "function" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.Args": { + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.Args", + "members": { + "big_keys": { + "cairo_type": "felt", + "offset": 6 + }, + "dict_accesses": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 1 + }, + "dict_accesses_end_minus1": { + "cairo_type": "felt*", + "offset": 2 + }, + "key": { + "cairo_type": "felt", + "offset": 3 + }, + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + }, + "remaining_accesses": { + "cairo_type": "felt", + "offset": 4 + }, + "squashed_dict": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 5 + } + }, + "size": 7, + "type": "struct" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.ImplicitArgs": { + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals": { + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals", + "members": { + "access_ptr": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 1 + }, + "range_check_ptr": { + "cairo_type": "felt", + "offset": 2 + }, + "value": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.LoopTemps": { + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.LoopTemps", + "members": { + "index_delta": { + "cairo_type": "felt", + "offset": 1 + }, + "index_delta_minus1": { + "cairo_type": "felt", + "offset": 0 + }, + "ptr_delta": { + "cairo_type": "felt", + "offset": 2 + }, + "should_continue": { + "cairo_type": "felt", + "offset": 3 + } + }, + "size": 4, + "type": "struct" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.Return": { + "cairo_type": "(range_check_ptr: felt, squashed_dict: starkware.cairo.common.dict_access.DictAccess*)", + "type": "type_definition" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.SIZEOF_LOCALS": { + "type": "const", + "value": 2 + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17", + "references": [ + { + "ap_tracking_data": { + "group": 7, + "offset": 5 + }, + "pc": 136, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18", + "references": [ + { + "ap_tracking_data": { + "group": 7, + "offset": 6 + }, + "pc": 137, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.access": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.access", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 11 + }, + "pc": 111, + "value": "[cast(ap + 1, starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 90, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 3 + }, + "pc": 93, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 90, + "value": "[cast(fp + (-8), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 8 + }, + "pc": 141, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 31 + }, + "pc": 153, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": { + "cairo_type": "felt*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 90, + "value": "[cast(fp + (-7), felt**)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 9 + }, + "pc": 142, + "value": "[cast(ap + (-1), felt**)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 32 + }, + "pc": 154, + "value": "[cast(ap + (-1), felt**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 2 + }, + "pc": 92, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.first_access", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 5 + }, + "pc": 96, + "value": "[cast(ap, starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": { + "cairo_type": "starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 4 + }, + "pc": 95, + "value": "cast(ap, starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.first_value", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 7 + }, + "pc": 102, + "value": "[cast(fp, felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.key", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 90, + "value": "[cast(fp + (-6), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": { + "cairo_type": "starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals", + "references": [ + { + "ap_tracking_data": { + "group": 7, + "offset": 0 + }, + "pc": 118, + "value": "cast(ap + (-3), starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop": { + "pc": 105, + "type": "label" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": { + "cairo_type": "starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 7 + }, + "pc": 105, + "value": "cast(ap + 4, starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": { + "cairo_type": "starkware.cairo.common.squash_dict.squash_dict_inner.LoopTemps*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 7 + }, + "pc": 105, + "value": "cast(ap, starkware.cairo.common.squash_dict.squash_dict_inner.LoopTemps*)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses", + "references": [ + { + "ap_tracking_data": { + "group": 7, + "offset": 2 + }, + "pc": 121, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.next_key", + "references": [ + { + "ap_tracking_data": { + "group": 7, + "offset": 3 + }, + "pc": 130, + "value": "[cast(ap, felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 10 + }, + "pc": 143, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 33 + }, + "pc": 155, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": { + "cairo_type": "starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 7 + }, + "pc": 105, + "value": "cast(ap + (-3), starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 4 + }, + "pc": 95, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 90, + "value": "[cast(fp + (-9), felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 2 + }, + "pc": 122, + "value": "cast([ap + (-3)] + 1, felt)" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 7 + }, + "pc": 140, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 30 + }, + "pc": 152, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 90, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 3 + }, + "pc": 123, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 11 + }, + "pc": 144, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 34 + }, + "pc": 156, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 7 + }, + "pc": 103, + "value": "[cast(fp + 1, felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.skip_loop": { + "pc": 118, + "type": "label" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict", + "references": [ + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 90, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.lang.compiler.lib.registers.get_ap": { + "decorators": [ + "known_ap_change" + ], + "pc": 1, + "type": "function" + }, + "starkware.cairo.lang.compiler.lib.registers.get_ap.Args": { + "full_name": "starkware.cairo.lang.compiler.lib.registers.get_ap.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.lang.compiler.lib.registers.get_ap.ImplicitArgs": { + "full_name": "starkware.cairo.lang.compiler.lib.registers.get_ap.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.lang.compiler.lib.registers.get_ap.Return": { + "cairo_type": "(ap_val: felt*)", + "type": "type_definition" + }, + "starkware.cairo.lang.compiler.lib.registers.get_ap.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.lang.compiler.lib.registers.get_ap.fp_val": { + "cairo_type": "felt*", + "full_name": "starkware.cairo.lang.compiler.lib.registers.get_ap.fp_val", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 2 + }, + "pc": 3, + "value": "[cast(ap + (-2), felt**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.lang.compiler.lib.registers.get_ap.pc_val": { + "cairo_type": "felt*", + "full_name": "starkware.cairo.lang.compiler.lib.registers.get_ap.pc_val", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 2 + }, + "pc": 3, + "value": "[cast(ap + (-1), felt**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc": { + "decorators": [], + "pc": 0, + "type": "function" + }, + "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc.Args": { + "full_name": "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc.ImplicitArgs": { + "full_name": "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc.Return": { + "cairo_type": "(fp_val: felt*, pc_val: felt*)", + "type": "type_definition" + }, + "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + } + }, + "main_scope": "__main__", + "prime": "0x800000000000011000000000000000000000000000000000000000000000001", + "reference_manager": { + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 2 + }, + "pc": 3, + "value": "[cast(ap + (-2), felt**)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 2 + }, + "pc": 3, + "value": "[cast(ap + (-1), felt**)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 6, + "value": "[cast(fp + (-4), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 6, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 6, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 1 + }, + "pc": 7, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 2 + }, + "pc": 8, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 3 + }, + "pc": 10, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 4 + }, + "pc": 11, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 5 + }, + "pc": 12, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 6 + }, + "pc": 13, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 7 + }, + "pc": 15, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 8 + }, + "pc": 16, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 8 + }, + "pc": 16, + "value": "cast([fp + (-5)] + 4, felt)" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 8 + }, + "pc": 16, + "value": "cast([ap + (-5)] + [ap + (-1)], felt)" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 8 + }, + "pc": 16, + "value": "cast([ap + (-5)] * [ap + (-1)], felt)" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 10 + }, + "pc": 20, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 11 + }, + "pc": 21, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 12 + }, + "pc": 23, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 13 + }, + "pc": 25, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 14 + }, + "pc": 26, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 11 + }, + "pc": 34, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 12 + }, + "pc": 35, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 13 + }, + "pc": 36, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 14 + }, + "pc": 38, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 11 + }, + "pc": 44, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 12 + }, + "pc": 45, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 3, + "offset": 0 + }, + "pc": 51, + "value": "[cast(fp + (-4), felt*)]" + }, + { + "ap_tracking_data": { + "group": 3, + "offset": 0 + }, + "pc": 51, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 3, + "offset": 0 + }, + "pc": 51, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 3, + "offset": 1 + }, + "pc": 52, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 3, + "offset": 21 + }, + "pc": 61, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 62, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 62, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 62, + "value": "[cast(fp + (-3), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 62, + "value": "[cast(fp + (-6), felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 3 + }, + "pc": 65, + "value": "[cast(fp, felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 3 + }, + "pc": 70, + "value": "[cast(fp + 1, felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 3 + }, + "pc": 70, + "value": "[cast(fp + 2, felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 4 + }, + "pc": 72, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 5 + }, + "pc": 77, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 5 + }, + "pc": 80, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 5 + }, + "pc": 80, + "value": "[cast(ap - 0 + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 0 + }, + "pc": 89, + "value": "[cast(ap + (-2), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 0 + }, + "pc": 89, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 90, + "value": "[cast(fp + (-9), felt*)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 90, + "value": "[cast(fp + (-8), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 90, + "value": "[cast(fp + (-7), felt**)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 90, + "value": "[cast(fp + (-6), felt*)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 90, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 90, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 90, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 2 + }, + "pc": 92, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 3 + }, + "pc": 93, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 4 + }, + "pc": 95, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 4 + }, + "pc": 95, + "value": "cast(ap, starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 5 + }, + "pc": 96, + "value": "[cast(ap, starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 7 + }, + "pc": 102, + "value": "[cast(fp, felt*)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 7 + }, + "pc": 103, + "value": "[cast(fp + 1, felt*)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 7 + }, + "pc": 105, + "value": "cast(ap + (-3), starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 7 + }, + "pc": 105, + "value": "cast(ap, starkware.cairo.common.squash_dict.squash_dict_inner.LoopTemps*)" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 7 + }, + "pc": 105, + "value": "cast(ap + 4, starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 11 + }, + "pc": 111, + "value": "[cast(ap + 1, starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 0 + }, + "pc": 118, + "value": "cast(ap + (-3), starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 2 + }, + "pc": 121, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 2 + }, + "pc": 122, + "value": "cast([ap + (-3)] + 1, felt)" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 3 + }, + "pc": 123, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 3 + }, + "pc": 130, + "value": "[cast(ap, felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 5 + }, + "pc": 136, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 6 + }, + "pc": 137, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 7 + }, + "pc": 140, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 8 + }, + "pc": 141, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 9 + }, + "pc": 142, + "value": "[cast(ap + (-1), felt**)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 10 + }, + "pc": 143, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 11 + }, + "pc": 144, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 30 + }, + "pc": 152, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 31 + }, + "pc": 153, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 32 + }, + "pc": 154, + "value": "[cast(ap + (-1), felt**)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 33 + }, + "pc": 155, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 7, + "offset": 34 + }, + "pc": 156, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 8, + "offset": 0 + }, + "pc": 152, + "value": "[cast(ap - 4 + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 8, + "offset": 0 + }, + "pc": 153, + "value": "[cast(ap - 3 + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 8, + "offset": 0 + }, + "pc": 154, + "value": "[cast(ap - 2 + (-1), felt**)]" + }, + { + "ap_tracking_data": { + "group": 8, + "offset": 0 + }, + "pc": 156, + "value": "[cast(ap - 0 + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 8, + "offset": 0 + }, + "pc": 155, + "value": "[cast(ap - 1 + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 11, + "offset": 0 + }, + "pc": 165, + "value": "[cast(fp + (-4), felt*)]" + }, + { + "ap_tracking_data": { + "group": 11, + "offset": 0 + }, + "pc": 165, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 11, + "offset": 0 + }, + "pc": 165, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 11, + "offset": 0 + }, + "pc": 167, + "value": "cast([fp + (-5)] + 3, starkware.cairo.common.dict_access.DictAccess*)" + }, + { + "ap_tracking_data": { + "group": 12, + "offset": 0 + }, + "pc": 170, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 12, + "offset": 0 + }, + "pc": 170, + "value": "[cast(fp + (-3), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 12, + "offset": 0 + }, + "pc": 170, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 12, + "offset": 4 + }, + "pc": 174, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 12, + "offset": 4 + }, + "pc": 175, + "value": "[cast(fp, starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 13, + "offset": 0 + }, + "pc": 181, + "value": "[cast(ap + (-2), felt*)]" + }, + { + "ap_tracking_data": { + "group": 13, + "offset": 0 + }, + "pc": 181, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 14, + "offset": 0 + }, + "pc": 185, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 15, + "offset": 0 + }, + "pc": 188, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 15, + "offset": 0 + }, + "pc": 188, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 15, + "offset": 0 + }, + "pc": 188, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 15, + "offset": 0 + }, + "pc": 188, + "value": "[cast(fp + (-6), felt*)]" + }, + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 195, + "value": "[cast(ap + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 195, + "value": "[cast(ap + (-2), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 195, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 196, + "value": "[cast(fp, starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 197, + "value": "[cast(fp + 1, starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 198, + "value": "[cast(fp + 2, felt*)]" + }, + { + "ap_tracking_data": { + "group": 16, + "offset": 1 + }, + "pc": 199, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 0 + }, + "pc": 209, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 0 + }, + "pc": 209, + "value": "[cast(fp + (-4), felt*)]" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 0 + }, + "pc": 209, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 0 + }, + "pc": 221, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 0 + }, + "pc": 221, + "value": "cast(1263227476, felt)" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 4 + }, + "pc": 225, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 4 + }, + "pc": 225, + "value": "cast(3, felt)" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 13 + }, + "pc": 235, + "value": "[cast(ap + (-1), __main__.MyStruct**)]" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 19 + }, + "pc": 241, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 28 + }, + "pc": 251, + "value": "[cast(ap + (-1), __main__.MyStruct**)]" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 34 + }, + "pc": 257, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 43 + }, + "pc": 267, + "value": "[cast(ap + (-1), __main__.MyStruct**)]" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 49 + }, + "pc": 273, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 58 + }, + "pc": 283, + "value": "[cast(ap + (-1), __main__.MyStruct**)]" + }, + { + "ap_tracking_data": { + "group": 20, + "offset": 64 + }, + "pc": 289, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + } + ] + } +} diff --git a/cairo_programs/print_features/print_dict_felt.cairo b/cairo_programs/print_features/print_dict_felt.cairo new file mode 100644 index 00000000..93e61e87 --- /dev/null +++ b/cairo_programs/print_features/print_dict_felt.cairo @@ -0,0 +1,24 @@ +%builtins range_check + +from starkware.cairo.common.dict_access import DictAccess +from starkware.cairo.common.default_dict import default_dict_new, default_dict_finalize +from starkware.cairo.common.dict import dict_write + +func main{range_check_ptr: felt}() { + let name = 0x4b4b5254; + let (dict_ptr) = default_dict_new(0); + let pointer_size = 1; + dict_write{dict_ptr=dict_ptr}(0, 1); + dict_write{dict_ptr=dict_ptr}(1, 2); + dict_write{dict_ptr=dict_ptr}(2, 3); + dict_write{dict_ptr=dict_ptr}(3, 4); + dict_write{dict_ptr=dict_ptr}(4, 5); + %{ + print(bytes.fromhex(f"{ids.name:062x}").decode().replace('\x00','')) + data = __dict_manager.get_dict(ids.dict_ptr) + print( + {k: v if isinstance(v, int) else [memory[v + i] for i in range(ids.pointer_size)] for k, v in data.items()} + ) + %} + return(); +} \ No newline at end of file diff --git a/cairo_programs/print_features/print_dict_felt.json b/cairo_programs/print_features/print_dict_felt.json new file mode 100644 index 00000000..c959d8c3 --- /dev/null +++ b/cairo_programs/print_features/print_dict_felt.json @@ -0,0 +1,10841 @@ +{ + "attributes": [], + "builtins": [ + "range_check" + ], + "compiler_version": "0.13.1", + "data": [ + "0x480280007ffb8000", + "0x480280017ffb8000", + "0x484480017fff8000", + "0x2aaaaaaaaaaaab05555555555555556", + "0x48307fff7ffd8000", + "0x480280027ffb8000", + "0x480280037ffb8000", + "0x484480017fff8000", + "0x4000000000000088000000000000001", + "0x48307fff7ffd8000", + "0xa0680017fff8000", + "0xe", + "0x480680017fff8000", + "0x800000000000011000000000000000000000000000000000000000000000000", + "0x48287ffc80007fff", + "0x40307ffc7ff87fff", + "0x48297ffd80007ffc", + "0x482680017ffd8000", + "0x1", + "0x48507fff7ffe8000", + "0x40507ff97ff57fff", + "0x482680017ffb8000", + "0x4", + "0x208b7fff7fff7ffe", + "0xa0680017fff8000", + "0xc", + "0x480680017fff8000", + "0x800000000000011000000000000000000000000000000000000000000000000", + "0x48287ffd80007fff", + "0x48327fff7ffc8000", + "0x40307ffa7ff67fff", + "0x48527ffe7ffc8000", + "0x40507ff97ff57fff", + "0x482680017ffb8000", + "0x4", + "0x208b7fff7fff7ffe", + "0x40317ffd7ff97ffd", + "0x48297ffc80007ffd", + "0x48527fff7ffc8000", + "0x40507ffb7ff77fff", + "0x40780017fff7fff", + "0x2", + "0x482680017ffb8000", + "0x4", + "0x208b7fff7fff7ffe", + "0x48297ffd80007ffc", + "0x20680017fff7fff", + "0x4", + "0x402780017ffc7ffc", + "0x1", + "0x480a7ffb7fff8000", + "0x480a7ffc7fff8000", + "0x480a7ffd7fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffcc", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x3", + "0x402b7ffb80007ffc", + "0x20780017fff8000", + "0x5", + "0x480a7ffa7fff8000", + "0x480a7ffd7fff8000", + "0x208b7fff7fff7ffe", + "0x4846800180008000", + "0x2aaaaaaaaaaaab0555555555555555555555555555555555555555555555556", + "0x20780017fff8002", + "0x7", + "0x400380007ffa8001", + "0x482680017ffa8000", + "0x1", + "0x10780017fff7fff", + "0x3", + "0x480a7ffa7fff8000", + "0x480a7ffb7fff8000", + "0x482680017ffc8000", + "0x800000000000011000000000000000000000000000000000000000000000000", + "0x480a80017fff8000", + "0x48127ffb7fff8000", + "0x480a7ffd7fff8000", + "0x480a80027fff8000", + "0x1104800180018000", + "0x3", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x2", + "0x480280007ff78000", + "0x484480017fff8000", + "0x3", + "0x48327fff7ff88001", + "0x4800800280007fff", + "0x482680017ff78000", + "0x1", + "0x400180007ffe7ffa", + "0x400380007ffc7ffa", + "0x400180017ffe8000", + "0x400380017ffc8000", + "0x20780017fff8001", + "0xf", + "0x480080007fff8000", + "0x482480017fff8000", + "0x1", + "0x484480017fff8000", + "0x3", + "0x48307fff7ffb8002", + "0x4000800180017ff9", + "0x4800800280018000", + "0x4001800080007ffa", + "0x482480017ffa8001", + "0x1", + "0xa0680017fff7ffd", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff6", + "0x40317ffe80007ff9", + "0x480080007fff8000", + "0x48287ff780007ffe", + "0x400280027ffc7ffb", + "0x48317fff80007ffb", + "0x20680017fff7fff", + "0x7", + "0x482480017ffc8000", + "0x1", + "0x482680017ffc8000", + "0x3", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x20780017fff7ffd", + "0xe", + "0x482680017ffa8000", + "0x1", + "0x48307fff80007ffe", + "0x400080017ff97fff", + "0x482480017ff98000", + "0x2", + "0x480a7ff87fff8000", + "0x480a7ff97fff8000", + "0x48127ffa7fff8000", + "0x48127ff87fff8000", + "0x10780017fff7fff", + "0xc", + "0x482480017ffb8000", + "0x1", + "0x480a7ffa7fff8000", + "0x48127ffd7fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff9e", + "0x480a7ff87fff8000", + "0x480a7ff97fff8000", + "0x48127fe37fff8000", + "0x48127fe17fff8000", + "0x482680017ffc8000", + "0x3", + "0x480a7ffd7fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffbc", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x208b7fff7fff7ffe", + "0x400380007ffb7ffc", + "0x400380027ffb7ffd", + "0x482680017ffb8000", + "0x3", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x1104800180018000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff7", + "0x40137fff7fff8000", + "0x480a7ffb7fff8000", + "0x480a7ffc7fff8000", + "0x480a7ffd7fff8000", + "0x480a80007fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff8c", + "0x48127ffe7fff8000", + "0x480a80007fff8000", + "0x48127ffd7fff8000", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x3", + "0x480a7ffa7fff8000", + "0x480a7ffb7fff8000", + "0x480a7ffc7fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffea", + "0x40137ffe7fff8000", + "0x40137fff7fff8001", + "0x40137ffd7fff8002", + "0x4829800080008001", + "0x480a80007fff8000", + "0x484480017ffe8000", + "0x2aaaaaaaaaaaab0555555555555555555555555555555555555555555555556", + "0x480a7ffd7fff8000", + "0x1104800180018000", + "0x6", + "0x480a80027fff8000", + "0x480a80007fff8000", + "0x480a80017fff8000", + "0x208b7fff7fff7ffe", + "0x20780017fff7ffc", + "0x3", + "0x208b7fff7fff7ffe", + "0x400380017ffb7ffd", + "0x482680017ffb8000", + "0x3", + "0x482680017ffc8000", + "0x800000000000011000000000000000000000000000000000000000000000000", + "0x480a7ffd7fff8000", + "0x1104800180018000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff8", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x0", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffdb", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x1", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffc1", + "0x480680017fff8000", + "0x1", + "0x480680017fff8000", + "0x2", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffbb", + "0x480680017fff8000", + "0x2", + "0x480680017fff8000", + "0x3", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffb5", + "0x480680017fff8000", + "0x3", + "0x480680017fff8000", + "0x4", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffaf", + "0x480680017fff8000", + "0x4", + "0x480680017fff8000", + "0x5", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffa9", + "0x480a7ffd7fff8000", + "0x208b7fff7fff7ffe" + ], + "debug_info": { + "file_contents": {}, + "instruction_locations": { + "0": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 2 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 184, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 164 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 42, + "end_line": 186, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 25, + "start_line": 186 + } + }, + "1": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 2 + } + }, + "hints": [], + "inst": { + "end_col": 66, + "end_line": 186, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 45, + "start_line": 186 + } + }, + "2": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 2 + } + }, + "hints": [], + "inst": { + "end_col": 86, + "end_line": 186, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 45, + "start_line": 186 + } + }, + "4": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 2 + } + }, + "hints": [], + "inst": { + "end_col": 86, + "end_line": 186, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 25, + "start_line": 186 + } + }, + "5": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 2 + } + }, + "hints": [], + "inst": { + "end_col": 45, + "end_line": 187, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 24, + "start_line": 187 + } + }, + "6": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 2 + } + }, + "hints": [], + "inst": { + "end_col": 69, + "end_line": 187, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 48, + "start_line": 187 + } + }, + "7": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 2 + } + }, + "hints": [], + "inst": { + "end_col": 89, + "end_line": 187, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 48, + "start_line": 187 + } + }, + "9": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 2 + } + }, + "hints": [], + "inst": { + "end_col": 89, + "end_line": 187, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 24, + "start_line": 187 + } + }, + "10": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 8 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [ + { + "location": { + "end_col": 49, + "end_line": 196, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 196 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 42, + "end_line": 197, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 197 + } + }, + "12": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 9 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 25, + "end_line": 198, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 23, + "start_line": 198 + } + }, + "14": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.__temp6": 14, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 30, + "end_line": 198, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 22, + "start_line": 198 + } + }, + "15": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.__temp6": 14, + "starkware.cairo.common.math.assert_le_felt.__temp7": 15, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 198, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 198 + } + }, + "16": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.__temp6": 14, + "starkware.cairo.common.math.assert_le_felt.__temp7": 15, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 29, + "end_line": 199, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 24, + "start_line": 199 + } + }, + "17": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 12 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.__temp6": 14, + "starkware.cairo.common.math.assert_le_felt.__temp7": 15, + "starkware.cairo.common.math.assert_le_felt.__temp8": 16, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 39, + "end_line": 199, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 34, + "start_line": 199 + } + }, + "19": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 13 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.__temp6": 14, + "starkware.cairo.common.math.assert_le_felt.__temp7": 15, + "starkware.cairo.common.math.assert_le_felt.__temp8": 16, + "starkware.cairo.common.math.assert_le_felt.__temp9": 17, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 40, + "end_line": 199, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 23, + "start_line": 199 + } + }, + "20": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 14 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp10": 18, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.__temp6": 14, + "starkware.cairo.common.math.assert_le_felt.__temp7": 15, + "starkware.cairo.common.math.assert_le_felt.__temp8": 16, + "starkware.cairo.common.math.assert_le_felt.__temp9": 17, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 41, + "end_line": 199, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 199 + } + }, + "21": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 14 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp10": 18, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.__temp6": 14, + "starkware.cairo.common.math.assert_le_felt.__temp7": 15, + "starkware.cairo.common.math.assert_le_felt.__temp8": 16, + "starkware.cairo.common.math.assert_le_felt.__temp9": 17, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 188, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 154, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 15, + "end_line": 200, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 200 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 21, + "start_line": 154 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 27, + "start_line": 188 + } + }, + "23": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 15 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp10": 18, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.__temp6": 14, + "starkware.cairo.common.math.assert_le_felt.__temp7": 15, + "starkware.cairo.common.math.assert_le_felt.__temp8": 16, + "starkware.cairo.common.math.assert_le_felt.__temp9": 17, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 15, + "end_line": 200, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 200 + } + }, + "24": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 9 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [ + { + "location": { + "end_col": 49, + "end_line": 204, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 204 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 50, + "end_line": 205, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 205 + } + }, + "26": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 23, + "end_line": 206, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 21, + "start_line": 206 + } + }, + "28": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp11": 19, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 28, + "end_line": 206, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 20, + "start_line": 206 + } + }, + "29": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 12 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp11": 19, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.m1mb": 20, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 30, + "end_line": 207, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 22, + "start_line": 207 + } + }, + "30": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 13 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp11": 19, + "starkware.cairo.common.math.assert_le_felt.__temp12": 21, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.m1mb": 20, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 207, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 207 + } + }, + "31": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 13 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp11": 19, + "starkware.cairo.common.math.assert_le_felt.__temp12": 21, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.m1mb": 20, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 208, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 23, + "start_line": 208 + } + }, + "32": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 14 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp11": 19, + "starkware.cairo.common.math.assert_le_felt.__temp12": 21, + "starkware.cairo.common.math.assert_le_felt.__temp13": 22, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.m1mb": 20, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 32, + "end_line": 208, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 208 + } + }, + "33": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 14 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp11": 19, + "starkware.cairo.common.math.assert_le_felt.__temp12": 21, + "starkware.cairo.common.math.assert_le_felt.__temp13": 22, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.m1mb": 20, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 188, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 154, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 15, + "end_line": 209, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 209 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 21, + "start_line": 154 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 27, + "start_line": 188 + } + }, + "35": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 15 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp11": 19, + "starkware.cairo.common.math.assert_le_felt.__temp12": 21, + "starkware.cairo.common.math.assert_le_felt.__temp13": 22, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.m1mb": 20, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 15, + "end_line": 209, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 209 + } + }, + "36": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [ + { + "location": { + "end_col": 31, + "end_line": 213, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 213 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 24, + "end_line": 214, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 214 + } + }, + "37": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 33, + "end_line": 215, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 28, + "start_line": 215 + } + }, + "38": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp14": 23, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 34, + "end_line": 215, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 23, + "start_line": 215 + } + }, + "39": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 12 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp14": 23, + "starkware.cairo.common.math.assert_le_felt.__temp15": 24, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 215, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 215 + } + }, + "40": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 12 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp14": 23, + "starkware.cairo.common.math.assert_le_felt.__temp15": 24, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 12, + "end_line": 216, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 216 + } + }, + "42": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 14 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp14": 23, + "starkware.cairo.common.math.assert_le_felt.__temp15": 24, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 188, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 154, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 15, + "end_line": 217, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 217 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 21, + "start_line": 154 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 27, + "start_line": 188 + } + }, + "44": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 15 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp14": 23, + "starkware.cairo.common.math.assert_le_felt.__temp15": 24, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + }, + "hints": [], + "inst": { + "end_col": 15, + "end_line": 217, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 217 + } + }, + "45": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.a": 25, + "starkware.cairo.common.math.assert_lt_felt.b": 26, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 27 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 230, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 224 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 15, + "end_line": 231, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 9, + "start_line": 231 + } + }, + "46": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.__temp16": 28, + "starkware.cairo.common.math.assert_lt_felt.a": 25, + "starkware.cairo.common.math.assert_lt_felt.b": 26, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 27 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 231, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 231 + } + }, + "48": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.__temp16": 28, + "starkware.cairo.common.math.assert_lt_felt.a": 25, + "starkware.cairo.common.math.assert_lt_felt.b": 26, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 27 + } + }, + "hints": [], + "inst": { + "end_col": 18, + "end_line": 233, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 9, + "start_line": 233 + } + }, + "50": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.__temp16": 28, + "starkware.cairo.common.math.assert_lt_felt.a": 25, + "starkware.cairo.common.math.assert_lt_felt.b": 26, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 27 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 223, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 154, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 25, + "end_line": 235, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 235 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 21, + "start_line": 154 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 21, + "start_line": 223 + } + }, + "51": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.__temp16": 28, + "starkware.cairo.common.math.assert_lt_felt.a": 25, + "starkware.cairo.common.math.assert_lt_felt.b": 26, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 27 + } + }, + "hints": [], + "inst": { + "end_col": 39, + "end_line": 223, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 21, + "end_line": 235, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 20, + "start_line": 235 + }, + "While expanding the reference 'a' in:" + ], + "start_col": 38, + "start_line": 223 + } + }, + "52": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.__temp16": 28, + "starkware.cairo.common.math.assert_lt_felt.a": 25, + "starkware.cairo.common.math.assert_lt_felt.b": 26, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 27 + } + }, + "hints": [], + "inst": { + "end_col": 42, + "end_line": 223, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "parent_location": [ + { + "end_col": 24, + "end_line": 235, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 23, + "start_line": 235 + }, + "While expanding the reference 'b' in:" + ], + "start_col": 41, + "start_line": 223 + } + }, + "53": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.__temp16": 28, + "starkware.cairo.common.math.assert_lt_felt.a": 25, + "starkware.cairo.common.math.assert_lt_felt.b": 26, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 27 + } + }, + "hints": [], + "inst": { + "end_col": 25, + "end_line": 235, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 235 + } + }, + "55": { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 21 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.__temp16": 28, + "starkware.cairo.common.math.assert_lt_felt.a": 25, + "starkware.cairo.common.math.assert_lt_felt.b": 26, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 29 + } + }, + "hints": [], + "inst": { + "end_col": 15, + "end_line": 236, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/math.cairo" + }, + "start_col": 5, + "start_line": 236 + } + }, + "56": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 33, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 18, + "end_line": 27, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 27 + } + }, + "58": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 33, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [ + { + "location": { + "end_col": 27, + "end_line": 28, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 28 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 56, + "end_line": 29, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 29 + } + }, + "59": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 33, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 31, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 31 + } + }, + "61": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 33, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [ + { + "location": { + "end_col": 30, + "end_line": 33, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 33 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 33, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 33, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 46, + "end_line": 34, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 34 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 24 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 24 + } + }, + "62": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 33, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 91, + "end_line": 25, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 44, + "end_line": 34, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 31, + "start_line": 34 + }, + "While expanding the reference 'squashed_dict' in:" + ], + "start_col": 65, + "start_line": 25 + } + }, + "63": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 33, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 34, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 34 + } + }, + "64": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 33, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 52, + "end_line": 38, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 26, + "start_line": 38 + } + }, + "66": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 33, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 59, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 39 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 7, + "end_line": 62, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 62 + } + }, + "68": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 33, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 65, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 65 + } + }, + "69": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 33, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 54, + "end_line": 66, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 35, + "start_line": 66 + } + }, + "71": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 38, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 62, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 62 + } + }, + "73": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 33, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 33, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 50, + "end_line": 63, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 35, + "start_line": 63 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 24 + } + }, + "74": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 40, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 25, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 70, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 23, + "start_line": 70 + }, + "While expanding the reference 'dict_accesses' in:" + ], + "start_col": 5, + "start_line": 25 + } + }, + "75": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 40, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 55, + "end_line": 71, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 34, + "start_line": 71 + } + }, + "77": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 40, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 20, + "end_line": 36, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 22, + "end_line": 72, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 13, + "start_line": 72 + }, + "While expanding the reference 'first_key' in:" + ], + "start_col": 11, + "start_line": 36 + } + }, + "78": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 8 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 40, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 23, + "end_line": 38, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 38, + "end_line": 73, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 28, + "start_line": 73 + }, + "While expanding the reference 'n_accesses' in:" + ], + "start_col": 13, + "start_line": 38 + } + }, + "79": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 9 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 40, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 91, + "end_line": 25, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 74, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 23, + "start_line": 74 + }, + "While expanding the reference 'squashed_dict' in:" + ], + "start_col": 65, + "start_line": 25 + } + }, + "80": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 40, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 19, + "end_line": 37, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 26, + "end_line": 75, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 18, + "start_line": 75 + }, + "While expanding the reference 'big_keys' in:" + ], + "start_col": 11, + "start_line": 37 + } + }, + "81": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 40, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + }, + "hints": [], + "inst": { + "end_col": 6, + "end_line": 76, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 44, + "start_line": 68 + } + }, + "83": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 3, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 41, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 42 + } + }, + "hints": [ + { + "location": { + "end_col": 26, + "end_line": 77, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 77 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 42, + "end_line": 78, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 78 + } + }, + "84": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 18, + "end_line": 110, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 110 + } + }, + "86": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 134, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 130 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 53, + "end_line": 136, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 36, + "start_line": 136 + } + }, + "87": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 63, + "end_line": 137, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 25, + "start_line": 137 + } + }, + "89": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 67, + "end_line": 140, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 140 + } + }, + "90": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 59, + "end_line": 142, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 142 + } + }, + "91": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 66, + "end_line": 143, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 143 + } + }, + "93": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 27, + "end_line": 146, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 146 + } + }, + "94": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 24, + "end_line": 149, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 149 + } + }, + "95": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 49, + "end_line": 151, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 151 + } + }, + "96": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 47, + "end_line": 152, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 152 + } + }, + "97": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [ + { + "location": { + "end_col": 68, + "end_line": 160, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 160 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 43, + "end_line": 161, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 161 + } + }, + "99": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 175, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 171 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 77, + "end_line": 177, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 177 + } + }, + "100": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 8 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 69, + "end_line": 178, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 178 + } + }, + "102": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 9 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 74, + "end_line": 179, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 179 + } + }, + "104": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 86, + "end_line": 180, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 180 + } + }, + "105": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.access": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 47, + "end_line": 184, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 184 + } + }, + "106": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.access": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 47, + "end_line": 185, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 185 + } + }, + "107": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 12 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.access": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 21, + "end_line": 188, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 188 + } + }, + "108": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 12 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.access": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 77, + "end_line": 191, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 191 + } + }, + "110": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 13 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.access": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [ + { + "location": { + "end_col": 78, + "end_line": 194, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 194 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 54, + "end_line": 195, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 195 + } + }, + "112": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [ + { + "location": { + "end_col": 50, + "end_line": 201, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 201 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 78, + "end_line": 202, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 202 + } + }, + "113": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 52, + "end_line": 203, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 203 + } + }, + "114": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 81, + "end_line": 205, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 31, + "start_line": 205 + } + }, + "115": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [ + { + "location": { + "end_col": 65, + "end_line": 206, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 206 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 49, + "end_line": 209, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 209 + } + }, + "116": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 70, + "end_line": 212, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 34, + "start_line": 212 + } + }, + "117": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 215, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 215 + } + }, + "119": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [ + { + "location": { + "end_col": 36, + "end_line": 216, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 216 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 63, + "end_line": 211, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 48, + "end_line": 217, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 33, + "start_line": 217 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 27, + "start_line": 211 + } + }, + "121": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 95, + "end_line": 217, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 64, + "start_line": 217 + } + }, + "123": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 97, + "end_line": 217, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 217 + } + }, + "124": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 12, + "end_line": 222, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 222 + } + }, + "126": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 227, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 224 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 7, + "end_line": 229, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 229 + } + }, + "128": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 55, + "end_line": 236, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 48, + "start_line": 236 + } + }, + "130": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 56, + "end_line": 236, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 36, + "start_line": 236 + } + }, + "131": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 57, + "end_line": 236, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 236 + } + }, + "132": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 54, + "end_line": 237, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 35, + "start_line": 237 + } + }, + "134": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 68, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 103, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 46, + "end_line": 238, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 33, + "start_line": 238 + }, + "While expanding the reference 'dict_accesses' in:" + ], + "start_col": 5, + "start_line": 103 + } + }, + "135": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 8 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 69, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 68, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 104, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 68, + "end_line": 239, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 44, + "start_line": 239 + }, + "While expanding the reference 'dict_accesses_end_minus1' in:" + ], + "start_col": 5, + "start_line": 104 + } + }, + "136": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 9 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 69, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 70, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 68, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 24, + "end_line": 221, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 240, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 28, + "start_line": 240 + }, + "While expanding the reference 'next_key' in:" + ], + "start_col": 20, + "start_line": 221 + } + }, + "137": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 69, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 70, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 71, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 68, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 212, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 56, + "end_line": 241, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 38, + "start_line": 241 + }, + "While expanding the reference 'remaining_accesses' in:" + ], + "start_col": 13, + "start_line": 212 + } + }, + "138": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 11 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": 66, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": 67, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 69, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 70, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 71, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 68, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 72, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 229, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 229 + } + }, + "140": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 63, + "end_line": 211, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 55, + "end_line": 230, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 40, + "start_line": 230 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 27, + "start_line": 211 + } + }, + "142": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 8, + "end_line": 105, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 62, + "end_line": 230, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 59, + "start_line": 230 + }, + "While expanding the reference 'key' in:" + ], + "start_col": 5, + "start_line": 105 + } + }, + "143": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 24, + "end_line": 221, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 74, + "end_line": 230, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 66, + "start_line": 230 + }, + "While expanding the reference 'next_key' in:" + ], + "start_col": 20, + "start_line": 221 + } + }, + "144": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 75, + "end_line": 230, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 9, + "start_line": 230 + } + }, + "146": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 30 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 73, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 103, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 46, + "end_line": 231, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 33, + "start_line": 231 + }, + "While expanding the reference 'dict_accesses' in:" + ], + "start_col": 5, + "start_line": 103 + } + }, + "147": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 31 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 74, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 73, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 104, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 68, + "end_line": 232, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 44, + "start_line": 232 + }, + "While expanding the reference 'dict_accesses_end_minus1' in:" + ], + "start_col": 5, + "start_line": 104 + } + }, + "148": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 32 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 74, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 75, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 73, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 24, + "end_line": 221, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 233, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 28, + "start_line": 233 + }, + "While expanding the reference 'next_key' in:" + ], + "start_col": 20, + "start_line": 221 + } + }, + "149": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 33 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 74, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 75, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 76, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 73, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 31, + "end_line": 212, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 56, + "end_line": 234, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 38, + "start_line": 234 + }, + "While expanding the reference 'remaining_accesses' in:" + ], + "start_col": 13, + "start_line": 212 + } + }, + "150": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 79, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 80, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 82, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 78, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 81, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 54, + "end_line": 250, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 23, + "start_line": 250 + } + }, + "152": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 79, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 80, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 82, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 78, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 81, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 13, + "end_line": 108, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 26, + "end_line": 251, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 18, + "start_line": 251 + }, + "While expanding the reference 'big_keys' in:" + ], + "start_col": 5, + "start_line": 108 + } + }, + "153": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 6, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 79, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 80, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 82, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 78, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 81, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 6, + "end_line": 252, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 12, + "start_line": 244 + } + }, + "155": { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 7, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 79, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 80, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 82, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 78, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 81, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 252, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "start_col": 5, + "start_line": 244 + } + }, + "156": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_new" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 8, + "offset": 0 + }, + "reference_ids": {} + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 16, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 9 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 12, + "end_line": 17, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 17 + } + }, + "158": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_new" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 8, + "offset": 1 + }, + "reference_ids": {} + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 18, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 18 + } + }, + "159": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_write" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 9, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_write.dict_ptr": 85, + "starkware.cairo.common.dict.dict_write.key": 83, + "starkware.cairo.common.dict.dict_write.new_value": 84 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 44, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 39 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 23, + "end_line": 45, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 45 + } + }, + "160": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_write" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 9, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_write.dict_ptr": 85, + "starkware.cairo.common.dict.dict_write.key": 83, + "starkware.cairo.common.dict.dict_write.new_value": 84 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 46, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 46 + } + }, + "161": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_write" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 9, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_write.dict_ptr": 86, + "starkware.cairo.common.dict.dict_write.key": 83, + "starkware.cairo.common.dict.dict_write.new_value": 84 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 47, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 38, + "end_line": 38, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 15, + "end_line": 48, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 48 + }, + "While trying to retrieve the implicit argument 'dict_ptr' in:" + ], + "start_col": 17, + "start_line": 38 + }, + "While expanding the reference 'dict_ptr' in:" + ], + "start_col": 20, + "start_line": 47 + } + }, + "163": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_write" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 9, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_write.dict_ptr": 86, + "starkware.cairo.common.dict.dict_write.key": 83, + "starkware.cairo.common.dict.dict_write.new_value": 84 + } + }, + "hints": [], + "inst": { + "end_col": 15, + "end_line": 48, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 48 + } + }, + "164": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 10, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 88, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 87, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 89 + } + }, + "hints": [], + "inst": { + "end_col": 18, + "end_line": 85, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 85 + } + }, + "166": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 10, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 88, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 87, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 89 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 96, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 87 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 49, + "end_line": 97, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 39, + "start_line": 97 + } + }, + "168": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 10, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 88, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 87, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 89, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 90 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 97, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 10, + "start_line": 97 + } + }, + "169": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 10, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 88, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 87, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 89, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 91 + } + }, + "hints": [ + { + "location": { + "end_col": 26, + "end_line": 98, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 98 + }, + "n_prefix_newlines": 0 + } + ], + "inst": { + "end_col": 33, + "end_line": 82, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 33, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 6, + "end_line": 104, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 31, + "start_line": 100 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 24 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 82 + } + }, + "170": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 10, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 88, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 87, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 89, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 91 + } + }, + "hints": [], + "inst": { + "end_col": 37, + "end_line": 83, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 42, + "end_line": 101, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 23, + "start_line": 101 + }, + "While expanding the reference 'dict_accesses_start' in:" + ], + "start_col": 5, + "start_line": 83 + } + }, + "171": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 10, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 88, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 87, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 89, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 91 + } + }, + "hints": [], + "inst": { + "end_col": 69, + "end_line": 83, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 44, + "end_line": 102, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 27, + "start_line": 102 + }, + "While expanding the reference 'dict_accesses_end' in:" + ], + "start_col": 39, + "start_line": 83 + } + }, + "172": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 10, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 88, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 87, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 89, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 91 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 97, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 42, + "end_line": 103, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 23, + "start_line": 103 + }, + "While expanding the reference 'squashed_dict_start' in:" + ], + "start_col": 16, + "start_line": 97 + } + }, + "173": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 10, + "offset": 8 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 88, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 87, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 89, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 91 + } + }, + "hints": [], + "inst": { + "end_col": 6, + "end_line": 104, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 31, + "start_line": 100 + } + }, + "175": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 11, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 88, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 87, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 92, + "starkware.cairo.common.dict.dict_squash.squashed_dict_end": 93, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 91 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 110, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 106 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 33, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/squash_dict.cairo" + }, + "parent_location": [ + { + "end_col": 6, + "end_line": 104, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 33, + "end_line": 82, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 91, + "end_line": 111, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 111 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 82 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 31, + "start_line": 100 + }, + "While trying to update the implicit return value 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 24 + } + }, + "176": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 11, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 88, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 87, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 92, + "starkware.cairo.common.dict.dict_squash.squashed_dict_end": 93, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 91 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 97, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 52, + "end_line": 111, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 33, + "start_line": 111 + }, + "While expanding the reference 'squashed_dict_start' in:" + ], + "start_col": 16, + "start_line": 97 + } + }, + "177": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 11, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 88, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 87, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 92, + "starkware.cairo.common.dict.dict_squash.squashed_dict_end": 93, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 91 + } + }, + "hints": [], + "inst": { + "end_col": 27, + "end_line": 100, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 89, + "end_line": 111, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 72, + "start_line": 111 + }, + "While expanding the reference 'squashed_dict_end' in:" + ], + "start_col": 10, + "start_line": 100 + } + }, + "178": { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 11, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 88, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 87, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 92, + "starkware.cairo.common.dict.dict_squash.squashed_dict_end": 93, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 91 + } + }, + "hints": [], + "inst": { + "end_col": 91, + "end_line": 111, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "start_col": 5, + "start_line": 111 + } + }, + "179": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_new" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 12, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_new.default_value": 94 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 15, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 9 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 12, + "end_line": 16, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 16 + } + }, + "181": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_new" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 12, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_new.default_value": 94 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 17, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 17 + } + }, + "182": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 13, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 98 + } + }, + "hints": [], + "inst": { + "end_col": 18, + "end_line": 26, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 26 + } + }, + "184": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 13, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 98 + } + }, + "hints": [], + "inst": { + "end_col": 43, + "end_line": 23, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 33, + "end_line": 82, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/dict.cairo" + }, + "parent_location": [ + { + "end_col": 6, + "end_line": 29, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 64, + "start_line": 27 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 18, + "start_line": 82 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 28, + "start_line": 23 + } + }, + "185": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 13, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 98 + } + }, + "hints": [], + "inst": { + "end_col": 37, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 28, + "end_line": 28, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 9, + "start_line": 28 + }, + "While expanding the reference 'dict_accesses_start' in:" + ], + "start_col": 5, + "start_line": 24 + } + }, + "186": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 13, + "offset": 5 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 98 + } + }, + "hints": [], + "inst": { + "end_col": 69, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 47, + "end_line": 28, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 30, + "start_line": 28 + }, + "While expanding the reference 'dict_accesses_end' in:" + ], + "start_col": 39, + "start_line": 24 + } + }, + "187": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 13, + "offset": 6 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 98 + } + }, + "hints": [], + "inst": { + "end_col": 6, + "end_line": 29, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 64, + "start_line": 27 + } + }, + "189": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 14, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 101, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 100 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 27, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 10, + "start_line": 27 + } + }, + "190": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 14, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 101, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 102 + } + }, + "hints": [], + "inst": { + "end_col": 60, + "end_line": 27, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 37, + "start_line": 27 + } + }, + "191": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 14, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 99, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 103, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 102 + } + }, + "hints": [], + "inst": { + "end_col": 45, + "end_line": 30, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 30 + } + }, + "192": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 14, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 104, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 103, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 102 + } + }, + "hints": [], + "inst": { + "end_col": 60, + "end_line": 34, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 21, + "start_line": 34 + } + }, + "193": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 14, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 104, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 103, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 102 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 27, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 48, + "end_line": 33, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 29, + "start_line": 33 + }, + "While expanding the reference 'squashed_dict_start' in:" + ], + "start_col": 16, + "start_line": 27 + } + }, + "194": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 14, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 104, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 103, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 102 + } + }, + "hints": [], + "inst": { + "end_col": 79, + "end_line": 34, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 20, + "start_line": 34 + } + }, + "196": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 14, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 104, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 103, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 102 + } + }, + "hints": [], + "inst": { + "end_col": 90, + "end_line": 24, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 35, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 23, + "start_line": 35 + }, + "While expanding the reference 'default_value' in:" + ], + "start_col": 71, + "start_line": 24 + } + }, + "197": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 14, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 104, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 103, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 102 + } + }, + "hints": [], + "inst": { + "end_col": 6, + "end_line": 36, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 32 + } + }, + "199": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 15, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 104, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 103, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 102 + } + }, + "hints": [], + "inst": { + "end_col": 26, + "end_line": 30, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 43, + "end_line": 23, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 91, + "end_line": 37, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 37 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 28, + "start_line": 23 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 11, + "start_line": 30 + } + }, + "200": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 15, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 104, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 103, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 102 + } + }, + "hints": [], + "inst": { + "end_col": 35, + "end_line": 27, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 52, + "end_line": 37, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 33, + "start_line": 37 + }, + "While expanding the reference 'squashed_dict_start' in:" + ], + "start_col": 16, + "start_line": 27 + } + }, + "201": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 15, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 104, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 103, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 102 + } + }, + "hints": [], + "inst": { + "end_col": 60, + "end_line": 27, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 89, + "end_line": 37, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 72, + "start_line": 37 + }, + "While expanding the reference 'squashed_dict_end' in:" + ], + "start_col": 43, + "start_line": 27 + } + }, + "202": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 15, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": 105, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": 97, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": 96, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": 95, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": 104, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": 103, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": 102 + } + }, + "hints": [], + "inst": { + "end_col": 91, + "end_line": 37, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 37 + } + }, + "203": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 106, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 107 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 43, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 43 + } + }, + "205": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 106, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 107 + } + }, + "hints": [], + "inst": { + "end_col": 19, + "end_line": 44, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 9, + "start_line": 44 + } + }, + "206": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 106, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 107 + } + }, + "hints": [], + "inst": { + "end_col": 59, + "end_line": 47, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 47 + } + }, + "207": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 106, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 107 + } + }, + "hints": [], + "inst": { + "end_col": 46, + "end_line": 49, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 9, + "start_line": 49 + } + }, + "209": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 106, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 107 + } + }, + "hints": [], + "inst": { + "end_col": 34, + "end_line": 50, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 20, + "start_line": 50 + } + }, + "211": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 106, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 107 + } + }, + "hints": [], + "inst": { + "end_col": 76, + "end_line": 41, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "parent_location": [ + { + "end_col": 36, + "end_line": 51, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 23, + "start_line": 51 + }, + "While expanding the reference 'default_value' in:" + ], + "start_col": 57, + "start_line": 41 + } + }, + "212": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 106, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 107 + } + }, + "hints": [], + "inst": { + "end_col": 6, + "end_line": 52, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 12, + "start_line": 48 + } + }, + "214": { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_finalize_inner" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 17, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": 108, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": 106, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": 107 + } + }, + "hints": [], + "inst": { + "end_col": 7, + "end_line": 52, + "input_file": { + "filename": "/home/tropicaldog17/cairo_venv/lib/python3.9/site-packages/starkware/cairo/common/default_dict.cairo" + }, + "start_col": 5, + "start_line": 48 + } + }, + "215": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 0 + }, + "reference_ids": { + "__main__.main.name": 110, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 40, + "end_line": 9, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 39, + "start_line": 9 + } + }, + "217": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 1 + }, + "reference_ids": { + "__main__.main.name": 110, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 41, + "end_line": 9, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 22, + "start_line": 9 + } + }, + "219": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 4 + }, + "reference_ids": { + "__main__.main.dict_ptr": 111, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 11, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 35, + "start_line": 11 + } + }, + "221": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 5 + }, + "reference_ids": { + "__main__.main.dict_ptr": 111, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 39, + "end_line": 11, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 38, + "start_line": 11 + } + }, + "223": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 6 + }, + "reference_ids": { + "__main__.main.dict_ptr": 111, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 40, + "end_line": 11, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 5, + "start_line": 11 + } + }, + "225": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 9 + }, + "reference_ids": { + "__main__.main.dict_ptr": 113, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 12, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 35, + "start_line": 12 + } + }, + "227": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 10 + }, + "reference_ids": { + "__main__.main.dict_ptr": 113, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 39, + "end_line": 12, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 38, + "start_line": 12 + } + }, + "229": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 11 + }, + "reference_ids": { + "__main__.main.dict_ptr": 113, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 40, + "end_line": 12, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 5, + "start_line": 12 + } + }, + "231": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 14 + }, + "reference_ids": { + "__main__.main.dict_ptr": 114, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 13, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 35, + "start_line": 13 + } + }, + "233": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 15 + }, + "reference_ids": { + "__main__.main.dict_ptr": 114, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 39, + "end_line": 13, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 38, + "start_line": 13 + } + }, + "235": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 16 + }, + "reference_ids": { + "__main__.main.dict_ptr": 114, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 40, + "end_line": 13, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 5, + "start_line": 13 + } + }, + "237": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 19 + }, + "reference_ids": { + "__main__.main.dict_ptr": 115, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 14, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 35, + "start_line": 14 + } + }, + "239": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 20 + }, + "reference_ids": { + "__main__.main.dict_ptr": 115, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 39, + "end_line": 14, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 38, + "start_line": 14 + } + }, + "241": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 21 + }, + "reference_ids": { + "__main__.main.dict_ptr": 115, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 40, + "end_line": 14, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 5, + "start_line": 14 + } + }, + "243": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 24 + }, + "reference_ids": { + "__main__.main.dict_ptr": 116, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 36, + "end_line": 15, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 35, + "start_line": 15 + } + }, + "245": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 25 + }, + "reference_ids": { + "__main__.main.dict_ptr": 116, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 39, + "end_line": 15, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 38, + "start_line": 15 + } + }, + "247": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 26 + }, + "reference_ids": { + "__main__.main.dict_ptr": 116, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 40, + "end_line": 15, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 5, + "start_line": 15 + } + }, + "249": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 29 + }, + "reference_ids": { + "__main__.main.dict_ptr": 117, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 22, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 5, + "start_line": 16 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 32, + "end_line": 7, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "parent_location": [ + { + "end_col": 32, + "end_line": 7, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "parent_location": [ + { + "end_col": 14, + "end_line": 23, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 5, + "start_line": 23 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 11, + "start_line": 7 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 11, + "start_line": 7 + } + }, + "250": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 30 + }, + "reference_ids": { + "__main__.main.dict_ptr": 117, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + }, + "hints": [], + "inst": { + "end_col": 14, + "end_line": 23, + "input_file": { + "filename": "cairo_programs/print_features/print_dict_felt.cairo" + }, + "start_col": 5, + "start_line": 23 + } + } + } + }, + "hints": { + "0": [ + { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "code": "import itertools\n\nfrom starkware.cairo.common.math_utils import assert_integer\nassert_integer(ids.a)\nassert_integer(ids.b)\na = ids.a % PRIME\nb = ids.b % PRIME\nassert a <= b, f'a = {a} is not less than or equal to b = {b}.'\n\n# Find an arc less than PRIME / 3, and another less than PRIME / 2.\nlengths_and_indices = [(a, 0), (b - a, 1), (PRIME - 1 - b, 2)]\nlengths_and_indices.sort()\nassert lengths_and_indices[0][0] <= PRIME // 3 and lengths_and_indices[1][0] <= PRIME // 2\nexcluded = lengths_and_indices[2][1]\n\nmemory[ids.range_check_ptr + 1], memory[ids.range_check_ptr + 0] = (\n divmod(lengths_and_indices[0][0], ids.PRIME_OVER_3_HIGH))\nmemory[ids.range_check_ptr + 3], memory[ids.range_check_ptr + 2] = (\n divmod(lengths_and_indices[1][0], ids.PRIME_OVER_2_HIGH))", + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 2 + } + } + } + ], + "10": [ + { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "code": "memory[ap] = 1 if excluded != 0 else 0", + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 8 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + } + } + ], + "24": [ + { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "code": "memory[ap] = 1 if excluded != 1 else 0", + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 9 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + } + } + ], + "36": [ + { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_le_felt" + ], + "code": "assert excluded == 2", + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 10 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_le_felt.__temp0": 3, + "starkware.cairo.common.math.assert_le_felt.__temp1": 4, + "starkware.cairo.common.math.assert_le_felt.__temp2": 5, + "starkware.cairo.common.math.assert_le_felt.__temp3": 7, + "starkware.cairo.common.math.assert_le_felt.__temp4": 8, + "starkware.cairo.common.math.assert_le_felt.__temp5": 9, + "starkware.cairo.common.math.assert_le_felt.a": 0, + "starkware.cairo.common.math.assert_le_felt.arc_long": 10, + "starkware.cairo.common.math.assert_le_felt.arc_prod": 13, + "starkware.cairo.common.math.assert_le_felt.arc_short": 6, + "starkware.cairo.common.math.assert_le_felt.arc_sum": 12, + "starkware.cairo.common.math.assert_le_felt.b": 1, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": 11 + } + } + } + ], + "45": [ + { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_lt_felt" + ], + "code": "from starkware.cairo.common.math_utils import assert_integer\nassert_integer(ids.a)\nassert_integer(ids.b)\nassert (ids.a % PRIME) < (ids.b % PRIME), \\\n f'a = {ids.a % PRIME} is not less than b = {ids.b % PRIME}.'", + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_lt_felt.a": 25, + "starkware.cairo.common.math.assert_lt_felt.b": 26, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": 27 + } + } + } + ], + "58": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "code": "vm_enter_scope()", + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 33, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + } + } + ], + "61": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "code": "vm_exit_scope()", + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 33, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + } + } + ], + "66": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "code": "dict_access_size = ids.DictAccess.SIZE\naddress = ids.dict_accesses.address_\nassert ids.ptr_diff % dict_access_size == 0, \\\n 'Accesses array size must be divisible by DictAccess.SIZE'\nn_accesses = ids.n_accesses\nif '__squash_dict_max_size' in globals():\n assert n_accesses <= __squash_dict_max_size, \\\n f'squash_dict() can only be used with n_accesses<={__squash_dict_max_size}. ' \\\n f'Got: n_accesses={n_accesses}.'\n# A map from key to the list of indices accessing it.\naccess_indices = {}\nfor i in range(n_accesses):\n key = memory[address + dict_access_size * i]\n access_indices.setdefault(key, []).append(i)\n# Descending list of keys.\nkeys = sorted(access_indices.keys(), reverse=True)\n# Are the keys used bigger than range_check bound.\nids.big_keys = 1 if keys[0] >= range_check_builtin.bound else 0\nids.first_key = key = keys.pop()", + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 33, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 32 + } + } + } + ], + "83": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict" + ], + "code": "vm_exit_scope()", + "flow_tracking_data": { + "ap_tracking": { + "group": 3, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict.big_keys": 36, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": 30, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": 31, + "starkware.cairo.common.squash_dict.squash_dict.first_key": 35, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": 37, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": 34, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": 41, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": 42 + } + } + } + ], + "86": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "current_access_indices = sorted(access_indices[key])[::-1]\ncurrent_access_index = current_access_indices.pop()\nmemory[ids.range_check_ptr] = current_access_index", + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + } + } + ], + "97": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "ids.should_skip_loop = 0 if current_access_indices else 1", + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + } + } + ], + "99": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "new_access_index = current_access_indices.pop()\nids.loop_temps.index_delta_minus1 = new_access_index - current_access_index - 1\ncurrent_access_index = new_access_index", + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 7 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + } + } + ], + "110": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "ids.loop_temps.should_continue = 1 if current_access_indices else 0", + "flow_tracking_data": { + "ap_tracking": { + "group": 4, + "offset": 13 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.access": 60, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": 59, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": 58, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": 57, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + } + } + ], + "112": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "assert len(current_access_indices) == 0", + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + } + } + ], + "115": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "assert ids.n_used_accesses == len(access_indices[key])", + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 2 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 43, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 47, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + } + } + ], + "119": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "assert len(keys) == 0", + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 3 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + } + } + ], + "126": [ + { + "accessible_scopes": [ + "starkware.cairo.common.squash_dict", + "starkware.cairo.common.squash_dict.squash_dict_inner" + ], + "code": "assert len(keys) > 0, 'No keys left but remaining_accesses > 0.'\nids.next_key = key = keys.pop()", + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": 49, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": 51, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": 44, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": 45, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": 50, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": 54, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": 53, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": 55, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": 46, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": 61, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": 62, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": 65, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": 52, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": 63, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": 64, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": 56, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": 48 + } + } + } + ], + "156": [ + { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_new" + ], + "code": "if '__dict_manager' not in globals():\n from starkware.cairo.common.dict import DictManager\n __dict_manager = DictManager()\n\nmemory[ap] = __dict_manager.new_dict(segments, initial_dict)\ndel initial_dict", + "flow_tracking_data": { + "ap_tracking": { + "group": 8, + "offset": 0 + }, + "reference_ids": {} + } + } + ], + "159": [ + { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_write" + ], + "code": "dict_tracker = __dict_manager.get_tracker(ids.dict_ptr)\ndict_tracker.current_ptr += ids.DictAccess.SIZE\nids.dict_ptr.prev_value = dict_tracker.data[ids.key]\ndict_tracker.data[ids.key] = ids.new_value", + "flow_tracking_data": { + "ap_tracking": { + "group": 9, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_write.dict_ptr": 85, + "starkware.cairo.common.dict.dict_write.key": 83, + "starkware.cairo.common.dict.dict_write.new_value": 84 + } + } + } + ], + "166": [ + { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "code": "# Prepare arguments for dict_new. In particular, the same dictionary values should be copied\n# to the new (squashed) dictionary.\nvm_enter_scope({\n # Make __dict_manager accessible.\n '__dict_manager': __dict_manager,\n # Create a copy of the dict, in case it changes in the future.\n 'initial_dict': dict(__dict_manager.get_dict(ids.dict_accesses_end)),\n})", + "flow_tracking_data": { + "ap_tracking": { + "group": 10, + "offset": 1 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 88, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 87, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 89 + } + } + } + ], + "169": [ + { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "code": "vm_exit_scope()", + "flow_tracking_data": { + "ap_tracking": { + "group": 10, + "offset": 4 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 88, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 87, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 89, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 91 + } + } + } + ], + "175": [ + { + "accessible_scopes": [ + "starkware.cairo.common.dict", + "starkware.cairo.common.dict.dict_squash" + ], + "code": "# Update the DictTracker's current_ptr to point to the end of the squashed dict.\n__dict_manager.get_tracker(ids.squashed_dict_start).current_ptr = \\\n ids.squashed_dict_end.address_", + "flow_tracking_data": { + "ap_tracking": { + "group": 11, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": 88, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": 87, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": 92, + "starkware.cairo.common.dict.dict_squash.squashed_dict_end": 93, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": 91 + } + } + } + ], + "179": [ + { + "accessible_scopes": [ + "starkware.cairo.common.default_dict", + "starkware.cairo.common.default_dict.default_dict_new" + ], + "code": "if '__dict_manager' not in globals():\n from starkware.cairo.common.dict import DictManager\n __dict_manager = DictManager()\n\nmemory[ap] = __dict_manager.new_default_dict(segments, ids.default_value)", + "flow_tracking_data": { + "ap_tracking": { + "group": 12, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.default_dict.default_dict_new.default_value": 94 + } + } + } + ], + "249": [ + { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "code": "print(bytes.fromhex(f\"{ids.name:062x}\").decode().replace('\\x00',''))\ndata = __dict_manager.get_dict(ids.dict_ptr)\nprint(\n {k: v if isinstance(v, int) else [memory[v + i] for i in range(ids.pointer_size)] for k, v in data.items()}\n)", + "flow_tracking_data": { + "ap_tracking": { + "group": 18, + "offset": 29 + }, + "reference_ids": { + "__main__.main.dict_ptr": 117, + "__main__.main.name": 110, + "__main__.main.pointer_size": 112, + "__main__.main.range_check_ptr": 109 + } + } + } + ] + }, + "identifiers": { + "__main__.DictAccess": { + "destination": "starkware.cairo.common.dict_access.DictAccess", + "type": "alias" + }, + "__main__.default_dict_finalize": { + "destination": "starkware.cairo.common.default_dict.default_dict_finalize", + "type": "alias" + }, + "__main__.default_dict_new": { + "destination": "starkware.cairo.common.default_dict.default_dict_new", + "type": "alias" + }, + "__main__.dict_write": { + "destination": "starkware.cairo.common.dict.dict_write", + "type": "alias" + }, + "__main__.main": { + "decorators": [], + "pc": 215, + "type": "function" + }, + "__main__.main.Args": { + "full_name": "__main__.main.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "__main__.main.ImplicitArgs": { + "full_name": "__main__.main.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "__main__.main.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "__main__.main.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "__main__.main.dict_ptr": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "__main__.main.dict_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 18, + "offset": 4 + }, + "pc": 219, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 9 + }, + "pc": 225, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 14 + }, + "pc": 231, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 19 + }, + "pc": 237, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 24 + }, + "pc": 243, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 29 + }, + "pc": 249, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "__main__.main.name": { + "cairo_type": "felt", + "full_name": "__main__.main.name", + "references": [ + { + "ap_tracking_data": { + "group": 18, + "offset": 0 + }, + "pc": 215, + "value": "cast(1263227476, felt)" + } + ], + "type": "reference" + }, + "__main__.main.pointer_size": { + "cairo_type": "felt", + "full_name": "__main__.main.pointer_size", + "references": [ + { + "ap_tracking_data": { + "group": 18, + "offset": 4 + }, + "pc": 219, + "value": "cast(1, felt)" + } + ], + "type": "reference" + }, + "__main__.main.range_check_ptr": { + "cairo_type": "felt", + "full_name": "__main__.main.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 18, + "offset": 0 + }, + "pc": 215, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.bool.FALSE": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.bool.TRUE": { + "type": "const", + "value": 1 + }, + "starkware.cairo.common.default_dict.DictAccess": { + "destination": "starkware.cairo.common.dict_access.DictAccess", + "type": "alias" + }, + "starkware.cairo.common.default_dict.default_dict_finalize": { + "decorators": [], + "pc": 182, + "type": "function" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.Args": { + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.Args", + "members": { + "default_value": { + "cairo_type": "felt", + "offset": 2 + }, + "dict_accesses_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 1 + }, + "dict_accesses_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 0 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.ImplicitArgs": { + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.Return": { + "cairo_type": "(squashed_dict_start: starkware.cairo.common.dict_access.DictAccess*, squashed_dict_end: starkware.cairo.common.dict_access.DictAccess*)", + "type": "type_definition" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.SIZEOF_LOCALS": { + "type": "const", + "value": 3 + }, + "starkware.cairo.common.default_dict.default_dict_finalize.__temp19": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.__temp19", + "references": [ + { + "ap_tracking_data": { + "group": 14, + "offset": 1 + }, + "pc": 193, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.default_value": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.default_value", + "references": [ + { + "ap_tracking_data": { + "group": 13, + "offset": 0 + }, + "pc": 182, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_end", + "references": [ + { + "ap_tracking_data": { + "group": 13, + "offset": 0 + }, + "pc": 182, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.dict_accesses_start", + "references": [ + { + "ap_tracking_data": { + "group": 13, + "offset": 0 + }, + "pc": 182, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 13, + "offset": 0 + }, + "pc": 182, + "value": "[cast(fp + (-6), felt*)]" + }, + { + "ap_tracking_data": { + "group": 14, + "offset": 0 + }, + "pc": 189, + "value": "[cast(ap + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 14, + "offset": 0 + }, + "pc": 192, + "value": "[cast(fp + 2, felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_end", + "references": [ + { + "ap_tracking_data": { + "group": 14, + "offset": 0 + }, + "pc": 189, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 14, + "offset": 0 + }, + "pc": 191, + "value": "[cast(fp + 1, starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize.squashed_dict_start", + "references": [ + { + "ap_tracking_data": { + "group": 14, + "offset": 0 + }, + "pc": 189, + "value": "[cast(ap + (-2), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 14, + "offset": 0 + }, + "pc": 190, + "value": "[cast(fp, starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner": { + "decorators": [], + "pc": 203, + "type": "function" + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.Args": { + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize_inner.Args", + "members": { + "default_value": { + "cairo_type": "felt", + "offset": 2 + }, + "dict_accesses_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 0 + }, + "n_accesses": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.ImplicitArgs": { + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize_inner.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize_inner.default_value", + "references": [ + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 203, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize_inner.dict_accesses_start", + "references": [ + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 203, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.default_dict.default_dict_finalize_inner.n_accesses", + "references": [ + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 203, + "value": "[cast(fp + (-4), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.default_dict_new": { + "decorators": [], + "pc": 179, + "type": "function" + }, + "starkware.cairo.common.default_dict.default_dict_new.Args": { + "full_name": "starkware.cairo.common.default_dict.default_dict_new.Args", + "members": { + "default_value": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.default_dict.default_dict_new.ImplicitArgs": { + "full_name": "starkware.cairo.common.default_dict.default_dict_new.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.common.default_dict.default_dict_new.Return": { + "cairo_type": "(res: starkware.cairo.common.dict_access.DictAccess*)", + "type": "type_definition" + }, + "starkware.cairo.common.default_dict.default_dict_new.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.default_dict.default_dict_new.default_value": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.default_dict.default_dict_new.default_value", + "references": [ + { + "ap_tracking_data": { + "group": 12, + "offset": 0 + }, + "pc": 179, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.default_dict.dict_squash": { + "destination": "starkware.cairo.common.dict.dict_squash", + "type": "alias" + }, + "starkware.cairo.common.dict.DictAccess": { + "destination": "starkware.cairo.common.dict_access.DictAccess", + "type": "alias" + }, + "starkware.cairo.common.dict.dict_new": { + "decorators": [], + "pc": 156, + "type": "function" + }, + "starkware.cairo.common.dict.dict_new.Args": { + "full_name": "starkware.cairo.common.dict.dict_new.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.common.dict.dict_new.ImplicitArgs": { + "full_name": "starkware.cairo.common.dict.dict_new.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.common.dict.dict_new.Return": { + "cairo_type": "(res: starkware.cairo.common.dict_access.DictAccess*)", + "type": "type_definition" + }, + "starkware.cairo.common.dict.dict_new.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.dict.dict_squash": { + "decorators": [], + "pc": 164, + "type": "function" + }, + "starkware.cairo.common.dict.dict_squash.Args": { + "full_name": "starkware.cairo.common.dict.dict_squash.Args", + "members": { + "dict_accesses_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 1 + }, + "dict_accesses_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 0 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.cairo.common.dict.dict_squash.ImplicitArgs": { + "full_name": "starkware.cairo.common.dict.dict_squash.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.dict.dict_squash.Return": { + "cairo_type": "(squashed_dict_start: starkware.cairo.common.dict_access.DictAccess*, squashed_dict_end: starkware.cairo.common.dict_access.DictAccess*)", + "type": "type_definition" + }, + "starkware.cairo.common.dict.dict_squash.SIZEOF_LOCALS": { + "type": "const", + "value": 1 + }, + "starkware.cairo.common.dict.dict_squash.dict_accesses_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.dict.dict_squash.dict_accesses_end", + "references": [ + { + "ap_tracking_data": { + "group": 10, + "offset": 0 + }, + "pc": 164, + "value": "[cast(fp + (-3), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.dict_squash.dict_accesses_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.dict.dict_squash.dict_accesses_start", + "references": [ + { + "ap_tracking_data": { + "group": 10, + "offset": 0 + }, + "pc": 164, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.dict_squash.range_check_ptr": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.dict.dict_squash.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 10, + "offset": 0 + }, + "pc": 164, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 11, + "offset": 0 + }, + "pc": 175, + "value": "[cast(ap + (-2), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.dict_squash.squashed_dict_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.dict.dict_squash.squashed_dict_end", + "references": [ + { + "ap_tracking_data": { + "group": 11, + "offset": 0 + }, + "pc": 175, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.dict_squash.squashed_dict_start": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.dict.dict_squash.squashed_dict_start", + "references": [ + { + "ap_tracking_data": { + "group": 10, + "offset": 4 + }, + "pc": 168, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 10, + "offset": 4 + }, + "pc": 169, + "value": "[cast(fp, starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.dict_write": { + "decorators": [], + "pc": 159, + "type": "function" + }, + "starkware.cairo.common.dict.dict_write.Args": { + "full_name": "starkware.cairo.common.dict.dict_write.Args", + "members": { + "key": { + "cairo_type": "felt", + "offset": 0 + }, + "new_value": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.cairo.common.dict.dict_write.ImplicitArgs": { + "full_name": "starkware.cairo.common.dict.dict_write.ImplicitArgs", + "members": { + "dict_ptr": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.dict.dict_write.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "starkware.cairo.common.dict.dict_write.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.dict.dict_write.dict_ptr": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.dict.dict_write.dict_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 9, + "offset": 0 + }, + "pc": 159, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 9, + "offset": 0 + }, + "pc": 161, + "value": "cast([fp + (-5)] + 3, starkware.cairo.common.dict_access.DictAccess*)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.dict_write.key": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.dict.dict_write.key", + "references": [ + { + "ap_tracking_data": { + "group": 9, + "offset": 0 + }, + "pc": 159, + "value": "[cast(fp + (-4), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.dict_write.new_value": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.dict.dict_write.new_value", + "references": [ + { + "ap_tracking_data": { + "group": 9, + "offset": 0 + }, + "pc": 159, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.dict.squash_dict": { + "destination": "starkware.cairo.common.squash_dict.squash_dict", + "type": "alias" + }, + "starkware.cairo.common.dict_access.DictAccess": { + "full_name": "starkware.cairo.common.dict_access.DictAccess", + "members": { + "key": { + "cairo_type": "felt", + "offset": 0 + }, + "new_value": { + "cairo_type": "felt", + "offset": 2 + }, + "prev_value": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.cairo.common.math.FALSE": { + "destination": "starkware.cairo.common.bool.FALSE", + "type": "alias" + }, + "starkware.cairo.common.math.TRUE": { + "destination": "starkware.cairo.common.bool.TRUE", + "type": "alias" + }, + "starkware.cairo.common.math.assert_le_felt": { + "decorators": [ + "known_ap_change" + ], + "pc": 0, + "type": "function" + }, + "starkware.cairo.common.math.assert_le_felt.Args": { + "full_name": "starkware.cairo.common.math.assert_le_felt.Args", + "members": { + "a": { + "cairo_type": "felt", + "offset": 0 + }, + "b": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.cairo.common.math.assert_le_felt.ImplicitArgs": { + "full_name": "starkware.cairo.common.math.assert_le_felt.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.math.assert_le_felt.PRIME_OVER_2_HIGH": { + "type": "const", + "value": 5316911983139663648412552867652567041 + }, + "starkware.cairo.common.math.assert_le_felt.PRIME_OVER_3_HIGH": { + "type": "const", + "value": 3544607988759775765608368578435044694 + }, + "starkware.cairo.common.math.assert_le_felt.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "starkware.cairo.common.math.assert_le_felt.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.math.assert_le_felt.__temp0": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp0", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 1 + }, + "pc": 1, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp1": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp1", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 2 + }, + "pc": 2, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp10": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp10", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 14 + }, + "pc": 20, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp11": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp11", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 11 + }, + "pc": 28, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp12": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp12", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 13 + }, + "pc": 30, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp13": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp13", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 14 + }, + "pc": 32, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp14": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp14", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 11 + }, + "pc": 38, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp15": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp15", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 12 + }, + "pc": 39, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp2": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp2", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 3 + }, + "pc": 4, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp3": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp3", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 5 + }, + "pc": 6, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp4": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp4", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 6 + }, + "pc": 7, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp5": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp5", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 7 + }, + "pc": 9, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp6": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp6", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 10 + }, + "pc": 14, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp7": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp7", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 11 + }, + "pc": 15, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp8": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp8", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 12 + }, + "pc": 17, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.__temp9": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.__temp9", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 13 + }, + "pc": 19, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.a": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.a", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 0 + }, + "pc": 0, + "value": "[cast(fp + (-4), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.arc_long": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.arc_long", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 8 + }, + "pc": 10, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.arc_prod": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.arc_prod", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 8 + }, + "pc": 10, + "value": "cast([ap + (-5)] * [ap + (-1)], felt)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.arc_short": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.arc_short", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 4 + }, + "pc": 5, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.arc_sum": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.arc_sum", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 8 + }, + "pc": 10, + "value": "cast([ap + (-5)] + [ap + (-1)], felt)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.b": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.b", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 0 + }, + "pc": 0, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.m1mb": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.m1mb", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 12 + }, + "pc": 29, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.range_check_ptr": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_le_felt.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 0 + }, + "pc": 0, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 8 + }, + "pc": 10, + "value": "cast([fp + (-5)] + 4, felt)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_le_felt.skip_exclude_a": { + "pc": 24, + "type": "label" + }, + "starkware.cairo.common.math.assert_le_felt.skip_exclude_b_minus_a": { + "pc": 36, + "type": "label" + }, + "starkware.cairo.common.math.assert_lt_felt": { + "decorators": [ + "known_ap_change" + ], + "pc": 45, + "type": "function" + }, + "starkware.cairo.common.math.assert_lt_felt.Args": { + "full_name": "starkware.cairo.common.math.assert_lt_felt.Args", + "members": { + "a": { + "cairo_type": "felt", + "offset": 0 + }, + "b": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.cairo.common.math.assert_lt_felt.ImplicitArgs": { + "full_name": "starkware.cairo.common.math.assert_lt_felt.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.math.assert_lt_felt.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "starkware.cairo.common.math.assert_lt_felt.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.math.assert_lt_felt.__temp16": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_lt_felt.__temp16", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 1 + }, + "pc": 46, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_lt_felt.a": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_lt_felt.a", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 0 + }, + "pc": 45, + "value": "[cast(fp + (-4), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_lt_felt.b": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_lt_felt.b", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 0 + }, + "pc": 45, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_lt_felt.range_check_ptr": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_lt_felt.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 0 + }, + "pc": 45, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 21 + }, + "pc": 55, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.DictAccess": { + "destination": "starkware.cairo.common.dict_access.DictAccess", + "type": "alias" + }, + "starkware.cairo.common.squash_dict.assert_lt_felt": { + "destination": "starkware.cairo.common.math.assert_lt_felt", + "type": "alias" + }, + "starkware.cairo.common.squash_dict.squash_dict": { + "decorators": [], + "pc": 56, + "type": "function" + }, + "starkware.cairo.common.squash_dict.squash_dict.Args": { + "full_name": "starkware.cairo.common.squash_dict.squash_dict.Args", + "members": { + "dict_accesses": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 0 + }, + "dict_accesses_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 1 + }, + "squashed_dict": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 2 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.cairo.common.squash_dict.squash_dict.ImplicitArgs": { + "full_name": "starkware.cairo.common.squash_dict.squash_dict.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.squash_dict.squash_dict.Return": { + "cairo_type": "(squashed_dict: starkware.cairo.common.dict_access.DictAccess*)", + "type": "type_definition" + }, + "starkware.cairo.common.squash_dict.squash_dict.SIZEOF_LOCALS": { + "type": "const", + "value": 3 + }, + "starkware.cairo.common.squash_dict.squash_dict.big_keys": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.big_keys", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 3 + }, + "pc": 64, + "value": "[cast(fp + 2, felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.dict_accesses", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 56, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.dict_accesses_end", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 56, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict.first_key": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.first_key", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 3 + }, + "pc": 64, + "value": "[cast(fp + 1, felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict.n_accesses": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.n_accesses", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 4 + }, + "pc": 66, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict.ptr_diff": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.ptr_diff", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 3 + }, + "pc": 59, + "value": "[cast(fp, felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 56, + "value": "[cast(fp + (-6), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 5 + }, + "pc": 71, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 5 + }, + "pc": 74, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 3, + "offset": 0 + }, + "pc": 83, + "value": "[cast(ap + (-2), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict.squashed_dict": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict.squashed_dict", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 56, + "value": "[cast(fp + (-3), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 3, + "offset": 0 + }, + "pc": 83, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner": { + "decorators": [], + "pc": 84, + "type": "function" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.Args": { + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.Args", + "members": { + "big_keys": { + "cairo_type": "felt", + "offset": 6 + }, + "dict_accesses": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 1 + }, + "dict_accesses_end_minus1": { + "cairo_type": "felt*", + "offset": 2 + }, + "key": { + "cairo_type": "felt", + "offset": 3 + }, + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + }, + "remaining_accesses": { + "cairo_type": "felt", + "offset": 4 + }, + "squashed_dict": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 5 + } + }, + "size": 7, + "type": "struct" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.ImplicitArgs": { + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals": { + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals", + "members": { + "access_ptr": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "offset": 1 + }, + "range_check_ptr": { + "cairo_type": "felt", + "offset": 2 + }, + "value": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.LoopTemps": { + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.LoopTemps", + "members": { + "index_delta": { + "cairo_type": "felt", + "offset": 1 + }, + "index_delta_minus1": { + "cairo_type": "felt", + "offset": 0 + }, + "ptr_delta": { + "cairo_type": "felt", + "offset": 2 + }, + "should_continue": { + "cairo_type": "felt", + "offset": 3 + } + }, + "size": 4, + "type": "struct" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.Return": { + "cairo_type": "(range_check_ptr: felt, squashed_dict: starkware.cairo.common.dict_access.DictAccess*)", + "type": "type_definition" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.SIZEOF_LOCALS": { + "type": "const", + "value": 2 + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.__temp17", + "references": [ + { + "ap_tracking_data": { + "group": 5, + "offset": 5 + }, + "pc": 130, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.__temp18", + "references": [ + { + "ap_tracking_data": { + "group": 5, + "offset": 6 + }, + "pc": 131, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.access": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.access", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 11 + }, + "pc": 105, + "value": "[cast(ap + 1, starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.big_keys", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 84, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.current_access_index", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 3 + }, + "pc": 87, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 84, + "value": "[cast(fp + (-8), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 8 + }, + "pc": 135, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 31 + }, + "pc": 147, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1": { + "cairo_type": "felt*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.dict_accesses_end_minus1", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 84, + "value": "[cast(fp + (-7), felt**)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 9 + }, + "pc": 136, + "value": "[cast(ap + (-1), felt**)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 32 + }, + "pc": 148, + "value": "[cast(ap + (-1), felt**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.dict_diff", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 2 + }, + "pc": 86, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_access": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.first_access", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 5 + }, + "pc": 90, + "value": "[cast(ap, starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals": { + "cairo_type": "starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.first_loop_locals", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 4 + }, + "pc": 89, + "value": "cast(ap, starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.first_value": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.first_value", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 7 + }, + "pc": 96, + "value": "[cast(fp, felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.key": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.key", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 84, + "value": "[cast(fp + (-6), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals": { + "cairo_type": "starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.last_loop_locals", + "references": [ + { + "ap_tracking_data": { + "group": 5, + "offset": 0 + }, + "pc": 112, + "value": "cast(ap + (-3), starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop": { + "pc": 99, + "type": "label" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals": { + "cairo_type": "starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.loop_locals", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 7 + }, + "pc": 99, + "value": "cast(ap + 4, starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps": { + "cairo_type": "starkware.cairo.common.squash_dict.squash_dict_inner.LoopTemps*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.loop_temps", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 7 + }, + "pc": 99, + "value": "cast(ap, starkware.cairo.common.squash_dict.squash_dict_inner.LoopTemps*)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.n_used_accesses", + "references": [ + { + "ap_tracking_data": { + "group": 5, + "offset": 2 + }, + "pc": 115, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.next_key": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.next_key", + "references": [ + { + "ap_tracking_data": { + "group": 5, + "offset": 3 + }, + "pc": 124, + "value": "[cast(ap, felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 10 + }, + "pc": 137, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 33 + }, + "pc": 149, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals": { + "cairo_type": "starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.prev_loop_locals", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 7 + }, + "pc": 99, + "value": "cast(ap + (-3), starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.ptr_delta", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 4 + }, + "pc": 89, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 84, + "value": "[cast(fp + (-9), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 2 + }, + "pc": 116, + "value": "cast([ap + (-3)] + 1, felt)" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 7 + }, + "pc": 134, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 30 + }, + "pc": 146, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.remaining_accesses", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 84, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 3 + }, + "pc": 117, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 11 + }, + "pc": 138, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 34 + }, + "pc": 150, + "value": "[cast(ap + (-1), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.should_skip_loop", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 7 + }, + "pc": 97, + "value": "[cast(fp + 1, felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.skip_loop": { + "pc": 112, + "type": "label" + }, + "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict": { + "cairo_type": "starkware.cairo.common.dict_access.DictAccess*", + "full_name": "starkware.cairo.common.squash_dict.squash_dict_inner.squashed_dict", + "references": [ + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 84, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + } + ], + "type": "reference" + } + }, + "main_scope": "__main__", + "prime": "0x800000000000011000000000000000000000000000000000000000000000001", + "reference_manager": { + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 0 + }, + "pc": 0, + "value": "[cast(fp + (-4), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 0 + }, + "pc": 0, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 0 + }, + "pc": 0, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 1 + }, + "pc": 1, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 2 + }, + "pc": 2, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 3 + }, + "pc": 4, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 4 + }, + "pc": 5, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 5 + }, + "pc": 6, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 6 + }, + "pc": 7, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 7 + }, + "pc": 9, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 8 + }, + "pc": 10, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 8 + }, + "pc": 10, + "value": "cast([fp + (-5)] + 4, felt)" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 8 + }, + "pc": 10, + "value": "cast([ap + (-5)] + [ap + (-1)], felt)" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 8 + }, + "pc": 10, + "value": "cast([ap + (-5)] * [ap + (-1)], felt)" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 10 + }, + "pc": 14, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 11 + }, + "pc": 15, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 12 + }, + "pc": 17, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 13 + }, + "pc": 19, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 14 + }, + "pc": 20, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 11 + }, + "pc": 28, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 12 + }, + "pc": 29, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 13 + }, + "pc": 30, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 14 + }, + "pc": 32, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 11 + }, + "pc": 38, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 12 + }, + "pc": 39, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 0 + }, + "pc": 45, + "value": "[cast(fp + (-4), felt*)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 0 + }, + "pc": 45, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 0 + }, + "pc": 45, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 1 + }, + "pc": 46, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 21 + }, + "pc": 55, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 56, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 56, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 56, + "value": "[cast(fp + (-3), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 56, + "value": "[cast(fp + (-6), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 3 + }, + "pc": 59, + "value": "[cast(fp, felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 3 + }, + "pc": 64, + "value": "[cast(fp + 1, felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 3 + }, + "pc": 64, + "value": "[cast(fp + 2, felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 4 + }, + "pc": 66, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 5 + }, + "pc": 71, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 5 + }, + "pc": 74, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 5 + }, + "pc": 74, + "value": "[cast(ap - 0 + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 3, + "offset": 0 + }, + "pc": 83, + "value": "[cast(ap + (-2), felt*)]" + }, + { + "ap_tracking_data": { + "group": 3, + "offset": 0 + }, + "pc": 83, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 84, + "value": "[cast(fp + (-9), felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 84, + "value": "[cast(fp + (-8), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 84, + "value": "[cast(fp + (-7), felt**)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 84, + "value": "[cast(fp + (-6), felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 84, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 84, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 0 + }, + "pc": 84, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 2 + }, + "pc": 86, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 3 + }, + "pc": 87, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 4 + }, + "pc": 89, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 4 + }, + "pc": 89, + "value": "cast(ap, starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 5 + }, + "pc": 90, + "value": "[cast(ap, starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 7 + }, + "pc": 96, + "value": "[cast(fp, felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 7 + }, + "pc": 97, + "value": "[cast(fp + 1, felt*)]" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 7 + }, + "pc": 99, + "value": "cast(ap + (-3), starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 7 + }, + "pc": 99, + "value": "cast(ap, starkware.cairo.common.squash_dict.squash_dict_inner.LoopTemps*)" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 7 + }, + "pc": 99, + "value": "cast(ap + 4, starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + }, + { + "ap_tracking_data": { + "group": 4, + "offset": 11 + }, + "pc": 105, + "value": "[cast(ap + 1, starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 0 + }, + "pc": 112, + "value": "cast(ap + (-3), starkware.cairo.common.squash_dict.squash_dict_inner.LoopLocals*)" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 2 + }, + "pc": 115, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 2 + }, + "pc": 116, + "value": "cast([ap + (-3)] + 1, felt)" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 3 + }, + "pc": 117, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 3 + }, + "pc": 124, + "value": "[cast(ap, felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 5 + }, + "pc": 130, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 6 + }, + "pc": 131, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 7 + }, + "pc": 134, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 8 + }, + "pc": 135, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 9 + }, + "pc": 136, + "value": "[cast(ap + (-1), felt**)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 10 + }, + "pc": 137, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 11 + }, + "pc": 138, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 30 + }, + "pc": 146, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 31 + }, + "pc": 147, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 32 + }, + "pc": 148, + "value": "[cast(ap + (-1), felt**)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 33 + }, + "pc": 149, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 34 + }, + "pc": 150, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 146, + "value": "[cast(ap - 4 + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 147, + "value": "[cast(ap - 3 + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 148, + "value": "[cast(ap - 2 + (-1), felt**)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 150, + "value": "[cast(ap - 0 + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 6, + "offset": 0 + }, + "pc": 149, + "value": "[cast(ap - 1 + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 9, + "offset": 0 + }, + "pc": 159, + "value": "[cast(fp + (-4), felt*)]" + }, + { + "ap_tracking_data": { + "group": 9, + "offset": 0 + }, + "pc": 159, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 9, + "offset": 0 + }, + "pc": 159, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 9, + "offset": 0 + }, + "pc": 161, + "value": "cast([fp + (-5)] + 3, starkware.cairo.common.dict_access.DictAccess*)" + }, + { + "ap_tracking_data": { + "group": 10, + "offset": 0 + }, + "pc": 164, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 10, + "offset": 0 + }, + "pc": 164, + "value": "[cast(fp + (-3), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 10, + "offset": 0 + }, + "pc": 164, + "value": "[cast(fp + (-5), felt*)]" + }, + { + "ap_tracking_data": { + "group": 10, + "offset": 4 + }, + "pc": 168, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 10, + "offset": 4 + }, + "pc": 169, + "value": "[cast(fp, starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 11, + "offset": 0 + }, + "pc": 175, + "value": "[cast(ap + (-2), felt*)]" + }, + { + "ap_tracking_data": { + "group": 11, + "offset": 0 + }, + "pc": 175, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 12, + "offset": 0 + }, + "pc": 179, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 13, + "offset": 0 + }, + "pc": 182, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 13, + "offset": 0 + }, + "pc": 182, + "value": "[cast(fp + (-4), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 13, + "offset": 0 + }, + "pc": 182, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 13, + "offset": 0 + }, + "pc": 182, + "value": "[cast(fp + (-6), felt*)]" + }, + { + "ap_tracking_data": { + "group": 14, + "offset": 0 + }, + "pc": 189, + "value": "[cast(ap + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 14, + "offset": 0 + }, + "pc": 189, + "value": "[cast(ap + (-2), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 14, + "offset": 0 + }, + "pc": 189, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 14, + "offset": 0 + }, + "pc": 190, + "value": "[cast(fp, starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 14, + "offset": 0 + }, + "pc": 191, + "value": "[cast(fp + 1, starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 14, + "offset": 0 + }, + "pc": 192, + "value": "[cast(fp + 2, felt*)]" + }, + { + "ap_tracking_data": { + "group": 14, + "offset": 1 + }, + "pc": 193, + "value": "[cast(ap + (-1), felt*)]" + }, + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 203, + "value": "[cast(fp + (-5), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 203, + "value": "[cast(fp + (-4), felt*)]" + }, + { + "ap_tracking_data": { + "group": 16, + "offset": 0 + }, + "pc": 203, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 0 + }, + "pc": 215, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 0 + }, + "pc": 215, + "value": "cast(1263227476, felt)" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 4 + }, + "pc": 219, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 4 + }, + "pc": 219, + "value": "cast(1, felt)" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 9 + }, + "pc": 225, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 14 + }, + "pc": 231, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 19 + }, + "pc": 237, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 24 + }, + "pc": 243, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + }, + { + "ap_tracking_data": { + "group": 18, + "offset": 29 + }, + "pc": 249, + "value": "[cast(ap + (-1), starkware.cairo.common.dict_access.DictAccess**)]" + } + ] + } +} diff --git a/cairo_programs/print_features/print_felt.cairo b/cairo_programs/print_features/print_felt.cairo new file mode 100644 index 00000000..32e6b035 --- /dev/null +++ b/cairo_programs/print_features/print_felt.cairo @@ -0,0 +1,9 @@ +%builtins range_check + +func main{range_check_ptr: felt}() { + let x = 123; + %{ + print(ids.x) + %} + return(); +} \ No newline at end of file diff --git a/cairo_programs/print_features/print_felt.json b/cairo_programs/print_features/print_felt.json new file mode 100644 index 00000000..65910f45 --- /dev/null +++ b/cairo_programs/print_features/print_felt.json @@ -0,0 +1,210 @@ +{ + "attributes": [], + "builtins": [ + "range_check" + ], + "compiler_version": "0.13.1", + "data": [ + "0x480a7ffd7fff8000", + "0x208b7fff7fff7ffe" + ], + "debug_info": { + "file_contents": {}, + "instruction_locations": { + "0": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 0 + }, + "reference_ids": { + "__main__.main.range_check_ptr": 0, + "__main__.main.x": 1 + } + }, + "hints": [ + { + "location": { + "end_col": 7, + "end_line": 7, + "input_file": { + "filename": "cairo_programs/print_features/print_felt.cairo" + }, + "start_col": 5, + "start_line": 5 + }, + "n_prefix_newlines": 1 + } + ], + "inst": { + "end_col": 32, + "end_line": 3, + "input_file": { + "filename": "cairo_programs/print_features/print_felt.cairo" + }, + "parent_location": [ + { + "end_col": 32, + "end_line": 3, + "input_file": { + "filename": "cairo_programs/print_features/print_felt.cairo" + }, + "parent_location": [ + { + "end_col": 14, + "end_line": 8, + "input_file": { + "filename": "cairo_programs/print_features/print_felt.cairo" + }, + "start_col": 5, + "start_line": 8 + }, + "While trying to retrieve the implicit argument 'range_check_ptr' in:" + ], + "start_col": 11, + "start_line": 3 + }, + "While expanding the reference 'range_check_ptr' in:" + ], + "start_col": 11, + "start_line": 3 + } + }, + "1": { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 1 + }, + "reference_ids": { + "__main__.main.range_check_ptr": 0, + "__main__.main.x": 1 + } + }, + "hints": [], + "inst": { + "end_col": 14, + "end_line": 8, + "input_file": { + "filename": "cairo_programs/print_features/print_felt.cairo" + }, + "start_col": 5, + "start_line": 8 + } + } + } + }, + "hints": { + "0": [ + { + "accessible_scopes": [ + "__main__", + "__main__.main" + ], + "code": "print(ids.x)", + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 0 + }, + "reference_ids": { + "__main__.main.range_check_ptr": 0, + "__main__.main.x": 1 + } + } + } + ] + }, + "identifiers": { + "__main__.main": { + "decorators": [], + "pc": 0, + "type": "function" + }, + "__main__.main.Args": { + "full_name": "__main__.main.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "__main__.main.ImplicitArgs": { + "full_name": "__main__.main.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "__main__.main.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "__main__.main.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "__main__.main.range_check_ptr": { + "cairo_type": "felt", + "full_name": "__main__.main.range_check_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 0 + }, + "pc": 0, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "__main__.main.x": { + "cairo_type": "felt", + "full_name": "__main__.main.x", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 0 + }, + "pc": 0, + "value": "cast(123, felt)" + } + ], + "type": "reference" + } + }, + "main_scope": "__main__", + "prime": "0x800000000000011000000000000000000000000000000000000000000000001", + "reference_manager": { + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 0 + }, + "pc": 0, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 0 + }, + "pc": 0, + "value": "cast(123, felt)" + } + ] + } +} diff --git a/src/hint_processor/bigint.zig b/src/hint_processor/bigint.zig new file mode 100644 index 00000000..dbf974a6 --- /dev/null +++ b/src/hint_processor/bigint.zig @@ -0,0 +1,232 @@ +const hint_utils = @import("hint_utils.zig"); +const std = @import("std"); +const CairoVM = @import("../vm/core.zig").CairoVM; +const HintReference = @import("hint_processor_def.zig").HintReference; +const HintProcessor = @import("hint_processor_def.zig").CairoVMHintProcessor; +const testing_utils = @import("testing_utils.zig"); +const Felt252 = @import("../math/fields/starknet.zig").Felt252; +const hint_codes = @import("builtin_hint_codes.zig"); +const Relocatable = @import("../vm/memory/relocatable.zig").Relocatable; +const MaybeRelocatable = @import("../vm/memory/relocatable.zig").MaybeRelocatable; +const ApTracking = @import("../vm/types/programjson.zig").ApTracking; +const HintData = @import("hint_processor_def.zig").HintData; +const ExecutionScopes = @import("../vm/types/execution_scopes.zig").ExecutionScopes; +const BigInt3 = @import("builtin_hint_processor/secp/bigint_utils.zig").BigInt3; +const BigInt5 = @import("builtin_hint_processor/secp/bigint_utils.zig").BigInt5; +const BigIntN = @import("builtin_hint_processor/secp/bigint_utils.zig").BigIntN; +const Int = @import("std").math.big.int.Managed; +const BASE = @import("../math/fields/constants.zig").BASE; +const field_helper = @import("../math/fields/helper.zig"); +const safeDivBigInt = @import("../math/fields/helper.zig").safeDivBigInt; +const insertValueFromVarName = @import("../hint_processor/hint_utils.zig").insertValueFromVarName; + +/// Implements hint: +/// ```python +/// from starkware.cairo.common.cairo_secp.secp_utils import pack +/// from starkware.cairo.common.math_utils import as_int +/// from starkware.python.math_utils import div_mod, safe_div +/// +/// p = pack(ids.P, PRIME) +/// x = pack(ids.x, PRIME) + as_int(ids.x.d3, PRIME) * ids.BASE ** 3 + as_int(ids.x.d4, PRIME) * ids.BASE ** 4 +/// y = pack(ids.y, PRIME) +/// +/// value = res = div_mod(x, y, p) +/// ``` +pub fn bigintPackDivModHint(allocator: std.mem.Allocator, vm: *CairoVM, exec_scopes: *ExecutionScopes, ids_data: std.StringHashMap(HintReference), ap_tracking: ApTracking) !void { + // Initiate BigInt default element + var p = try (try BigInt3.fromVarName("P", vm, ids_data, ap_tracking)).pack86(allocator); + errdefer p.deinit(); + + var x: Int = blk: { + const x_bigint5 = try BigInt5.fromVarName("x", vm, ids_data, ap_tracking); + + var x_lower = try BigInt3.fromValues([3]Felt252{ + x_bigint5.limbs[0], x_bigint5.limbs[1], x_bigint5.limbs[2], + }).pack86(allocator); + defer x_lower.deinit(); + + var d3 = try x_bigint5.limbs[3].toSignedBigInt(allocator); + defer d3.deinit(); + + var d4 = try x_bigint5.limbs[3].toSignedBigInt(allocator); + defer d4.deinit(); + + var tmp = try Int.init(allocator); + defer tmp.deinit(); + + var base = try Int.initSet(allocator, BASE); + defer base.deinit(); + + var result = try Int.init(allocator); + errdefer result.deinit(); + + try tmp.pow(&base, 3); + + try tmp.mul(&d3, &tmp); + + try result.add(&x_lower, &tmp); + + try tmp.pow(&base, 4); + + try tmp.mul(&d4, &tmp); + + try result.add(&result, &tmp); + + break :blk result; + }; + errdefer x.deinit(); + + var y = try (try BigInt3.fromVarName("y", vm, ids_data, ap_tracking)).pack86(allocator); + errdefer y.deinit(); + + var res = try field_helper.divModBigInt(allocator, &x, &y, &p); + errdefer res.deinit(); + + try exec_scopes.assignOrUpdateVariable("res", .{ + .big_int = res, + }); + + try exec_scopes.assignOrUpdateVariable("value", .{ + .big_int = try res.clone(), + }); + + try exec_scopes.assignOrUpdateVariable("x", .{ + .big_int = x, + }); + + try exec_scopes.assignOrUpdateVariable("y", .{ + .big_int = y, + }); + + try exec_scopes.assignOrUpdateVariable("p", .{ + .big_int = p, + }); +} + +/// Implements hint: +/// ```python +/// k = safe_div(res * y - x, p) +/// value = k if k > 0 else 0 - k +/// ids.flag = 1 if k > 0 else 0 +/// ``` +pub fn bigIntSafeDivHint(allocator: std.mem.Allocator, vm: *CairoVM, exec_scopes: *ExecutionScopes, ids_data: std.StringHashMap(HintReference), apTracking: ApTracking) !void { + const res = try exec_scopes.getValueRef(Int, "res"); + const x = try exec_scopes.getValueRef(Int, "x"); + const y = try exec_scopes.getValueRef(Int, "y"); + const p = try exec_scopes.getValueRef(Int, "p"); + + var tmp = try Int.init(allocator); + errdefer tmp.deinit(); + + var tmp2 = try Int.init(allocator); + errdefer tmp2.deinit(); + + try tmp.mul(res, y); + try tmp.sub(&tmp, x); + try tmp.divFloor(&tmp2, &tmp, p); + + var flag: Felt252 = undefined; + + try tmp2.copy(tmp.toConst()); + if (tmp.isPositive() or tmp.eqlZero()) { + flag = Felt252.one(); + } else { + flag = Felt252.zero(); + tmp2.negate(); + } + + // k == tmp + // result == tmp2 + + try exec_scopes.assignOrUpdateVariable("k", .{ .big_int = tmp }); + try exec_scopes.assignOrUpdateVariable("value", .{ .big_int = tmp2 }); + try insertValueFromVarName(allocator, "flag", MaybeRelocatable.fromFelt(flag), vm, ids_data, apTracking); +} + +test "big int pack div mod hint" { + var vm = try CairoVM.init(std.testing.allocator, .{}); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + var ids_data = try testing_utils.setupIdsNonContinuousIdsData( + std.testing.allocator, + &.{ + .{ "x", 0 }, + .{ "y", 5 }, + .{ "P", 8 }, + }, + ); + + defer ids_data.deinit(); + + vm.run_context.fp.* = 0; + inline for (0..11) |_| _ = try vm.addMemorySegment(); + + // Set up memory segments in the virtual machine. + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{0x38a23ca66202c8c2a72277} }, + .{ .{ 1, 1 }, .{0x6730e765376ff17ea8385} }, + .{ .{ 1, 2 }, .{0xca1ad489ab60ea581e6c1} }, + .{ .{ 1, 3 }, .{0} }, + .{ .{ 1, 4 }, .{0} }, + .{ .{ 1, 5 }, .{0x20a4b46d3c5e24cda81f22} }, + .{ .{ 1, 6 }, .{0x967bf895824330d4273d0} }, + .{ .{ 1, 7 }, .{0x541e10c21560da25ada4c} }, + .{ .{ 1, 8 }, .{0x8a03bbfd25e8cd0364141} }, + .{ .{ 1, 9 }, .{0x3ffffffffffaeabb739abd} }, + .{ .{ 1, 10 }, .{0xfffffffffffffffffffff} }, + }); + + const hint_processor = HintProcessor{}; + var hint_data = HintData.init(hint_codes.BIGINT_PACK_DIV_MOD_HINT, ids_data, .{}); + + var exec_scopes = try ExecutionScopes.init(std.testing.allocator); + defer exec_scopes.deinit(); + + try hint_processor.executeHint(std.testing.allocator, &vm, &hint_data, undefined, &exec_scopes); + + try std.testing.expectEqual(109567829260688255124154626727441144629993228404337546799996747905569082729709, try ((try exec_scopes.getValue(Int, "res"))).to(u512)); + try std.testing.expectEqual(109567829260688255124154626727441144629993228404337546799996747905569082729709, try ((try exec_scopes.getValue(Int, "res"))).to(u512)); + try std.testing.expectEqual(38047400353360331012910998489219098987968251547384484838080352663220422975266, try ((try exec_scopes.getValue(Int, "y"))).to(u512)); + try std.testing.expectEqual(91414600319290532004473480113251693728834511388719905794310982800988866814583, try ((try exec_scopes.getValue(Int, "x"))).to(u512)); + try std.testing.expectEqual(115792089237316195423570985008687907852837564279074904382605163141518161494337, try ((try exec_scopes.getValue(Int, "p"))).to(u512)); +} + +test "big int safe div hint" { + var vm = try CairoVM.init(std.testing.allocator, .{}); + + defer vm.deinit(); + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData( + std.testing.allocator, + &.{ + .{ "flag", 0 }, + }, + ); + + defer ids_data.deinit(); + + // Set the frame pointer to point to the beginning of the stack. + vm.run_context.*.fp.* = 0; + _ = try vm.addMemorySegment(); + _ = try vm.addMemorySegment(); + + defer vm.segments.memory.deinitData(std.testing.allocator); + + var exec_scopes = try ExecutionScopes.init(std.testing.allocator); + defer exec_scopes.deinit(); + + try exec_scopes.assignOrUpdateVariable("res", .{ .big_int = try Int.initSet(std.testing.allocator, 109567829260688255124154626727441144629993228404337546799996747905569082729709) }); + try exec_scopes.assignOrUpdateVariable("y", .{ .big_int = try Int.initSet(std.testing.allocator, 38047400353360331012910998489219098987968251547384484838080352663220422975266) }); + try exec_scopes.assignOrUpdateVariable("x", .{ .big_int = try Int.initSet(std.testing.allocator, 91414600319290532004473480113251693728834511388719905794310982800988866814583) }); + try exec_scopes.assignOrUpdateVariable("p", .{ .big_int = try Int.initSet(std.testing.allocator, 115792089237316195423570985008687907852837564279074904382605163141518161494337) }); + + const hint_processor = HintProcessor{}; + var hint_data = HintData.init(hint_codes.BIGINT_SAFE_DIV, ids_data, .{}); + + try hint_processor.executeHint(std.testing.allocator, &vm, &hint_data, undefined, &exec_scopes); + + try std.testing.expectEqual(36002209591245282109880156842267569109802494162594623391338581162816748840003, try ((try exec_scopes.getValue(Int, "k")).to(u512))); + + try std.testing.expectEqual(36002209591245282109880156842267569109802494162594623391338581162816748840003, try ((try exec_scopes.getValue(Int, "value")).to(u512))); + try testing_utils.checkMemory(vm.segments.memory, .{.{ .{ 1, 0 }, .{1} }}); +} diff --git a/src/hint_processor/blake2s_hash.zig b/src/hint_processor/blake2s_hash.zig new file mode 100644 index 00000000..a4520ed2 --- /dev/null +++ b/src/hint_processor/blake2s_hash.zig @@ -0,0 +1,222 @@ +const std = @import("std"); +const testing = std.testing; +const Allocator = std.mem.Allocator; +pub const IV = [8]u32{ + 0x6A09E667, + 0xBB67AE85, + 0x3C6EF372, + 0xA54FF53A, + 0x510E527F, + 0x9B05688C, + 0x1F83D9AB, + 0x5BE0CD19, +}; +const SIGMA = [_][16]usize{ + [_]usize{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, + [_]usize{ 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 }, + [_]usize{ 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 }, + [_]usize{ 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 }, + [_]usize{ 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 }, + [_]usize{ 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 }, + [_]usize{ 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 }, + [_]usize{ 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 }, + [_]usize{ 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 }, + [_]usize{ 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0 }, +}; +fn right_rot(value: u32, comptime n: u5) u32 { + return (value >> n) | (value << (@as(u6, 32) - @as(u6, n))); +} +fn mix(a: u32, b: u32, c: u32, d: u32, m0: u32, m1: u32) struct { u32, u32, u32, u32 } { + var a1 = a +% b +% m0; + var d1 = right_rot(d ^ a1, 16); + var c1 = c +% d1; + var b1 = right_rot(b ^ c1, 12); + a1 = a1 +% b1 +% m1; + d1 = right_rot(d1 ^ a1, 8); + c1 = c1 +% d1; + b1 = right_rot(b1 ^ c1, 7); + return .{ a1, b1, c1, d1 }; +} +fn blake_round(state: std.ArrayList(u32), message: [16]u32, sigma: [16]usize) void { + const state_items = state.items; + state_items[0], state_items[4], state_items[8], state_items[12] = mix( + state_items[0], + state_items[4], + state_items[8], + state_items[12], + message[sigma[0]], + message[sigma[1]], + ); + + state_items[1], state_items[5], state_items[9], state_items[13] = mix( + state_items[1], + state_items[5], + state_items[9], + state_items[13], + message[sigma[2]], + message[sigma[3]], + ); + state_items[2], state_items[6], state_items[10], state_items[14] = mix( + state_items[2], + state_items[6], + state_items[10], + state_items[14], + message[sigma[4]], + message[sigma[5]], + ); + state_items[3], state_items[7], state_items[11], state_items[15] = mix( + state_items[3], + state_items[7], + state_items[11], + state_items[15], + message[sigma[6]], + message[sigma[7]], + ); + state_items[0], state_items[5], state_items[10], state_items[15] = mix( + state_items[0], + state_items[5], + state_items[10], + state_items[15], + message[sigma[8]], + message[sigma[9]], + ); + + state_items[1], state_items[6], state_items[11], state_items[12] = mix( + state_items[1], + state_items[6], + state_items[11], + state_items[12], + message[sigma[10]], + message[sigma[11]], + ); + state_items[2], state_items[7], state_items[8], state_items[13] = mix( + state_items[2], + state_items[7], + state_items[8], + state_items[13], + message[sigma[12]], + message[sigma[13]], + ); + state_items[3], state_items[4], state_items[9], state_items[14] = mix( + state_items[3], + state_items[4], + state_items[9], + state_items[14], + message[sigma[14]], + message[sigma[15]], + ); +} +pub fn blake2s_compress( + allocator: Allocator, + h: [8]u32, + message: [16]u32, + t0: u32, + t1: u32, + f0: u32, + f1: u32, +) !std.ArrayList(u32) { + var state = std.ArrayList(u32).init(allocator); + defer state.deinit(); + try state.appendSlice(&h); + try state.appendSlice(&[8]u32{ IV[0], IV[1], IV[2], IV[3], IV[4] ^ t0, IV[5] ^ t1, IV[6] ^ f0, IV[7] ^ f1 }); + + for (SIGMA) |sigma| { + blake_round(state, message, sigma); + } + var new_state = std.ArrayList(u32).init(allocator); + for (0..8) |i| { + try new_state.append(h[i] ^ state.items[i] ^ state.items[8 + i]); + } + return new_state; +} + +test "blake2s compress: test a" { + const h = [8]u32{ + 1795745351, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, + 1541459225, + }; + const message = [_]u32{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + const new_state = try blake2s_compress(testing.allocator, h, message, 2, 0, 4294967295, 0); + defer new_state.deinit(); + try std.testing.expectEqualSlices(u32, &[8]u32{ 412110711, 3234706100, 3894970767, 982912411, 937789635, 742982576, 3942558313, 1407547065 }, new_state.items); +} + +test "blake2s compress: test b" { + const h = [8]u32{ + 1795745351, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, + 1541459225, + }; + const message = [_]u32{ 456710651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + const new_state = try blake2s_compress(testing.allocator, h, message, 2, 0, 4294967295, 0); + defer new_state.deinit(); + try std.testing.expectEqualSlices(u32, &[8]u32{ 1061041453, 3663967611, 2158760218, 836165556, 3696892209, 3887053585, 2675134684, 2201582556 }, new_state.items); +} + +test "blake2s compress: test c" { + const h = [8]u32{ + 1795745351, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, + 1541459225, + }; + const message = [_]u32{ + 1819043144, 1870078063, 6581362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + const new_state = try blake2s_compress(testing.allocator, h, message, 9, 0, 4294967295, 0); + defer new_state.deinit(); + try std.testing.expectEqualSlices(u32, &[8]u32{ 939893662, 3935214984, 1704819782, 3912812968, 4211807320, 3760278243, 674188535, 2642110762 }, new_state.items); +} + +test "blake2s compress: test d" { + const h = [8]u32{ + 1795745351, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, + 1541459225, + }; + const message = [_]u32{ + 1819043144, 1870078063, 6581362, 274628678, 715791845, 175498643, 871587583, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + }; + const new_state = try blake2s_compress(testing.allocator, h, message, 28, 0, 4294967295, 0); + defer new_state.deinit(); + try std.testing.expectEqualSlices(u32, &[8]u32{ 3980510537, 3982966407, 1593299263, 2666882356, 3288094120, 2682988286, 1666615862, 378086837 }, new_state.items); +} + +test "blake2s compress: test e" { + const h = [8]u32{ + 1795745351, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, + 1541459225, + }; + const message = [_]u32{ + 1819043144, 1870078063, 6581362, 274628678, 715791845, 175498643, 871587583, 635963558, + 557369694, 1576875962, 215769785, 0, 0, 0, 0, 0, + }; + const new_state = try blake2s_compress(testing.allocator, h, message, 44, 0, 4294967295, 0); + defer new_state.deinit(); + try std.testing.expectEqualSlices(u32, &[8]u32{ 3251785223, 1946079609, 2665255093, 3508191500, 3630835628, 3067307230, 3623370123, 656151356 }, new_state.items); +} + +test "blake2s compress: test f" { + const h = [8]u32{ + 1795745351, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, + 1541459225, + }; + const message = [_]u32{ + 1819043144, 1870078063, 6581362, 274628678, 715791845, 175498643, 871587583, 635963558, + 557369694, 1576875962, 215769785, 152379578, 585849303, 764739320, 437383930, 74833930, + }; + const new_state = try blake2s_compress(testing.allocator, h, message, 64, 0, 4294967295, 0); + defer new_state.deinit(); + try std.testing.expectEqualSlices(u32, &[8]u32{ 2593218707, 3238077801, 914875393, 3462286058, 4028447058, 3174734057, 2001070146, 3741410512 }, new_state.items); +} + +test "blake2s compress: test g" { + const h = [8]u32{ + 1795745351, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, + 1541459225, + }; + const message = [_]u32{ + 11563522, 43535528, 653255322, 274628678, 73471943, 17549868, 87158958, 635963558, + 343656565, 1576875962, 215769785, 152379578, 585849303, 76473202, 437253230, 74833930, + }; + const new_state = try blake2s_compress(testing.allocator, h, message, 64, 0, 4294967295, 0); + defer new_state.deinit(); + try std.testing.expectEqualSlices(u32, &[8]u32{ 3496615692, 3252241979, 3771521549, 2125493093, 3240605752, 2885407061, 3962009872, 3845288240 }, new_state.items); +} diff --git a/src/hint_processor/blake2s_utils.zig b/src/hint_processor/blake2s_utils.zig new file mode 100644 index 00000000..7f74c424 --- /dev/null +++ b/src/hint_processor/blake2s_utils.zig @@ -0,0 +1,722 @@ +const hint_utils = @import("hint_utils.zig"); +const std = @import("std"); +const CairoVM = @import("../vm/core.zig").CairoVM; +const HintReference = @import("hint_processor_def.zig").HintReference; +const HintProcessor = @import("hint_processor_def.zig").CairoVMHintProcessor; +const testing_utils = @import("testing_utils.zig"); +const Felt252 = @import("../math/fields/starknet.zig").Felt252; +const hint_codes = @import("builtin_hint_codes.zig"); +const Relocatable = @import("../vm/memory/relocatable.zig").Relocatable; +const MaybeRelocatable = @import("../vm/memory/relocatable.zig").MaybeRelocatable; +const ApTracking = @import("../vm/types/programjson.zig").ApTracking; +const HintData = @import("hint_processor_def.zig").HintData; +const ExecutionScopes = @import("../vm/types/execution_scopes.zig").ExecutionScopes; +const HintType = @import("../vm/types/execution_scopes.zig").HintType; +const Allocator = std.mem.Allocator; +const helper = @import("../math/fields/helper.zig"); +const MathError = @import("../vm/error.zig").MathError; +const HintError = @import("../vm/error.zig").HintError; +const CairoVMError = @import("../vm/error.zig").CairoVMError; +const MemoryError = @import("../vm/error.zig").MemoryError; +const blake2s_hash = @import("blake2s_hash.zig"); +const builtin_hints = @import("builtin_hint_codes.zig"); +fn feltToU32(felt: Felt252) MathError!u32 { + const u256_val = felt.toInteger(); + if (u256_val > 0xFFFFFFFF) { + return MathError.Felt252ToU32Conversion; + } + return @intCast(u256_val); +} + +fn getFixedSizeU32Array(comptime N: usize, h_range: std.ArrayList(Felt252)) ![N]u32 { + var result: [N]u32 = undefined; + for (h_range.items, 0..N) |h, i| { + result[i] = try feltToU32(h); + } + return result; +} +fn getMaybeRelocArrayFromU32Array(allocator: Allocator, h_range: std.ArrayList(u32)) !std.ArrayList(MaybeRelocatable) { + var result = std.ArrayList(MaybeRelocatable).init(allocator); + for (h_range.items) |h| { + const felt = Felt252.fromInt(u32, h); + try result.append(MaybeRelocatable.fromFelt(felt)); + } + return result; +} +fn computeBlake2sFunc(allocator: Allocator, vm: *CairoVM, output_ptr: Relocatable) !void { + const h_felt_range = try vm.getFeltRange(try output_ptr.subUint(26), 8); + defer h_felt_range.deinit(); + const h = try getFixedSizeU32Array(8, h_felt_range); + + const message_felt_range = try vm.getFeltRange(try output_ptr.subUint(18), 16); + defer message_felt_range.deinit(); + const message = try getFixedSizeU32Array(16, message_felt_range); + + const t = try feltToU32(try vm.getFelt(try output_ptr.subUint(2))); + const f = try feltToU32(try vm.getFelt(try output_ptr.subUint(1))); + + const h_range = try blake2s_hash.blake2s_compress(allocator, h, message, t, 0, f, 0); + defer h_range.deinit(); + var new_state = try getMaybeRelocArrayFromU32Array(allocator, h_range); + defer new_state.deinit(); + _ = try vm.loadData(output_ptr, &new_state); +} + +// Implements hint: +// from starkware.cairo.common.cairo_blake2s.blake2s_utils import compute_blake2s_func +// compute_blake2s_func(segments=segments, output_ptr=ids.output) +// +pub fn blake2sCompute(allocator: Allocator, vm: *CairoVM, ids_data: std.StringHashMap(HintReference), ap_tracking: ApTracking) !void { + const output = try hint_utils.getPtrFromVarName("output", vm, ids_data, ap_tracking); + try computeBlake2sFunc(allocator, vm, output); +} + +// /* Implements Hint: +// # Add dummy pairs of input and output. +// from starkware.cairo.common.cairo_blake2s.blake2s_utils import IV, blake2s_compress + +// _n_packed_instances = int(ids.N_PACKED_INSTANCES) +// assert 0 <= _n_packed_instances < 20 +// _blake2s_input_chunk_size_felts = int(ids.INPUT_BLOCK_FELTS) +// assert 0 <= _blake2s_input_chunk_size_felts < 100 + +// message = [0] * _blake2s_input_chunk_size_felts +// modified_iv = [IV[0] ^ 0x01010020] + IV[1:] +// output = blake2s_compress( +// message=message, +// h=modified_iv, +// t0=0, +// t1=0, +// f0=0xffffffff, +// f1=0, +// ) +// padding = (modified_iv + message + [0, 0xffffffff] + output) * (_n_packed_instances - 1) +// segments.write_arg(ids.blake2s_ptr_end, padding) + +pub fn blake2sFinalize(allocator: Allocator, vm: *CairoVM, ids_data: std.StringHashMap(HintReference), ap_tracking: ApTracking) !void { + const N_PACKED_INSTANCES = 7; + const blake2s_ptr_end = try hint_utils.getPtrFromVarName("blake2s_ptr_end", vm, ids_data, ap_tracking); + const message: [16]u32 = .{0} ** 16; + var modified_iv = blake2s_hash.IV; + modified_iv[0] = blake2s_hash.IV[0] ^ 0x01010020; + const output = try blake2s_hash.blake2s_compress(allocator, modified_iv, message, 0, 0, 0xffffffff, 0); + defer output.deinit(); + var full_padding = std.ArrayList(u32).init(allocator); + defer full_padding.deinit(); + for (N_PACKED_INSTANCES - 1) |_| { + try full_padding.appendSlice(&modified_iv); + try full_padding.appendSlice(&message); + try full_padding.appendSlice(&.{ 0, 0xffffffff }); + try full_padding.appendSlice(output.items); + } + var data = try getMaybeRelocArrayFromU32Array(allocator, full_padding); + defer data.deinit(); + _ = try vm.loadData(blake2s_ptr_end, &data); +} +// /* Implements Hint: +// # Add dummy pairs of input and output. +// from starkware.cairo.common.cairo_blake2s.blake2s_utils import IV, blake2s_compress + +// _n_packed_instances = int(ids.N_PACKED_INSTANCES) +// assert 0 <= _n_packed_instances < 20 +// _blake2s_input_chunk_size_felts = int(ids.BLAKE2S_INPUT_CHUNK_SIZE_FELTS) +// assert 0 <= _blake2s_input_chunk_size_felts < 100 + +// message = [0] * _blake2s_input_chunk_size_felts +// modified_iv = [IV[0] ^ 0x01010020] + IV[1:] +// output = blake2s_compress( +// message=message, +// h=modified_iv, +// t0=0, +// t1=0, +// f0=0xffffffff, +// f1=0, +// ) +// padding = (message + modified_iv + [0, 0xffffffff] + output) * (_n_packed_instances - 1) +// segments.write_arg(ids.blake2s_ptr_end, padding) +// */ +pub fn blake2sFinalizeV3(allocator: Allocator, vm: *CairoVM, ids_data: std.StringHashMap(HintReference), ap_tracking: ApTracking) !void { + const N_PACKED_INSTANCES = 7; + const blake2s_ptr_end = try hint_utils.getPtrFromVarName("blake2s_ptr_end", vm, ids_data, ap_tracking); + const message: [16]u32 = .{0} ** 16; + var modified_iv = blake2s_hash.IV; + modified_iv[0] = blake2s_hash.IV[0] ^ 0x01010020; + const output = try blake2s_hash.blake2s_compress(allocator, modified_iv, message, 0, 0, 0xffffffff, 0); + defer output.deinit(); + + var padding = std.ArrayList(u32).init(allocator); + defer padding.deinit(); + try padding.appendSlice(&message); + try padding.appendSlice(&modified_iv); + try padding.appendSlice(&.{ 0, 0xffffffff }); + try padding.appendSlice(output.items); + + var full_padding = std.ArrayList(u32).init(allocator); + defer full_padding.deinit(); + for (N_PACKED_INSTANCES - 1) |_| { + try full_padding.appendSlice(&padding); + } + var data = try getMaybeRelocArrayFromU32Array(allocator, full_padding); + defer data.deinit(); + _ = try vm.loadData(blake2s_ptr_end, &data); +} +// /* Implements Hint: +// B = 32 +// MASK = 2 ** 32 - 1 +// segments.write_arg(ids.data, [(ids.low >> (B * i)) & MASK for i in range(4)]) +// segments.write_arg(ids.data + 4, [(ids.high >> (B * i)) & MASK for i in range(4)]) +// */ +pub fn blake2sAddUnit256(_: Allocator, vm: *CairoVM, ids_data: std.StringHashMap(HintReference), ap_tracking: ApTracking) !void { + var data_ptr = try hint_utils.getPtrFromVarName("data", vm, ids_data, ap_tracking); + const low_addr = try hint_utils.getRelocatableFromVarName("low", vm, ids_data, ap_tracking); + const high_addr = try hint_utils.getRelocatableFromVarName("high", vm, ids_data, ap_tracking); + var low = try vm.getFelt(low_addr); + var high = try vm.getFelt(high_addr); + + const mask = Felt252.fromInt(u64, std.math.maxInt(u32) + 1); + var data = std.ArrayList(MaybeRelocatable).init(vm.allocator); + defer data.deinit(); + // first batch + for (0..4) |_| { + const temp = try low.divRem(mask); + const q = temp.q; + const r = temp.r; + try data.append(MaybeRelocatable.fromFelt(r)); + low = q; + } + data_ptr = try vm.loadData(data_ptr, &data); + data.shrinkAndFree(0); + // second batch + for (0..4) |_| { + const temp = try high.divRem(mask); + const q = temp.q; + const r = temp.r; + try data.append(MaybeRelocatable.fromFelt(r)); + high = q; + } + _ = try vm.loadData(data_ptr, &data); +} + +// /* Implements Hint: +// B = 32 +// MASK = 2 ** 32 - 1 +// segments.write_arg(ids.data, [(ids.high >> (B * (3 - i))) & MASK for i in range(4)]) +// segments.write_arg(ids.data + 4, [(ids.low >> (B * (3 - i))) & MASK for i in range(4)]) +// */ +pub fn blake2sAddUnit256BigEnd(_: Allocator, vm: *CairoVM, ids_data: std.StringHashMap(HintReference), ap_tracking: ApTracking) !void { + const data_ptr = try hint_utils.getPtrFromVarName("data", vm, ids_data, ap_tracking); + const low_addr = try hint_utils.getRelocatableFromVarName("low", vm, ids_data, ap_tracking); + const high_addr = try hint_utils.getRelocatableFromVarName("high", vm, ids_data, ap_tracking); + var low = try vm.getFelt(low_addr); + var high = try vm.getFelt(high_addr); + + const mask = Felt252.fromInt(u64, std.math.maxInt(u32) + 1); + var data = std.ArrayList(MaybeRelocatable).init(vm.allocator); + defer data.deinit(); + + // first batch + for (0..4) |_| { + const temp = try low.divRem(mask); + const q = temp.q; + const r = temp.r; + try data.append(MaybeRelocatable.fromFelt(r)); + low = q; + } + // second batch + for (0..4) |_| { + const temp = try high.divRem(mask); + const q = temp.q; + const r = temp.r; + try data.append(MaybeRelocatable.fromFelt(r)); + high = q; + } + var bigend_data = std.ArrayList(MaybeRelocatable).init(vm.allocator); + defer bigend_data.deinit(); + for (0..8) |i| { + try bigend_data.append(data.items[7 - i]); + } + _ = try vm.loadData(data_ptr, &bigend_data); +} + +// /* Implements Hint: +// %{ +// from starkware.cairo.common.cairo_blake2s.blake2s_utils import IV, blake2s_compress + +// _blake2s_input_chunk_size_felts = int(ids.BLAKE2S_INPUT_CHUNK_SIZE_FELTS) +// assert 0 <= _blake2s_input_chunk_size_felts < 100 + +// new_state = blake2s_compress( +// message=memory.get_range(ids.blake2s_start, _blake2s_input_chunk_size_felts), +// h=[IV[0] ^ 0x01010020] + IV[1:], +// t0=ids.n_bytes, +// t1=0, +// f0=0xffffffff, +// f1=0, +// ) + +// segments.write_arg(ids.output, new_state) +// %} + +// Note: This hint belongs to the blake2s lib in cario_examples +// */ + +pub fn exampleBlake2SCompress(allocator: Allocator, vm: *CairoVM, ids_data: std.StringHashMap(HintReference), ap_tracking: ApTracking) !void { + const blake2s_start = try hint_utils.getPtrFromVarName("blake2s_start", vm, ids_data, ap_tracking); + const output = try hint_utils.getPtrFromVarName("output", vm, ids_data, ap_tracking); + const n_bytes_felt = try hint_utils.getIntegerFromVarName("n_bytes", vm, ids_data, ap_tracking); + const n_bytes = try feltToU32(n_bytes_felt); + + const message = try getFixedSizeU32Array(16, try vm.getFeltRange(blake2s_start, 16)); + var modified_iv = blake2s_hash.IV; + modified_iv[0] = blake2s_hash.IV[0] ^ 0x01010020; + var new_state = try blake2s_hash.blake2s_compress(allocator, modified_iv, message, n_bytes, 0, 0xffffffff, 0); + defer new_state.deinit(); + var new_state_relocatable = try getMaybeRelocArrayFromU32Array(allocator, new_state); + new_state_relocatable.deinit(); + _ = try vm.segments.writeArg(std.ArrayList(MaybeRelocatable), output, &new_state_relocatable); +} + +test "compute blake2s output offset zero" { + const hint_code = "from starkware.cairo.common.cairo_blake2s.blake2s_utils import compute_blake2s_func\ncompute_blake2s_func(segments=segments, output_ptr=ids.output)"; + var vm = try CairoVM.init(std.testing.allocator, .{}); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + vm.run_context.fp.* = 4; + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{ 2, 26 } }, + }); + _ = try vm.segments.addSegment(); + const output = try vm.segments.addSegment(); + const ids_data = try testing_utils.setupIdsForTest(std.testing.allocator, &.{ + .{ + .name = "output", + .elems = &.{MaybeRelocatable.fromRelocatable(output)}, + }, + }, &vm); + + const hint_processor = HintProcessor{}; + + var hint_data = + HintData{ + .code = hint_code, + .ids_data = ids_data, + .ap_tracking = undefined, + }; + defer hint_data.deinit(); + //Execute the hint + + const err = hint_processor.executeHint(std.testing.allocator, &vm, &hint_data, undefined, undefined); + try std.testing.expectError(MathError.RelocatableSubUsizeNegOffset, err); +} + +test "compute blake2s output empty segment" { + const hint_code = "from starkware.cairo.common.cairo_blake2s.blake2s_utils import compute_blake2s_func\ncompute_blake2s_func(segments=segments, output_ptr=ids.output)"; + var vm = try CairoVM.init(std.testing.allocator, .{}); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + vm.run_context.fp.* = 1; + + _ = try vm.addMemorySegment(); + const output = try vm.segments.addSegment(); + const ids_data = try testing_utils.setupIdsForTest(std.testing.allocator, &.{ + .{ + .name = "output", + .elems = &.{MaybeRelocatable.fromRelocatable(try output.addInt(26))}, + }, + }, &vm); + + const hint_processor = HintProcessor{}; + + var hint_data = + HintData{ + .code = hint_code, + .ids_data = ids_data, + .ap_tracking = undefined, + }; + defer hint_data.deinit(); + //Execute the hint + + const err = hint_processor.executeHint(std.testing.allocator, &vm, &hint_data, undefined, undefined); + try std.testing.expectError(MemoryError.UnknownMemoryCell, err); +} + +test "compute blake2s output not relocatable" { + const hint_code = "from starkware.cairo.common.cairo_blake2s.blake2s_utils import compute_blake2s_func\ncompute_blake2s_func(segments=segments, output_ptr=ids.output)"; + var vm = try CairoVM.init(std.testing.allocator, .{}); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + vm.run_context.fp.* = 1; + + _ = try vm.addMemorySegment(); + const ids_data = try testing_utils.setupIdsForTestWithoutMemory(std.testing.allocator, &.{"output"}); + + const hint_processor = HintProcessor{}; + + var hint_data = + HintData{ + .code = hint_code, + .ids_data = ids_data, + .ap_tracking = undefined, + }; + defer hint_data.deinit(); + //Execute the hint + + const err = hint_processor.executeHint(std.testing.allocator, &vm, &hint_data, undefined, undefined); + try std.testing.expectError(HintError.IdentifierNotRelocatable, err); +} + +test "compute blake2s output input bigger than u32" { + const hint_code = "from starkware.cairo.common.cairo_blake2s.blake2s_utils import compute_blake2s_func\ncompute_blake2s_func(segments=segments, output_ptr=ids.output)"; + var vm = try CairoVM.init(std.testing.allocator, .{}); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + vm.run_context.fp.* = 1; + + _ = try vm.segments.addSegment(); + var output = try vm.segments.addTempSegment(); + + const data = [26]MaybeRelocatable{ MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959) }; + output = try vm.segments.loadData(std.testing.allocator, output, &data); + const ids_data = try testing_utils.setupIdsForTest(std.testing.allocator, &.{ + .{ + .name = "output", + .elems = &.{MaybeRelocatable.fromRelocatable(output)}, + }, + }, &vm); + + const hint_processor = HintProcessor{}; + + var hint_data = + HintData{ + .code = hint_code, + .ids_data = ids_data, + .ap_tracking = undefined, + }; + defer hint_data.deinit(); + //Execute the hint + + try std.testing.expectError(MathError.Felt252ToU32Conversion, hint_processor.executeHint(std.testing.allocator, &vm, &hint_data, undefined, undefined)); +} + +test "compute blake2s output input relocatable" { + const hint_code = "from starkware.cairo.common.cairo_blake2s.blake2s_utils import compute_blake2s_func\ncompute_blake2s_func(segments=segments, output_ptr=ids.output)"; + var vm = try CairoVM.init(std.testing.allocator, .{}); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + vm.run_context.fp.* = 1; + + _ = try vm.segments.addSegment(); + var output = try vm.segments.addTempSegment(); + + const data = [26]MaybeRelocatable{ MaybeRelocatable.fromRelocatable(Relocatable.init(5, 5)), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959), MaybeRelocatable.fromInt(u128, 7842562439562793675803603603688959) }; + output = try vm.segments.loadData(std.testing.allocator, output, &data); + const ids_data = try testing_utils.setupIdsForTest(std.testing.allocator, &.{ + .{ + .name = "output", + .elems = &.{MaybeRelocatable.fromRelocatable(output)}, + }, + }, &vm); + + const hint_processor = HintProcessor{}; + + var hint_data = + HintData{ + .code = hint_code, + .ids_data = ids_data, + .ap_tracking = undefined, + }; + defer hint_data.deinit(); + //Execute the hint + + try std.testing.expectError(MemoryError.ExpectedInteger, hint_processor.executeHint(std.testing.allocator, &vm, &hint_data, undefined, undefined)); +} + +test "compute blake2s ok" { + const hint_code = "from starkware.cairo.common.cairo_blake2s.blake2s_utils import compute_blake2s_func\ncompute_blake2s_func(segments=segments, output_ptr=ids.output)"; + var vm = try CairoVM.init(std.testing.allocator, .{}); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + vm.run_context.fp.* = 1; + + _ = try vm.segments.addSegment(); + var output = try vm.segments.addTempSegment(); + + const data = [26]MaybeRelocatable{ MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17), MaybeRelocatable.fromInt(u128, 17) }; + output = try vm.segments.loadData(std.testing.allocator, output, &data); + const ids_data = try testing_utils.setupIdsForTest(std.testing.allocator, &.{ + .{ + .name = "output", + .elems = &.{MaybeRelocatable.fromRelocatable(output)}, + }, + }, &vm); + + const hint_processor = HintProcessor{}; + + var hint_data = + HintData{ + .code = hint_code, + .ids_data = ids_data, + .ap_tracking = undefined, + }; + defer hint_data.deinit(); + //Execute the hint + try hint_processor.executeHint(std.testing.allocator, &vm, &hint_data, undefined, undefined); +} + +test "finalize blake2s ok" { + const hint_code = "# Add dummy pairs of input and output.\nfrom starkware.cairo.common.cairo_blake2s.blake2s_utils import IV, blake2s_compress\n\n_n_packed_instances = int(ids.N_PACKED_INSTANCES)\nassert 0 <= _n_packed_instances < 20\n_blake2s_input_chunk_size_felts = int(ids.INPUT_BLOCK_FELTS)\nassert 0 <= _blake2s_input_chunk_size_felts < 100\n\nmessage = [0] * _blake2s_input_chunk_size_felts\nmodified_iv = [IV[0] ^ 0x01010020] + IV[1:]\noutput = blake2s_compress(\n message=message,\n h=modified_iv,\n t0=0,\n t1=0,\n f0=0xffffffff,\n f1=0,\n)\npadding = (modified_iv + message + [0, 0xffffffff] + output) * (_n_packed_instances - 1)\nsegments.write_arg(ids.blake2s_ptr_end, padding)"; + var vm = try CairoVM.init(std.testing.allocator, .{}); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + vm.run_context.fp.* = 1; + + // add segments + _ = try vm.segments.addSegment(); + _ = try vm.segments.addSegment(); + + const data = try vm.segments.addSegment(); + + const ids_data = try testing_utils.setupIdsForTest(std.testing.allocator, &.{ + .{ + .name = "blake2s_ptr_end", + .elems = &.{MaybeRelocatable.fromRelocatable(data)}, + }, + }, &vm); + const hint_processor = HintProcessor{}; + + var hint_data = + HintData{ + .code = hint_code, + .ids_data = ids_data, + .ap_tracking = undefined, + }; + defer hint_data.deinit(); + //Execute the hint + try hint_processor.executeHint(std.testing.allocator, &vm, &hint_data, undefined, undefined); + + const expected_data = [204]u32{ + 1795745351, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, + 1541459225, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4294967295, 813310313, 2491453561, + 3491828193, 2085238082, 1219908895, 514171180, 4245497115, 4193177630, 1795745351, + 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4294967295, 813310313, 2491453561, 3491828193, + 2085238082, 1219908895, 514171180, 4245497115, 4193177630, 1795745351, 3144134277, + 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4294967295, 813310313, 2491453561, 3491828193, 2085238082, + 1219908895, 514171180, 4245497115, 4193177630, 1795745351, 3144134277, 1013904242, + 2773480762, 1359893119, 2600822924, 528734635, 1541459225, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 4294967295, 813310313, 2491453561, 3491828193, 2085238082, 1219908895, + 514171180, 4245497115, 4193177630, 1795745351, 3144134277, 1013904242, 2773480762, + 1359893119, 2600822924, 528734635, 1541459225, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 4294967295, 813310313, 2491453561, 3491828193, 2085238082, 1219908895, 514171180, + 4245497115, 4193177630, 1795745351, 3144134277, 1013904242, 2773480762, 1359893119, + 2600822924, 528734635, 1541459225, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4294967295, + 813310313, 2491453561, 3491828193, 2085238082, 1219908895, 514171180, 4245497115, + 4193177630, + }; + + const actual_data = try vm.segments.memory.getFeltRange(Relocatable.init(2, 0), 204); + defer actual_data.deinit(); + const actual_data_u32 = try getFixedSizeU32Array(204, actual_data); + try std.testing.expectEqualSlices(u32, &expected_data, &actual_data_u32); +} + +test "blake2s add uint256 valid zero" { + const hint_code = "B = 32\nMASK = 2 ** 32 - 1\nsegments.write_arg(ids.data, [(ids.low >> (B * i)) & MASK for i in range(4)])\nsegments.write_arg(ids.data + 4, [(ids.high >> (B * i)) & MASK for i in range(4)])"; + var vm = try CairoVM.init(std.testing.allocator, .{}); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + vm.run_context.fp.* = 3; + _ = try vm.segments.addSegment(); + _ = try vm.segments.addSegment(); + const data = try vm.segments.addSegment(); + + const ids_data = try testing_utils.setupIdsForTest(std.testing.allocator, &.{ .{ + .name = "data", + .elems = &.{MaybeRelocatable.fromRelocatable(data)}, + }, .{ + .name = "high", + .elems = &.{MaybeRelocatable.fromInt(u32, 0)}, + }, .{ + .name = "low", + .elems = &.{MaybeRelocatable.fromInt(u32, 0)}, + } }, &vm); + const hint_processor = HintProcessor{}; + + var hint_data = + HintData{ + .code = hint_code, + .ids_data = ids_data, + .ap_tracking = undefined, + }; + defer hint_data.deinit(); + // Execute the hint + try hint_processor.executeHint(std.testing.allocator, &vm, &hint_data, undefined, undefined); + + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 0))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 1))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 2))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 3))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 4))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 5))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 6))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 7))); +} + +test "blake2s add uint256 valid non zero" { + const hint_code = "B = 32\nMASK = 2 ** 32 - 1\nsegments.write_arg(ids.data, [(ids.low >> (B * i)) & MASK for i in range(4)])\nsegments.write_arg(ids.data + 4, [(ids.high >> (B * i)) & MASK for i in range(4)])"; + var vm = try CairoVM.init(std.testing.allocator, .{}); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + vm.run_context.fp.* = 3; + _ = try vm.segments.addSegment(); + _ = try vm.segments.addSegment(); + const data = try vm.segments.addSegment(); + const ids_data = try testing_utils.setupIdsForTest(std.testing.allocator, &.{ .{ + .name = "data", + .elems = &.{MaybeRelocatable.fromRelocatable(data)}, + }, .{ + .name = "high", + .elems = &.{MaybeRelocatable.fromInt(u32, 25)}, + }, .{ + .name = "low", + .elems = &.{MaybeRelocatable.fromInt(u32, 20)}, + } }, &vm); + const hint_processor = HintProcessor{}; + + var hint_data = + HintData{ + .code = hint_code, + .ids_data = ids_data, + .ap_tracking = undefined, + }; + defer hint_data.deinit(); + // Execute the hint + try hint_processor.executeHint(std.testing.allocator, &vm, &hint_data, undefined, undefined); + + try std.testing.expectEqual(2, data.segment_index); + try std.testing.expectEqual(0, data.offset); + + try std.testing.expectEqual(Felt252.fromInt(u32, 20), try vm.segments.memory.getFelt(Relocatable.init(2, 0))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 1))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 2))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 3))); + try std.testing.expectEqual(Felt252.fromInt(u32, 25), try vm.segments.memory.getFelt(Relocatable.init(2, 4))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 5))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 6))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 7))); +} + +test "blake2s add uint256 big endian valid non zero" { + const hint_code = "B = 32\nMASK = 2 ** 32 - 1\nsegments.write_arg(ids.data, [(ids.high >> (B * (3 - i))) & MASK for i in range(4)])\nsegments.write_arg(ids.data + 4, [(ids.low >> (B * (3 - i))) & MASK for i in range(4)])"; + var vm = try CairoVM.init(std.testing.allocator, .{}); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + vm.run_context.fp.* = 3; + _ = try vm.segments.addSegment(); + _ = try vm.segments.addSegment(); + const data = try vm.segments.addSegment(); + const ids_data = try testing_utils.setupIdsForTest(std.testing.allocator, &.{ .{ + .name = "data", + .elems = &.{MaybeRelocatable.fromRelocatable(data)}, + }, .{ + .name = "high", + .elems = &.{MaybeRelocatable.fromInt(u32, 25)}, + }, .{ + .name = "low", + .elems = &.{MaybeRelocatable.fromInt(u32, 20)}, + } }, &vm); + const hint_processor = HintProcessor{}; + + var hint_data = + HintData{ + .code = hint_code, + .ids_data = ids_data, + .ap_tracking = undefined, + }; + defer hint_data.deinit(); + // Execute the hint + try hint_processor.executeHint(std.testing.allocator, &vm, &hint_data, undefined, undefined); + + try std.testing.expectEqual(2, data.segment_index); + try std.testing.expectEqual(0, data.offset); + + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 0))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 1))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 2))); + try std.testing.expectEqual(Felt252.fromInt(u32, 25), try vm.segments.memory.getFelt(Relocatable.init(2, 3))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 4))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 5))); + try std.testing.expectEqual(Felt252.fromInt(u32, 0), try vm.segments.memory.getFelt(Relocatable.init(2, 6))); + try std.testing.expectEqual(Felt252.fromInt(u32, 20), try vm.segments.memory.getFelt(Relocatable.init(2, 7))); +} + +test "example blake2s empty input" { + var vm = try CairoVM.init(std.testing.allocator, .{}); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + vm.run_context.fp.* = 3; + const output = try vm.segments.addSegment(); + const blake2s_start = try vm.segments.addSegment(); + const ids_data = try testing_utils.setupIdsForTest(std.testing.allocator, &.{ .{ + .name = "output", + .elems = &.{MaybeRelocatable.fromRelocatable(output)}, + }, .{ + .name = "blake2s_start", + .elems = &.{MaybeRelocatable.fromRelocatable(blake2s_start)}, + }, .{ + .name = "n_bytes", + .elems = &.{MaybeRelocatable.fromInt(u32, 9)}, + } }, &vm); + + const hint_processor = HintProcessor{}; + var hint_data = + HintData{ + .code = builtin_hints.EXAMPLE_BLAKE2S_COMPRESS, + .ids_data = ids_data, + .ap_tracking = undefined, + }; + defer hint_data.deinit(); + try std.testing.expectError(MemoryError.UnknownMemoryCell, hint_processor.executeHint(std.testing.allocator, &vm, &hint_data, undefined, undefined)); +} + +test "example blake2s compress n bytes over u32" { + var vm = try CairoVM.init(std.testing.allocator, .{}); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + vm.run_context.fp.* = 3; + const output = try vm.segments.addSegment(); + const blake2s_start = try vm.segments.addSegment(); + const ids_data = try testing_utils.setupIdsForTest(std.testing.allocator, &.{ .{ + .name = "output", + .elems = &.{MaybeRelocatable.fromRelocatable(output)}, + }, .{ + .name = "blake2s_start", + .elems = &.{MaybeRelocatable.fromRelocatable(blake2s_start)}, + }, .{ + .name = "n_bytes", + .elems = &.{MaybeRelocatable.fromInt(u64, 9999999999)}, + } }, &vm); + + const hint_processor = HintProcessor{}; + var hint_data = + HintData{ + .code = builtin_hints.EXAMPLE_BLAKE2S_COMPRESS, + .ids_data = ids_data, + .ap_tracking = undefined, + }; + defer hint_data.deinit(); + try std.testing.expectError(MathError.Felt252ToU32Conversion, hint_processor.executeHint(std.testing.allocator, &vm, &hint_data, undefined, undefined)); +} diff --git a/src/hint_processor/builtin_hint_codes.zig b/src/hint_processor/builtin_hint_codes.zig index 889cb2c1..d1d8820c 100644 --- a/src/hint_processor/builtin_hint_codes.zig +++ b/src/hint_processor/builtin_hint_codes.zig @@ -516,6 +516,23 @@ pub const DICT_SQUASH_COPY_DICT = \\ 'initial_dict': dict(__dict_manager.get_dict(ids.dict_accesses_end)), \\}) ; +pub const BIGINT_PACK_DIV_MOD_HINT = + \\from starkware.cairo.common.cairo_secp.secp_utils import pack + \\from starkware.cairo.common.math_utils import as_int + \\from starkware.python.math_utils import div_mod, safe_div + \\p = pack(ids.P, PRIME) + \\x = pack(ids.x, PRIME) + as_int(ids.x.d3, PRIME) * ids.BASE ** 3 + as_int(ids.x.d4, PRIME) * ids.BASE ** 4 + \\y = pack(ids.y, PRIME) + \\value = res = div_mod(x, y, p) +; + +pub const BIGINT_SAFE_DIV = + \\ k = safe_div(res * y - x, p) + \\ value = k if k > 0 else 0 - k + \\ ids.flag = 1 if k > 0 else 0 +; + +pub const HI_MAX_BIT_LEN = "ids.len_hi = max(ids.scalar_u.d2.bit_length(), ids.scalar_v.d2.bit_length())-1"; pub const BLOCK_PERMUTATION = \\from starkware.cairo.common.keccak_utils.keccak_utils import keccak_func @@ -636,3 +653,321 @@ pub const SPLIT_XX = \\ids.x.low = x & ((1<<128)-1) \\ids.x.high = x >> 128 ; + +pub const BLAKE2S_COMPUTE = + \\from starkware.cairo.common.cairo_blake2s.blake2s_utils import compute_blake2s_func + \\compute_blake2s_func(segments=segments, output_ptr=ids.output) +; + +pub const BLAKE2S_FINALIZE = + \\# Add dummy pairs of input and output. + \\from starkware.cairo.common.cairo_blake2s.blake2s_utils import IV, blake2s_compress + \\ + \\_n_packed_instances = int(ids.N_PACKED_INSTANCES) + \\assert 0 <= _n_packed_instances < 20 + \\_blake2s_input_chunk_size_felts = int(ids.INPUT_BLOCK_FELTS) + \\assert 0 <= _blake2s_input_chunk_size_felts < 100 + \\ + \\message = [0] * _blake2s_input_chunk_size_felts + \\modified_iv = [IV[0] ^ 0x01010020] + IV[1:] + \\output = blake2s_compress( + \\ message=message, + \\ h=modified_iv, + \\ t0=0, + \\ t1=0, + \\ f0=0xffffffff, + \\ f1=0, + \\) + \\padding = (modified_iv + message + [0, 0xffffffff] + output) * (_n_packed_instances - 1) + \\segments.write_arg(ids.blake2s_ptr_end, padding) +; + +pub const BLAKE2S_FINALIZE_V2 = + \\# Add dummy pairs of input and output. + \\from starkware.cairo.common.cairo_blake2s.blake2s_utils import IV, blake2s_compress + \\ + \\_n_packed_instances = int(ids.N_PACKED_INSTANCES) + \\assert 0 <= _n_packed_instances < 20 + \\_blake2s_input_chunk_size_felts = int(ids.BLAKE2S_INPUT_CHUNK_SIZE_FELTS) + \\assert 0 <= _blake2s_input_chunk_size_felts < 100 + \\ + \\message = [0] * _blake2s_input_chunk_size_felts + \\modified_iv = [IV[0] ^ 0x01010020] + IV[1:] + \\output = blake2s_compress( + \\ message=message, + \\ h=modified_iv, + \\ t0=0, + \\ t1=0, + \\ f0=0xffffffff, + \\ f1=0, + \\) + \\padding = (modified_iv + message + [0, 0xffffffff] + output) * (_n_packed_instances - 1) + \\segments.write_arg(ids.blake2s_ptr_end, padding) +; + +pub const BLAKE2S_ADD_UINT256 = + \\B = 32 + \\MASK = 2 ** 32 - 1 + \\segments.write_arg(ids.data, [(ids.low >> (B * i)) & MASK for i in range(4)]) + \\segments.write_arg(ids.data + 4, [(ids.high >> (B * i)) & MASK for i in range(4)]) +; + +pub const BLAKE2S_ADD_UINT256_BIGEND = + \\B = 32 + \\MASK = 2 ** 32 - 1 + \\segments.write_arg(ids.data, [(ids.high >> (B * (3 - i))) & MASK for i in range(4)]) + \\segments.write_arg(ids.data + 4, [(ids.low >> (B * (3 - i))) & MASK for i in range(4)]) +; + +pub const EXAMPLE_BLAKE2S_COMPRESS = + \\from starkware.cairo.common.cairo_blake2s.blake2s_utils import IV, blake2s_compress + \\ + \\_blake2s_input_chunk_size_felts = int(ids.BLAKE2S_INPUT_CHUNK_SIZE_FELTS) + \\assert 0 <= _blake2s_input_chunk_size_felts < 100 + \\ + \\new_state = blake2s_compress( + \\ message=memory.get_range(ids.blake2s_start, _blake2s_input_chunk_size_felts), + \\ h=[IV[0] ^ 0x01010020] + IV[1:], + \\ t0=ids.n_bytes, + \\ t1=0, + \\ f0=0xffffffff, + \\ f1=0, + \\) + \\ + \\segments.write_arg(ids.output, new_state) +; + +pub const BLAKE2S_FINALIZE_V3 = + \\# Add dummy pairs of input and output. + \\from starkware.cairo.common.cairo_blake2s.blake2s_utils import IV, blake2s_compress + \\_n_packed_instances = int(ids.N_PACKED_INSTANCES) + \\assert 0 <= _n_packed_instances < 20 + \\_blake2s_input_chunk_size_felts = int(ids.BLAKE2S_INPUT_CHUNK_SIZE_FELTS) + \\assert 0 <= _blake2s_input_chunk_size_felts < 100 + \\ + \\message = [0] * _blake2s_input_chunk_size_felts + \\modified_iv = [IV[0] ^ 0x01010020] + IV[1:] + \\output = blake2s_compress( + \\ message=message, + \\ h=modified_iv, + \\ t0=0, + \\ t1=0, + \\ f0=0xffffffff, + \\ f1=0, + \\) + \\padding = (message + modified_iv + [0, 0xffffffff] + output) * (_n_packed_instances - 1) + \\segments.write_arg(ids.blake2s_ptr_end, padding) +; + +pub const PRINT_ARR = + \\print(bytes.fromhex(f"{ids.name:062x}").decode().replace('\x00','')) + \\arr = [memory[ids.arr + i] for i in range(ids.arr_len)] + \\print(arr) +; + +pub const PRINT_FELT = + \\print(ids.x) +; + +pub const PRINT_DICT = + \\print(bytes.fromhex(f"{ids.name:062x}").decode().replace('\x00','')) + \\data = __dict_manager.get_dict(ids.dict_ptr) + \\print( + \\ {k: v if isinstance(v, int) else [memory[v + i] for i in range(ids.pointer_size)] for k, v in data.items()} + \\) +; + +pub const NONDET_BIGINT3_V1 = + \\from starkware.cairo.common.cairo_secp.secp_utils import split + \\ + \\segments.write_arg(ids.res.address_, split(value)) +; + +pub const NONDET_BIGINT3_V2 = + \\from starkware.cairo.common.cairo_secp.secp_utils import split + \\segments.write_arg(ids.res.address_, split(value)) +; + +// The following hints support the lib https://github.com/NethermindEth/research-basic-Cairo-operations-big-integers/blob/main/lib +pub const UINT384_UNSIGNED_DIV_REM = + \\def split(num: int, num_bits_shift: int, length: int): + \\ a = [] + \\ for _ in range(length): + \\ a.append( num & ((1 << num_bits_shift) - 1) ) + \\ num = num >> num_bits_shift + \\ return tuple(a) + \\ + \\def pack(z, num_bits_shift: int) -> int: + \\ limbs = (z.d0, z.d1, z.d2) + \\ return sum(limb << (num_bits_shift * i) for i, limb in enumerate(limbs)) + \\ + \\a = pack(ids.a, num_bits_shift = 128) + \\div = pack(ids.div, num_bits_shift = 128) + \\quotient, remainder = divmod(a, div) + \\ + \\quotient_split = split(quotient, num_bits_shift=128, length=3) + \\assert len(quotient_split) == 3 + \\ + \\ids.quotient.d0 = quotient_split[0] + \\ids.quotient.d1 = quotient_split[1] + \\ids.quotient.d2 = quotient_split[2] + \\ + \\remainder_split = split(remainder, num_bits_shift=128, length=3) + \\ids.remainder.d0 = remainder_split[0] + \\ids.remainder.d1 = remainder_split[1] + \\ids.remainder.d2 = remainder_split[2] +; + +pub const UINT384_SPLIT_128 = + \\ids.low = ids.a & ((1<<128) - 1) + \\ids.high = ids.a >> 128 +; + +pub const ADD_NO_UINT384_CHECK = + \\sum_d0 = ids.a.d0 + ids.b.d0 + \\ids.carry_d0 = 1 if sum_d0 >= ids.SHIFT else 0 + \\sum_d1 = ids.a.d1 + ids.b.d1 + ids.carry_d0 + \\ids.carry_d1 = 1 if sum_d1 >= ids.SHIFT else 0 + \\sum_d2 = ids.a.d2 + ids.b.d2 + ids.carry_d1 + \\ids.carry_d2 = 1 if sum_d2 >= ids.SHIFT else 0 +; + +pub const UINT384_SQRT = + \\from starkware.python.math_utils import isqrt + \\ + \\def split(num: int, num_bits_shift: int, length: int): + \\ a = [] + \\ for _ in range(length): + \\ a.append( num & ((1 << num_bits_shift) - 1) ) + \\ num = num >> num_bits_shift + \\ return tuple(a) + \\ + \\def pack(z, num_bits_shift: int) -> int: + \\ limbs = (z.d0, z.d1, z.d2) + \\ return sum(limb << (num_bits_shift * i) for i, limb in enumerate(limbs)) + \\ + \\a = pack(ids.a, num_bits_shift=128) + \\root = isqrt(a) + \\assert 0 <= root < 2 ** 192 + \\root_split = split(root, num_bits_shift=128, length=3) + \\ids.root.d0 = root_split[0] + \\ids.root.d1 = root_split[1] + \\ids.root.d2 = root_split[2] +; + +pub const SUB_REDUCED_A_AND_REDUCED_B = + \\def split(num: int, num_bits_shift: int, length: int): + \\ a = [] + \\ for _ in range(length): + \\ a.append( num & ((1 << num_bits_shift) - 1) ) + \\ num = num >> num_bits_shift + \\ return tuple(a) + \\ + \\def pack(z, num_bits_shift: int) -> int: + \\ limbs = (z.d0, z.d1, z.d2) + \\ return sum(limb << (num_bits_shift * i) for i, limb in enumerate(limbs)) + \\ + \\a = pack(ids.a, num_bits_shift = 128) + \\b = pack(ids.b, num_bits_shift = 128) + \\p = pack(ids.p, num_bits_shift = 128) + \\ + \\res = (a - b) % p + \\ + \\ + \\res_split = split(res, num_bits_shift=128, length=3) + \\ + \\ids.res.d0 = res_split[0] + \\ids.res.d1 = res_split[1] + \\ids.res.d2 = res_split[2] +; + +pub const UINT384_SIGNED_NN = "memory[ap] = 1 if 0 <= (ids.a.d2 % PRIME) < 2 ** 127 else 0"; + +pub const UNSIGNED_DIV_REM_UINT768_BY_UINT384 = + \\def split(num: int, num_bits_shift: int, length: int): + \\ a = [] + \\ for _ in range(length): + \\ a.append( num & ((1 << num_bits_shift) - 1) ) + \\ num = num >> num_bits_shift + \\ return tuple(a) + \\ + \\def pack(z, num_bits_shift: int) -> int: + \\ limbs = (z.d0, z.d1, z.d2) + \\ return sum(limb << (num_bits_shift * i) for i, limb in enumerate(limbs)) + \\ + \\def pack_extended(z, num_bits_shift: int) -> int: + \\ limbs = (z.d0, z.d1, z.d2, z.d3, z.d4, z.d5) + \\ return sum(limb << (num_bits_shift * i) for i, limb in enumerate(limbs)) + \\ + \\a = pack_extended(ids.a, num_bits_shift = 128) + \\div = pack(ids.div, num_bits_shift = 128) + \\ + \\quotient, remainder = divmod(a, div) + \\ + \\quotient_split = split(quotient, num_bits_shift=128, length=6) + \\ + \\ids.quotient.d0 = quotient_split[0] + \\ids.quotient.d1 = quotient_split[1] + \\ids.quotient.d2 = quotient_split[2] + \\ids.quotient.d3 = quotient_split[3] + \\ids.quotient.d4 = quotient_split[4] + \\ids.quotient.d5 = quotient_split[5] + \\ + \\remainder_split = split(remainder, num_bits_shift=128, length=3) + \\ids.remainder.d0 = remainder_split[0] + \\ids.remainder.d1 = remainder_split[1] + \\ids.remainder.d2 = remainder_split[2] +; + +// equal to UNSIGNED_DIV_REM_UINT768_BY_UINT384 but with some whitespace removed +// in the `num = num >> num_bits_shift` and between `pack` and `pack_extended` +pub const UNSIGNED_DIV_REM_UINT768_BY_UINT384_STRIPPED = + \\def split(num: int, num_bits_shift: int, length: int): + \\ a = [] + \\ for _ in range(length): + \\ a.append( num & ((1 << num_bits_shift) - 1) ) + \\ num = num >> num_bits_shift + \\ return tuple(a) + \\ + \\def pack(z, num_bits_shift: int) -> int: + \\ limbs = (z.d0, z.d1, z.d2) + \\ return sum(limb << (num_bits_shift * i) for i, limb in enumerate(limbs)) + \\ + \\def pack_extended(z, num_bits_shift: int) -> int: + \\ limbs = (z.d0, z.d1, z.d2, z.d3, z.d4, z.d5) + \\ return sum(limb << (num_bits_shift * i) for i, limb in enumerate(limbs)) + \\ + \\a = pack_extended(ids.a, num_bits_shift = 128) + \\div = pack(ids.div, num_bits_shift = 128) + \\ + \\quotient, remainder = divmod(a, div) + \\ + \\quotient_split = split(quotient, num_bits_shift=128, length=6) + \\ + \\ids.quotient.d0 = quotient_split[0] + \\ids.quotient.d1 = quotient_split[1] + \\ids.quotient.d2 = quotient_split[2] + \\ids.quotient.d3 = quotient_split[3] + \\ids.quotient.d4 = quotient_split[4] + \\ids.quotient.d5 = quotient_split[5] + \\ + \\remainder_split = split(remainder, num_bits_shift=128, length=3) + \\ids.remainder.d0 = remainder_split[0] + \\ids.remainder.d1 = remainder_split[1] + \\ids.remainder.d2 = remainder_split[2] +; + +pub const INV_MOD_P_UINT512 = + \\def pack_512(u, num_bits_shift: int) -> int: + \\ limbs = (u.d0, u.d1, u.d2, u.d3) + \\ return sum(limb << (num_bits_shift * i) for i, limb in enumerate(limbs)) + \\ + \\x = pack_512(ids.x, num_bits_shift = 128) + \\p = ids.p.low + (ids.p.high << 128) + \\x_inverse_mod_p = pow(x,-1, p) + \\ + \\x_inverse_mod_p_split = (x_inverse_mod_p & ((1 << 128) - 1), x_inverse_mod_p >> 128) + \\ + \\ids.x_inverse_mod_p.low = x_inverse_mod_p_split[0] + \\ids.x_inverse_mod_p.high = x_inverse_mod_p_split[1] +; diff --git a/src/hint_processor/builtin_hint_processor/secp/bigint_utils.zig b/src/hint_processor/builtin_hint_processor/secp/bigint_utils.zig new file mode 100644 index 00000000..106895ce --- /dev/null +++ b/src/hint_processor/builtin_hint_processor/secp/bigint_utils.zig @@ -0,0 +1,527 @@ +const std = @import("std"); +const Felt252 = @import("../../../math/fields/starknet.zig").Felt252; +const Relocatable = @import("../../../vm/memory/relocatable.zig").Relocatable; +const CairoVM = @import("../../../vm/core.zig").CairoVM; +const HintError = @import("../../../vm/error.zig").HintError; +const hint_utils = @import("../../hint_utils.zig"); +const HintReference = @import("../../hint_processor_def.zig").HintReference; +const ApTracking = @import("../../../vm/types/programjson.zig").ApTracking; +const ExecutionScopes = @import("../../../vm/types/execution_scopes.zig").ExecutionScopes; +const pow2ConstNz = @import("../../math_hints.zig").pow2ConstNz; +const packBigInt = @import("../../uint_utils.zig").pack; +const splitBigInt = @import("../../uint_utils.zig").split; +const HintProcessor = @import("../../hint_processor_def.zig").CairoVMHintProcessor; +const HintData = @import("../../hint_processor_def.zig").HintData; +const testing_utils = @import("../../testing_utils.zig"); +const MemoryError = @import("../../../vm/error.zig").MemoryError; +const MaybeRelocatable = @import("../../../vm/memory/relocatable.zig").MaybeRelocatable; +const Int = @import("std").math.big.int.Managed; +const secp_utils = @import("../secp/secp_utils.zig"); +const bigInt3Split = secp_utils.bigInt3Split; +const BigInt = std.math.big.int.Managed; +const BASE = @import("../../../math//fields/constants.zig").BASE; +const hint_codes = @import("../../builtin_hint_codes.zig"); + +pub const BigInt3 = BigIntN(3); +pub const Uint384 = BigIntN(3); +pub const Uint512 = BigIntN(4); +pub const BigInt5 = BigIntN(5); +pub const Uint768 = BigIntN(6); + +pub fn BigIntN(comptime NUM_LIMBS: usize) type { + return struct { + const Self = @This(); + + limbs: [NUM_LIMBS]Felt252 = undefined, + + pub fn fromBaseAddr(addr: Relocatable, vm: *CairoVM) !Self { + var limbs: [NUM_LIMBS]Felt252 = undefined; + + inline for (0..NUM_LIMBS) |i| { + limbs[i] = try vm.getFelt(try addr.addUint(i)); + } + + return .{ .limbs = limbs }; + } + + pub fn fromVarName(name: []const u8, vm: *CairoVM, ids_data: std.StringHashMap(HintReference), ap_tracking: ApTracking) !Self { + return Self.fromBaseAddr(try hint_utils.getRelocatableFromVarName(name, vm, ids_data, ap_tracking), vm); + } + + pub fn fromValues(limbs: [NUM_LIMBS]Felt252) Self { + return .{ .limbs = limbs }; + } + + pub fn insertFromVarName( + self: *const Self, + allocator: std.mem.Allocator, + var_name: []const u8, + vm: *CairoVM, + ids_data: std.StringHashMap(HintReference), + ap_tracking: ApTracking, + ) !void { + const addr = try hint_utils.getRelocatableFromVarName(var_name, vm, ids_data, ap_tracking); + inline for (0..NUM_LIMBS) |i| { + try vm.insertInMemory(allocator, try addr.addUint(i), MaybeRelocatable.fromFelt(self.limbs[i])); + } + } + + pub fn pack(self: *const Self, allocator: std.mem.Allocator) !Int { + return packBigInt(allocator, NUM_LIMBS, self.limbs, 128); + } + + pub fn pack86(self: *const Self, allocator: std.mem.Allocator) !Int { + var result = try Int.initSet(allocator, 0); + errdefer result.deinit(); + + inline for (0..3) |i| { + var tmp = try self.limbs[i].toSignedBigInt(allocator); + defer tmp.deinit(); + + try tmp.shiftLeft(&tmp, i * 86); + + try result.add(&result, &tmp); + } + + return result; + } + + + pub fn split(allocator: std.mem.Allocator, num: Int) !Self { + return Self.fromValues(try splitBigInt(allocator, num, NUM_LIMBS, 128)); + } + + // @TODO: implement from. It is dependent on split function. + pub fn from(self: *Self, value: Int) !Self { + // Assuming we have a `split` function in BigIntN.zig that performs the conversion. + return self.split(value); + } + }; +} + +// Implements hint: +// %{ +// from starkware.cairo.common.cairo_secp.secp_utils import split +// segments.write_arg(ids.res.address_, split(value)) +// %} +/// +pub fn nondetBigInt3(allocator: std.mem.Allocator, vm: *CairoVM, exec_scopes: *ExecutionScopes, ids_data: std.StringHashMap(HintReference), ap_tracking: ApTracking) !void { + const res_reloc = try hint_utils.getRelocatableFromVarName("res", vm, ids_data, ap_tracking); + const value = try exec_scopes.getValueRef(Int, "value"); + + if (!value.isPositive()) return HintError.BigintToUsizeFail; + + var arg = try secp_utils.bigInt3Split(allocator, value); + defer for (0..arg.len) |x| arg[x].deinit(); + + const result: [3]MaybeRelocatable = .{ + MaybeRelocatable.fromInt(u512, try arg[0].to(u512)), + MaybeRelocatable.fromInt(u512, try arg[1].to(u512)), + MaybeRelocatable.fromInt(u512, try arg[2].to(u512)), + }; + + _ = try vm.segments.loadData(allocator, res_reloc, result[0..]); +} + +// Implements hint +// %{ ids.low = (ids.x.d0 + ids.x.d1 * ids.BASE) & ((1 << 128) - 1) %} +pub fn bigintToUint256(vm: *CairoVM, ids_data: std.StringHashMap(HintReference), ap_tracking: ApTracking, constants: std.StringHashMap(Felt252)) !void { + const x_struct = try hint_utils.getRelocatableFromVarName("x", vm, ids_data, ap_tracking); + const d0 = try vm.getFelt(x_struct); + const d1 = try vm.getFelt(x_struct.offset(1)); + const base_86 = constants.get("BASE_86") orelse return HintError.MissingConstant; + const mask = pow2ConstNz(128); + const low = ((d0 + (d1 * base_86)) % mask); + try hint_utils.insertValueFromVarName(std.mem.Allocator, "low", low, vm, ids_data, ap_tracking); +} + +// Implements hint +// %{ ids.len_hi = max(ids.scalar_u.d2.bit_length(), ids.scalar_v.d2.bit_length())-1 %} +pub fn hiMaxBitlen(vm: *CairoVM, allocator: std.mem.Allocator, ids_data: std.StringHashMap(HintReference), ap_tracking: ApTracking) !void { + var scalar_u = try BigInt3.fromVarName("scalar_u", vm, ids_data, ap_tracking); + var scalar_v = try BigInt3.fromVarName("scalar_v", vm, ids_data, ap_tracking); + + // get number of bits in the highest limb + const len_hi_u = scalar_u.limbs[2].numBits(); + const len_hi_v = scalar_v.limbs[2].numBits(); + + const len_hi = @max(len_hi_u, len_hi_v); + + // equal to `len_hi.wrapping_sub(1)` + const res = if (len_hi == 0) Felt252.Max.toInteger() else len_hi - 1; + + try hint_utils.insertValueFromVarName(allocator, "len_hi", MaybeRelocatable.fromInt(u256, res), vm, ids_data, ap_tracking); +} + +// Tests + +test "BigIntUtils: get bigint3 from base addr ok" { + var vm = try CairoVM.init(std.testing.allocator, .{}); + + defer vm.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 0, 0 }, .{1} }, + .{ .{ 0, 1 }, .{2} }, + .{ .{ 0, 2 }, .{3} }, + }); + + defer vm.segments.memory.deinitData(std.testing.allocator); + + const x = try BigInt3.fromBaseAddr(Relocatable{ .segment_index = 0, .offset = 0 }, &vm); + + try std.testing.expectEqual(Felt252.one(), x.limbs[0]); + try std.testing.expectEqual(Felt252.two(), x.limbs[1]); + try std.testing.expectEqual(Felt252.three(), x.limbs[2]); +} + +test "BigIntUtils: get Bigint5 from base addr ok" { + var vm = try CairoVM.init(std.testing.allocator, .{}); + + defer vm.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 0, 0 }, .{1} }, + .{ .{ 0, 1 }, .{2} }, + .{ .{ 0, 2 }, .{3} }, + .{ .{ 0, 3 }, .{4} }, + .{ .{ 0, 4 }, .{5} }, + }); + + defer vm.segments.memory.deinitData(std.testing.allocator); + + const x = try BigInt5.fromBaseAddr(Relocatable{ .segment_index = 0, .offset = 0 }, &vm); + + try std.testing.expectEqual(Felt252.one(), x.limbs[0]); + try std.testing.expectEqual(Felt252.two(), x.limbs[1]); + try std.testing.expectEqual(Felt252.three(), x.limbs[2]); + try std.testing.expectEqual(Felt252.fromInt(u8, 4), x.limbs[3]); + try std.testing.expectEqual(Felt252.fromInt(u8, 5), x.limbs[4]); +} + +test "Get BigInt3 from base address with missing member should fail" { + var vm = try CairoVM.init(std.testing.allocator, .{}); + + defer vm.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 0, 0 }, .{1} }, + .{ .{ 0, 1 }, .{2} }, + }); + + defer vm.segments.memory.deinitData(std.testing.allocator); + + try std.testing.expectError(MemoryError.UnknownMemoryCell, BigInt3.fromBaseAddr(Relocatable{ .segment_index = 0, .offset = 0 }, &vm)); +} + +test "Get BigInt5 from base address with missing member should fail" { + var vm = try CairoVM.init(std.testing.allocator, .{}); + + defer vm.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 0, 0 }, .{1} }, + .{ .{ 0, 1 }, .{2} }, + .{ .{ 0, 2 }, .{3} }, + .{ .{ 0, 3 }, .{4} }, + }); + + defer vm.segments.memory.deinitData(std.testing.allocator); + + try std.testing.expectError(MemoryError.UnknownMemoryCell, BigInt5.fromBaseAddr(Relocatable{ .segment_index = 0, .offset = 0 }, &vm)); +} + +test "BigIntUtils: get bigint3 from var name ok" { + var vm = try CairoVM.init(std.testing.allocator, .{}); + + defer vm.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{1} }, + .{ .{ 1, 1 }, .{2} }, + .{ .{ 1, 2 }, .{3} }, + }); + + vm.run_context.fp.* = 1; + + defer vm.segments.memory.deinitData(std.testing.allocator); + + var ids_data = try testing_utils.setupIdsForTestWithoutMemory(std.testing.allocator, &.{"x"}); + defer ids_data.deinit(); + + const x = try BigInt3.fromVarName("x", &vm, ids_data, .{}); + + try std.testing.expectEqual(Felt252.one(), x.limbs[0]); + try std.testing.expectEqual(Felt252.two(), x.limbs[1]); + try std.testing.expectEqual(Felt252.three(), x.limbs[2]); +} + +test "BigIntUtils: get bigint5 from var name ok" { + var vm = try CairoVM.init(std.testing.allocator, .{}); + + defer vm.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{1} }, + .{ .{ 1, 1 }, .{2} }, + .{ .{ 1, 2 }, .{3} }, + .{ .{ 1, 3 }, .{4} }, + .{ .{ 1, 4 }, .{5} }, + }); + + vm.run_context.fp.* = 1; + + defer vm.segments.memory.deinitData(std.testing.allocator); + + var ids_data = try testing_utils.setupIdsForTestWithoutMemory(std.testing.allocator, &.{"x"}); + defer ids_data.deinit(); + + const x = try BigInt5.fromVarName("x", &vm, ids_data, .{}); + + try std.testing.expectEqual(Felt252.one(), x.limbs[0]); + try std.testing.expectEqual(Felt252.two(), x.limbs[1]); + try std.testing.expectEqual(Felt252.three(), x.limbs[2]); + try std.testing.expectEqual(Felt252.fromInt(u8, 4), x.limbs[3]); + try std.testing.expectEqual(Felt252.fromInt(u8, 5), x.limbs[4]); +} + +test "BigIntUtils: get bigint3 from var name with missing member fail" { + var vm = try CairoVM.init(std.testing.allocator, .{}); + + defer vm.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{1} }, + .{ .{ 1, 1 }, .{2} }, + }); + + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 1; + + var ids_data = try testing_utils.setupIdsForTestWithoutMemory(std.testing.allocator, &.{"x"}); + defer ids_data.deinit(); + + try std.testing.expectError(MemoryError.UnknownMemoryCell, BigInt3.fromVarName("x", &vm, ids_data, .{})); +} + +test "BigIntUtils: get bigint5 from var name with missing member should fail" { + var vm = try CairoVM.init(std.testing.allocator, .{}); + + defer vm.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{1} }, + .{ .{ 1, 1 }, .{2} }, + .{ .{ 1, 2 }, .{3} }, + .{ .{ 1, 3 }, .{4} }, + }); + + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 1; + + var ids_data = try testing_utils.setupIdsForTestWithoutMemory(std.testing.allocator, &.{"x"}); + defer ids_data.deinit(); + + try std.testing.expectError(MemoryError.UnknownMemoryCell, BigInt5.fromVarName("x", &vm, ids_data, .{})); +} + +test "BigIntUtils: get bigint3 from varname invalid reference should fail" { + var vm = try CairoVM.init(std.testing.allocator, .{}); + + defer vm.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{1} }, + .{ .{ 1, 1 }, .{2} }, + .{ .{ 1, 2 }, .{3} }, + }); + + defer vm.segments.memory.deinitData(std.testing.allocator); + + var ids_data = try testing_utils.setupIdsForTestWithoutMemory(std.testing.allocator, &.{"x"}); + defer ids_data.deinit(); + + try std.testing.expectError(HintError.UnknownIdentifier, BigInt3.fromVarName("x", &vm, ids_data, .{})); +} + +test "BigIntUtils: get bigint5 from varname invalid reference should fail" { + var vm = try CairoVM.init(std.testing.allocator, .{}); + + defer vm.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{1} }, + .{ .{ 1, 1 }, .{2} }, + .{ .{ 1, 2 }, .{3} }, + .{ .{ 1, 3 }, .{4} }, + .{ .{ 1, 4 }, .{5} }, + }); + + defer vm.segments.memory.deinitData(std.testing.allocator); + + var ids_data = try testing_utils.setupIdsForTestWithoutMemory(std.testing.allocator, &.{"x"}); + defer ids_data.deinit(); + + try std.testing.expectError(HintError.UnknownIdentifier, BigInt5.fromVarName("x", &vm, ids_data, .{})); +} + +test "BigIntUtils: Run hiMaxBitlen ok" { + var vm = try CairoVM.init(std.testing.allocator, .{}); + + defer vm.deinit(); + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData( + std.testing.allocator, + &.{ + .{ "scalar_u", 0 }, + .{ "scalar_v", 3 }, + .{ + "len_hi", + 6, + }, + }, + ); + defer ids_data.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{0} }, + .{ .{ 1, 1 }, .{0} }, + .{ .{ 1, 2 }, .{1} }, + .{ .{ 1, 3 }, .{0} }, + .{ .{ 1, 4 }, .{0} }, + .{ .{ 1, 5 }, .{1} }, + }); + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 0; + vm.run_context.ap.* = 7; + + //Execute the hint + const hint_code = "ids.len_hi = max(ids.scalar_u.d2.bit_length(), ids.scalar_v.d2.bit_length())-1"; + + try testing_utils.runHint(std.testing.allocator, &vm, ids_data, hint_code, undefined, undefined); + + try testing_utils.checkMemory(vm.segments.memory, .{ + .{ .{ 1, 6 }, .{0} }, + }); +} + +test "BigIntUtils: nondet bigint3 ok" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + inline for (0..3) |_| _ = try vm.segments.addSegment(); + + var exec_scopes = try ExecutionScopes.init(std.testing.allocator); + defer exec_scopes.deinit(); + + try exec_scopes.assignOrUpdateVariable("value", .{ .big_int = try Int.initSet(std.testing.allocator, 7737125245533626718119526477371252455336267181195264773712524553362) }); + + vm.run_context.pc.* = Relocatable.init(0, 0); + vm.run_context.ap.* = 6; + vm.run_context.fp.* = 6; + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData( + std.testing.allocator, + &.{ + .{ "res", 5 }, + }, + ); + defer ids_data.deinit(); + + var constants = std.StringHashMap(Felt252).init(std.testing.allocator); + defer constants.deinit(); + + try constants.put(secp_utils.BASE_86, pow2ConstNz(86)); + + try testing_utils.runHint(std.testing.allocator, &vm, ids_data, "from starkware.cairo.common.cairo_secp.secp_utils import split\n\nsegments.write_arg(ids.res.address_, split(value))", &constants, &exec_scopes); + + try testing_utils.checkMemory(vm.segments.memory, .{ + .{ + .{ 1, 11 }, .{773712524553362}, + }, + .{ + .{ 1, 12 }, .{57408430697461422066401280}, + }, + .{ + .{ 1, 13 }, .{1292469707114105}, + }, + }); +} + +test "BigIntUtils: nondet bigint3 split error" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + inline for (0..3) |_| _ = try vm.segments.addSegment(); + + var exec_scopes = try ExecutionScopes.init(std.testing.allocator); + defer exec_scopes.deinit(); + + try exec_scopes.assignOrUpdateVariable("value", .{ .big_int = try Int.initSet(std.testing.allocator, -1) }); + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData( + std.testing.allocator, + &.{ + .{ "res", 5 }, + }, + ); + defer ids_data.deinit(); + + try std.testing.expectError(HintError.BigintToUsizeFail, testing_utils.runHint(std.testing.allocator, &vm, ids_data, "from starkware.cairo.common.cairo_secp.secp_utils import split\n\nsegments.write_arg(ids.res.address_, split(value))", undefined, &exec_scopes)); +} + +test "BigIntUtils: nondet bigint3 value not in scope" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + inline for (0..3) |_| _ = try vm.segments.addSegment(); + + var exec_scopes = try ExecutionScopes.init(std.testing.allocator); + defer exec_scopes.deinit(); + + vm.run_context.pc.* = Relocatable.init(0, 0); + vm.run_context.ap.* = 6; + vm.run_context.fp.* = 6; + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData( + std.testing.allocator, + &.{ + .{ "res", 5 }, + }, + ); + defer ids_data.deinit(); + + try std.testing.expectError(HintError.VariableNotInScopeError, testing_utils.runHint(std.testing.allocator, &vm, ids_data, "from starkware.cairo.common.cairo_secp.secp_utils import split\n\nsegments.write_arg(ids.res.address_, split(value))", undefined, &exec_scopes)); +} + +test "BigIntUtils: u384 pack86" { + var val = try Uint384.fromValues(.{ + Felt252.fromInt(u8, 10), + Felt252.fromInt(u8, 10), + Felt252.fromInt(u8, 10), + }).pack86(std.testing.allocator); + defer val.deinit(); + + try std.testing.expectEqual( + 59863107065073783529622931521771477038469668772249610, + val.to(u384), + ); + + var val1 = try Uint384.fromValues(.{ + Felt252.fromInt(u128, 773712524553362), + Felt252.fromInt(u128, 57408430697461422066401280), + Felt252.fromInt(u128, 1292469707114105), + }).pack86(std.testing.allocator); + defer val1.deinit(); + + try std.testing.expectEqual( + 7737125245533626718119526477371252455336267181195264773712524553362, + try val1.to(u384), + ); +} diff --git a/src/hint_processor/builtin_hint_processor/secp/secp_utils.zig b/src/hint_processor/builtin_hint_processor/secp/secp_utils.zig new file mode 100644 index 00000000..c9994f1c --- /dev/null +++ b/src/hint_processor/builtin_hint_processor/secp/secp_utils.zig @@ -0,0 +1,44 @@ +const std = @import("std"); +const BASE = @import("../../../math/fields/constants.zig").BASE; +const Int = std.math.big.int.Managed; + +pub const BASE_86 = "starkware.cairo.common.cairo_secp.constants.BASE"; + +const MathError = @import("../../../vm/error.zig").MathError; + +/// Takes a 256-bit integer and returns its canonical representation as: +/// d0 + BASE * d1 + BASE**2 * d2, +/// where BASE = 2**86. +pub fn bigInt3Split(allocator: std.mem.Allocator, integer: *const Int) ![3]Int { + var canonical_repr: [3]Int = undefined; + + // init all data + inline for (0..3) |i| { + canonical_repr[i] = try Int.init(allocator); + errdefer inline for (0..i) |x| canonical_repr[x].deinit(); + } + + errdefer inline for (0..3) |x| canonical_repr[x].deinit(); + + var tmp = try Int.init(allocator); + defer tmp.deinit(); + + var num = try integer.cloneWithDifferentAllocator(allocator); + defer num.deinit(); + + var base_minus_one = try Int.initSet(allocator, BASE - 1); + defer base_minus_one.deinit(); + + inline for (&canonical_repr) |*item| { + try item.*.bitAnd(&num, &base_minus_one); + // shift right got a bug, shift size more than 64 glitching, so we need just make n shifts less than 64 + try num.shiftRight(&num, 43); + try num.shiftRight(&num, 43); + } + + if (!num.eqlZero()) { + return MathError.SecpSplitOutOfRange; + } + + return canonical_repr; +} diff --git a/src/hint_processor/hint_processor_def.zig b/src/hint_processor/hint_processor_def.zig index d6b18da1..27604b84 100644 --- a/src/hint_processor/hint_processor_def.zig +++ b/src/hint_processor/hint_processor_def.zig @@ -36,9 +36,16 @@ const set = @import("set.zig"); const pow_utils = @import("pow_utils.zig"); const segments = @import("segments.zig"); +const bigint_utils = @import("../hint_processor/builtin_hint_processor/secp/bigint_utils.zig"); +const bigint = @import("bigint.zig"); +const uint384 = @import("uint384.zig"); +const inv_mod_p_uint512 = @import("vrf/inv_mod_p_uint512.zig"); + const deserialize_utils = @import("../parser/deserialize_utils.zig"); +const print_utils = @import("./print.zig"); const testing_utils = @import("testing_utils.zig"); +const blake2s_utils = @import("blake2s_utils.zig"); const HintError = @import("../vm/error.zig").HintError; @@ -371,6 +378,52 @@ pub const CairoVMHintProcessor = struct { try squash_dict_utils.squashDictInnerNextKey(allocator, vm, exec_scopes, hint_data.ids_data, hint_data.ap_tracking); } else if (std.mem.eql(u8, hint_codes.SQUASH_DICT, hint_data.code)) { try squash_dict_utils.squashDict(allocator, vm, exec_scopes, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.BLAKE2S_COMPUTE, hint_data.code)) { + try blake2s_utils.blake2sCompute(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.BLAKE2S_FINALIZE, hint_data.code)) { + try blake2s_utils.blake2sFinalize(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.BLAKE2S_FINALIZE_V2, hint_data.code)) { + try blake2s_utils.blake2sFinalize(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.BLAKE2S_ADD_UINT256, hint_data.code)) { + try blake2s_utils.blake2sAddUnit256(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.BLAKE2S_ADD_UINT256_BIGEND, hint_data.code)) { + try blake2s_utils.blake2sAddUnit256BigEnd(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.EXAMPLE_BLAKE2S_COMPRESS, hint_data.code)) { + try blake2s_utils.exampleBlake2SCompress(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.PRINT_ARR, hint_data.code)) { + try print_utils.printArray(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.PRINT_FELT, hint_data.code)) { + try print_utils.printFelt(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.PRINT_DICT, hint_data.code)) { + try print_utils.printDict(allocator, vm, exec_scopes, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.HI_MAX_BIT_LEN, hint_data.code)) { + try bigint_utils.hiMaxBitlen(vm, allocator, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.NONDET_BIGINT3_V1, hint_data.code)) { + try bigint_utils.nondetBigInt3(allocator, vm, exec_scopes, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.NONDET_BIGINT3_V2, hint_data.code)) { + try bigint_utils.nondetBigInt3(allocator, vm, exec_scopes, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.BIGINT_PACK_DIV_MOD_HINT, hint_data.code)) { + try bigint.bigintPackDivModHint(allocator, vm, exec_scopes, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.BIGINT_SAFE_DIV, hint_data.code)) { + try bigint.bigIntSafeDivHint(allocator, vm, exec_scopes, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.UINT384_UNSIGNED_DIV_REM, hint_data.code)) { + try uint384.uint384UnsignedDivRem(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.UINT384_SPLIT_128, hint_data.code)) { + try uint384.uint384Split128(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.ADD_NO_UINT384_CHECK, hint_data.code)) { + try uint384.addNoUint384Check(allocator, vm, hint_data.ids_data, hint_data.ap_tracking, constants); + } else if (std.mem.eql(u8, hint_codes.UINT384_SQRT, hint_data.code)) { + try uint384.uint384Sqrt(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.UINT384_SIGNED_NN, hint_data.code)) { + try uint384.uint384SignedNn(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.SUB_REDUCED_A_AND_REDUCED_B, hint_data.code)) { + try uint384.subReducedAAndReducedB(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.UNSIGNED_DIV_REM_UINT768_BY_UINT384, hint_data.code)) { + try uint384.unsignedDivRemUint768ByUint384(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.UNSIGNED_DIV_REM_UINT768_BY_UINT384_STRIPPED, hint_data.code)) { + try uint384.unsignedDivRemUint768ByUint384(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); + } else if (std.mem.eql(u8, hint_codes.INV_MOD_P_UINT512, hint_data.code)) { + try inv_mod_p_uint512.invModPUint512(allocator, vm, hint_data.ids_data, hint_data.ap_tracking); } else { std.log.err("not implemented: {s}\n", .{hint_data.code}); return HintError.HintNotImplemented; diff --git a/src/hint_processor/math_hints.zig b/src/hint_processor/math_hints.zig index e9bb8114..f10551fe 100644 --- a/src/hint_processor/math_hints.zig +++ b/src/hint_processor/math_hints.zig @@ -162,6 +162,13 @@ pub fn sqrt( ); } +/// Returns the `n`th (up to the `251`th power) power of 2 as a [`&stark_felt::NonZeroFelt`] +/// in constant time. +/// It silently returns `1` if the input is out of bounds. +pub fn pow2ConstNz(comptime n: u32) Felt252 { + return Felt252.pow2Const(n); +} + // Implements hint: // from starkware.cairo.common.math_utils import assert_integer diff --git a/src/hint_processor/print.zig b/src/hint_processor/print.zig new file mode 100644 index 00000000..3cc28ea8 --- /dev/null +++ b/src/hint_processor/print.zig @@ -0,0 +1,77 @@ +const std = @import("std"); +const Allocator = std.mem.Allocator; +const CairoVM = @import("../vm/core.zig").CairoVM; +const HintReference = @import("hint_processor_def.zig").HintReference; +const ApTracking = @import("../vm/types/programjson.zig").ApTracking; +const hint_utils = @import("hint_utils.zig"); +const Felt252 = @import("../math/fields/starknet.zig").Felt252; +const HintError = @import("../vm/error.zig").HintError; +const MaybeRelocatable = @import("../vm/memory/relocatable.zig").MaybeRelocatable; +const ExecutionScopes = @import("../vm/types/execution_scopes.zig").ExecutionScopes; +const dict_manager = @import("../hint_processor/dict_manager.zig"); +pub fn printFelt(_: Allocator, vm: *CairoVM, ids_data: std.StringHashMap(HintReference), ap_tracking: ApTracking) !void { + const val = try hint_utils.getIntegerFromVarName("x", vm, ids_data, ap_tracking); + std.debug.print("{}\n", .{val}); +} + +pub fn printName(_: Allocator, vm: *CairoVM, ids_data: std.StringHashMap(HintReference), ap_tracking: ApTracking) !void { + const name = try hint_utils.getIntegerFromVarName("name", vm, ids_data, ap_tracking); + std.debug.print("{}\n", .{name}); +} + +pub fn printArray(allocator: Allocator, vm: *CairoVM, ids_data: std.StringHashMap(HintReference), ap_tracking: ApTracking) !void { + try printName(allocator, vm, ids_data, ap_tracking); + const arr = try hint_utils.getPtrFromVarName("arr", vm, ids_data, ap_tracking); + const temp = try hint_utils.getIntegerFromVarName("arr_len", vm, ids_data, ap_tracking); + const arr_len = try temp.intoUsize(); + var acc = try allocator.alloc(Felt252, arr_len); + defer allocator.free(acc); + for (0..arr_len) |i| { + const val = try vm.getFelt(try arr.addUint(@as(u64, i))); + acc[i] = val; + } + std.debug.print("arr: {any}\n", .{acc}); +} +const DictValue = union { + felt: Felt252, + relocatable: []Felt252, +}; + +pub fn printDict(allocator: Allocator, vm: *CairoVM, exec_scopes: *ExecutionScopes, ids_data: std.StringHashMap(HintReference), ap_tracking: ApTracking) !void { + try printName(allocator, vm, ids_data, ap_tracking); + const dict_ptr = try hint_utils.getPtrFromVarName("dict_ptr", vm, ids_data, ap_tracking); + const pointer_size_felt = try hint_utils.getIntegerFromVarName("pointer_size", vm, ids_data, ap_tracking); + const pointer_size = try pointer_size_felt.intoUsize(); + if (pointer_size < 0) { + return error.HintError("pointer_size is negative"); + } + + var dict_rc = try exec_scopes.getDictManager(); + defer dict_rc.releaseWithFn(dict_manager.DictManager.deinit); + + const tracker = try dict_rc.value.getTrackerRef(dict_ptr); + var map: std.AutoHashMap(MaybeRelocatable, MaybeRelocatable) = switch (tracker.data) { + .SimpleDictionary => |dict| dict, + .DefaultDictionary => |dict| dict.dict, + }; + + var acc = std.AutoHashMap(Felt252, DictValue).init(allocator); + defer acc.deinit(); + var it = map.iterator(); + while (it.next()) |el| { + const key = try el.key_ptr.intoFelt(); + const val = el.value_ptr.*; + switch (val) { + .felt => |felt| try acc.put(key, DictValue{ .felt = felt }), + .relocatable => |relocatable| { + var structure = try allocator.alloc(Felt252, pointer_size); + defer allocator.free(structure); + for (0..pointer_size) |i| { + structure[i] = try vm.getFelt(try relocatable.addUint(@as(u64, i))); + } + try acc.put(key, DictValue{ .relocatable = structure }); + }, + } + } + std.debug.print("dict: {any}\n", .{acc}); +} diff --git a/src/hint_processor/testing_utils.zig b/src/hint_processor/testing_utils.zig index 577a86bf..7a9ccda5 100644 --- a/src/hint_processor/testing_utils.zig +++ b/src/hint_processor/testing_utils.zig @@ -48,6 +48,10 @@ pub fn checkMemory(mem: *Memory, comptime rows: anytype) !void { pub fn checkMemoryAddress(mem: *Memory, data: anytype) !void { const expected = if (data[1].len == 2) MaybeRelocatable.fromRelocatable(Relocatable.init(data[1][0], data[1][1])) else MaybeRelocatable.fromInt(u256, data[1][0]); + errdefer { + std.log.err("failed expect: {any}, got: {any}\n", .{ expected, mem.get(Relocatable.init(data[0][0], data[0][1])) }); + } + try std.testing.expectEqual(expected, mem.get(Relocatable.init(data[0][0], data[0][1]))); } diff --git a/src/hint_processor/uint256_utils.zig b/src/hint_processor/uint256_utils.zig index f678d536..6f21d198 100644 --- a/src/hint_processor/uint256_utils.zig +++ b/src/hint_processor/uint256_utils.zig @@ -12,6 +12,7 @@ const ApTracking = @import("../vm/types/programjson.zig").ApTracking; const HintData = @import("hint_processor_def.zig").HintData; const ExecutionScopes = @import("../vm/types/execution_scopes.zig").ExecutionScopes; +const Int = @import("std").math.big.int.Managed; const helper = @import("../math/fields/helper.zig"); const MathError = @import("../vm/error.zig").MathError; const HintError = @import("../vm/error.zig").HintError; @@ -55,6 +56,15 @@ pub const Uint256 = struct { pub fn split(comptime T: type, num: T) Self { return Self.init(Felt252.fromInt(T, num & std.math.maxInt(u128)), Felt252.fromInt(T, num >> 128)); } + + pub fn pack(self: Self, allocator: std.mem.Allocator) !Int { + var result = try Int.initSet(allocator, self.high.toInteger()); + errdefer result.deinit(); + + try result.shiftLeft(&result, 128); + try result.addScalar(&result, self.low.toInteger()); + return result; + } // converting self to biguint value // optimize by using biguint // right now using u512, so to not use allocator with big int diff --git a/src/hint_processor/uint384.zig b/src/hint_processor/uint384.zig new file mode 100644 index 00000000..ee0d74b2 --- /dev/null +++ b/src/hint_processor/uint384.zig @@ -0,0 +1,785 @@ +const hint_utils = @import("hint_utils.zig"); +const std = @import("std"); +const CairoVM = @import("../vm/core.zig").CairoVM; +const HintReference = @import("hint_processor_def.zig").HintReference; +const HintProcessor = @import("hint_processor_def.zig").CairoVMHintProcessor; +const testing_utils = @import("testing_utils.zig"); +const Felt252 = @import("../math/fields/starknet.zig").Felt252; +const hint_codes = @import("builtin_hint_codes.zig"); +const Relocatable = @import("../vm/memory/relocatable.zig").Relocatable; +const MaybeRelocatable = @import("../vm/memory/relocatable.zig").MaybeRelocatable; +const ApTracking = @import("../vm/types/programjson.zig").ApTracking; +const HintData = @import("hint_processor_def.zig").HintData; +const ExecutionScopes = @import("../vm/types/execution_scopes.zig").ExecutionScopes; +const HintType = @import("../vm/types/execution_scopes.zig").HintType; + +const helper = @import("../math/fields/helper.zig"); +const MathError = @import("../vm/error.zig").MathError; +const HintError = @import("../vm/error.zig").HintError; +const CairoVMError = @import("../vm/error.zig").CairoVMError; + +const bigint_utils = @import("builtin_hint_processor/secp/bigint_utils.zig"); + +const Uint384 = bigint_utils.Uint384; +const Uint768 = bigint_utils.Uint768; +const Int = @import("std").math.big.int.Managed; + +// Implements Hint: +// %{ +// def split(num: int, num_bits_shift: int, length: int): +// a = [] +// for _ in range(length): +// a.append( num & ((1 << num_bits_shift) - 1) ) +// num = num >> num_bits_shift +// return tuple(a) + +// def pack(z, num_bits_shift: int) -> int: +// limbs = (z.d0, z.d1, z.d2) +// return sum(limb << (num_bits_shift * i) for i, limb in enumerate(limbs)) + +// a = pack(ids.a, num_bits_shift = 128) +// div = pack(ids.div, num_bits_shift = 128) +// quotient, remainder = divmod(a, div) + +// quotient_split = split(quotient, num_bits_shift=128, length=3) +// assert len(quotient_split) == 3 + +// ids.quotient.d0 = quotient_split[0] +// ids.quotient.d1 = quotient_split[1] +// ids.quotient.d2 = quotient_split[2] + +// remainder_split = split(remainder, num_bits_shift=128, length=3) +// ids.remainder.d0 = remainder_split[0] +// ids.remainder.d1 = remainder_split[1] +// ids.remainder.d2 = remainder_split[2] +// %} +pub fn uint384UnsignedDivRem( + allocator: std.mem.Allocator, + vm: *CairoVM, + ids_data: std.StringHashMap(HintReference), + ap_tracking: ApTracking, +) !void { + var a = try (try Uint384.fromVarName("a", vm, ids_data, ap_tracking)).pack(allocator); + defer a.deinit(); + var div = try (try Uint384.fromVarName("div", vm, ids_data, ap_tracking)).pack(allocator); + defer div.deinit(); + + if (div.eqlZero()) { + return MathError.DividedByZero; + } + + var quotient = try Int.init(allocator); + defer quotient.deinit(); + var remainder = try Int.init(allocator); + defer remainder.deinit(); + + try quotient.divFloor(&remainder, &a, &div); + + const quotient_split = try Uint384.split(allocator, quotient); + try quotient_split.insertFromVarName(allocator, "quotient", vm, ids_data, ap_tracking); + + const remainder_split = try Uint384.split(allocator, remainder); + try remainder_split.insertFromVarName(allocator, "remainder", vm, ids_data, ap_tracking); +} + +// Implements Hint: +// %{ +// ids.low = ids.a & ((1<<128) - 1) +// ids.high = ids.a >> 128 +// %} +pub fn uint384Split128( + allocator: std.mem.Allocator, + vm: *CairoVM, + ids_data: std.StringHashMap(HintReference), + ap_tracking: ApTracking, +) !void { + const bound = Felt252.pow2Const(128); + const a = try hint_utils.getIntegerFromVarName("a", vm, ids_data, ap_tracking); + + const high_low = try a.divRem(bound); + + try hint_utils.insertValueFromVarName(allocator, "low", MaybeRelocatable.fromFelt(high_low.r), vm, ids_data, ap_tracking); + try hint_utils.insertValueFromVarName(allocator, "high", MaybeRelocatable.fromFelt(high_low.q), vm, ids_data, ap_tracking); +} + +// Implements Hint: +// %{ +// sum_d0 = ids.a.d0 + ids.b.d0 +// ids.carry_d0 = 1 if sum_d0 >= ids.SHIFT else 0 +// sum_d1 = ids.a.d1 + ids.b.d1 + ids.carry_d0 +// ids.carry_d1 = 1 if sum_d1 >= ids.SHIFT else 0 +// sum_d2 = ids.a.d2 + ids.b.d2 + ids.carry_d1 +// ids.carry_d2 = 1 if sum_d2 >= ids.SHIFT else 0 +// %} +pub fn addNoUint384Check( + allocator: std.mem.Allocator, + vm: *CairoVM, + ids_data: std.StringHashMap(HintReference), + ap_tracking: ApTracking, + constants: *std.StringHashMap(Felt252), +) !void { + const a = try Uint384.fromVarName("a", vm, ids_data, ap_tracking); + const b = try Uint384.fromVarName("b", vm, ids_data, ap_tracking); + // This hint is not from the cairo commonlib, and its lib can be found under different paths, so we cant rely on a full path name + var shift = try (try hint_utils.getConstantFromVarName("SHIFT", constants)).toSignedBigInt(allocator); + defer shift.deinit(); + + var tmp = try Int.init(allocator); + defer tmp.deinit(); + var tmp2 = try Int.init(allocator); + defer tmp2.deinit(); + var tmp3 = try Int.init(allocator); + defer tmp3.deinit(); + + var buffer: [20]u8 = undefined; + + inline for (0..3) |i| { + try tmp.set(a.limbs[i].toSignedInt()); + try tmp2.set(b.limbs[i].toSignedInt()); + + try tmp3.add(&tmp, &tmp2); + + const result = if (tmp3.order(shift) == .gt or tmp3.order(shift) == .eq) + Felt252.one() + else + Felt252.zero(); + + try hint_utils.insertValueFromVarName( + allocator, + try std.fmt.bufPrint(buffer[0..], "carry_d{d}", .{i}), + MaybeRelocatable.fromFelt(result), + vm, + ids_data, + ap_tracking, + ); + } +} + +// Implements Hint +// %{ +// from starkware.python.math_utils import isqrt + +// def split(num: int, num_bits_shift: int, length: int): +// a = [] +// for _ in range(length): +// a.append( num & ((1 << num_bits_shift) - 1) ) +// num = num >> num_bits_shift +// return tuple(a) + +// def pack(z, num_bits_shift: int) -> int: +// limbs = (z.d0, z.d1, z.d2) +// return sum(limb << (num_bits_shift * i) for i, limb in enumerate(limbs)) + +// a = pack(ids.a, num_bits_shift=128) +// root = isqrt(a) +// assert 0 <= root < 2 ** 192 +// root_split = split(root, num_bits_shift=128, length=3) +// ids.root.d0 = root_split[0] +// ids.root.d1 = root_split[1] +// ids.root.d2 = root_split[2] +// %} +pub fn uint384Sqrt( + allocator: std.mem.Allocator, + vm: *CairoVM, + ids_data: std.StringHashMap(HintReference), + ap_tracking: ApTracking, +) !void { + var a = try (try Uint384.fromVarName("a", vm, ids_data, ap_tracking)).pack(allocator); + defer a.deinit(); + + try a.sqrt(&a); + + if (a.eqlZero() or a.bitCountAbs() > 192) { + return HintError.AssertionFailed; + } + + const root_split = try Uint384.split(allocator, a); + + try root_split.insertFromVarName(allocator, "root", vm, ids_data, ap_tracking); +} + +// Implements Hint: +// memory[ap] = 1 if 0 <= (ids.a.d2 % PRIME) < 2 ** 127 else 0 +pub fn uint384SignedNn( + allocator: std.mem.Allocator, + vm: *CairoVM, + ids_data: std.StringHashMap(HintReference), + ap_tracking: ApTracking, +) !void { + const a_addr = try hint_utils.getRelocatableFromVarName("a", vm, ids_data, ap_tracking); + + const a_d2 = vm.getFelt(try a_addr.addUint(2)) catch return HintError.IdentifierHasNoMember; + + try hint_utils.insertValueIntoAp(allocator, vm, if (a_d2.numBits() <= 127) MaybeRelocatable.fromInt(u8, 1) else MaybeRelocatable.fromInt(u8, 0)); +} + +// Implements Hint: +// %{ +// def split(num: int, num_bits_shift: int, length: int): +// a = [] +// for _ in range(length): +// a.append( num & ((1 << num_bits_shift) - 1) ) +// num = num >> num_bits_shift +// return tuple(a) + +// def pack(z, num_bits_shift: int) -> int: +// limbs = (z.d0, z.d1, z.d2) +// return sum(limb << (num_bits_shift * i) for i, limb in enumerate(limbs)) + +// a = pack(ids.a, num_bits_shift = 128) +// b = pack(ids.b, num_bits_shift = 128) +// p = pack(ids.p, num_bits_shift = 128) + +// res = (a - b) % p + +// res_split = split(res, num_bits_shift=128, length=3) + +// ids.res.d0 = res_split[0] +// ids.res.d1 = res_split[1] +// ids.res.d2 = res_split[2] +// %} +pub fn subReducedAAndReducedB( + allocator: std.mem.Allocator, + vm: *CairoVM, + ids_data: std.StringHashMap(HintReference), + ap_tracking: ApTracking, +) !void { + var a = try (try Uint384.fromVarName("a", vm, ids_data, ap_tracking)).pack(allocator); + defer a.deinit(); + var b = try (try Uint384.fromVarName("b", vm, ids_data, ap_tracking)).pack(allocator); + defer b.deinit(); + var p = try (try Uint384.fromVarName("p", vm, ids_data, ap_tracking)).pack(allocator); + defer p.deinit(); + + var tmp = try Int.init(allocator); + defer tmp.deinit(); + var tmp2 = try Int.init(allocator); + defer tmp2.deinit(); + + if (a.order(b) == .gt) { + try tmp.sub(&a, &b); + try tmp2.divFloor(&tmp, &tmp, &p); + } else { + try tmp.sub(&b, &a); + try tmp.sub(&p, &tmp); + try tmp2.divFloor(&tmp, &tmp, &p); + } + + const res_split = try Uint384.split(allocator, tmp); + + try res_split.insertFromVarName(allocator, "res", vm, ids_data, ap_tracking); +} + +// Implements Hint: +// %{ +// def split(num: int, num_bits_shift: int, length: int): +// a = [] +// for _ in range(length): +// a.append( num & ((1 << num_bits_shift) - 1) ) +// num = num >> num_bits_shift +// return tuple(a) + +// def pack(z, num_bits_shift: int) -> int: +// limbs = (z.d0, z.d1, z.d2) +// return sum(limb << (num_bits_shift * i) for i, limb in enumerate(limbs)) + +// def pack_extended(z, num_bits_shift: int) -> int: +// limbs = (z.d0, z.d1, z.d2, z.d3, z.d4, z.d5) +// return sum(limb << (num_bits_shift * i) for i, limb in enumerate(limbs)) + +// a = pack_extended(ids.a, num_bits_shift = 128) +// div = pack(ids.div, num_bits_shift = 128) + +// quotient, remainder = divmod(a, div) + +// quotient_split = split(quotient, num_bits_shift=128, length=6) + +// ids.quotient.d0 = quotient_split[0] +// ids.quotient.d1 = quotient_split[1] +// ids.quotient.d2 = quotient_split[2] +// ids.quotient.d3 = quotient_split[3] +// ids.quotient.d4 = quotient_split[4] +// ids.quotient.d5 = quotient_split[5] + +// remainder_split = split(remainder, num_bits_shift=128, length=3) +// ids.remainder.d0 = remainder_split[0] +// ids.remainder.d1 = remainder_split[1] +// ids.remainder.d2 = remainder_split[2] +// %} +pub fn unsignedDivRemUint768ByUint384( + allocator: std.mem.Allocator, + vm: *CairoVM, + ids_data: std.StringHashMap(HintReference), + ap_tracking: ApTracking, +) !void { + var a = try (try Uint768.fromVarName("a", vm, ids_data, ap_tracking)).pack(allocator); + defer a.deinit(); + + var div = try (try Uint384.fromVarName("div", vm, ids_data, ap_tracking)).pack(allocator); + defer div.deinit(); + + if (div.eqlZero()) { + return MathError.DividedByZero; + } + + var quotient = try Int.init(allocator); + defer quotient.deinit(); + var remainder = try Int.init(allocator); + defer remainder.deinit(); + + try quotient.divFloor(&remainder, &a, &div); + + const quotient_split = try Uint768.split(allocator, quotient); + try quotient_split.insertFromVarName(allocator, "quotient", vm, ids_data, ap_tracking); + + const remainder_split = try Uint384.split(allocator, remainder); + try remainder_split.insertFromVarName(allocator, "remainder", vm, ids_data, ap_tracking); +} + +test "Uint384: runUnsignedDivRemOk" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 10; + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData(std.testing.allocator, &.{ + .{ "a", -9 }, .{ "div", -6 }, .{ "quotient", -3 }, .{ "remainder", 0 }, + }); + defer ids_data.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 1 }, .{83434123481193248} }, + .{ .{ 1, 2 }, .{82349321849739284} }, + .{ .{ 1, 3 }, .{839243219401320423} }, + .{ .{ 1, 4 }, .{9283430921839492319493} }, + .{ .{ 1, 5 }, .{313248123482483248} }, + .{ .{ 1, 6 }, .{3790328402913840} }, + }); + + try testing_utils.runHint(std.testing.allocator, &vm, ids_data, hint_codes.UINT384_UNSIGNED_DIV_REM, undefined, undefined); + + try testing_utils.checkMemory(vm.segments.memory, .{ + .{ .{ 1, 7 }, .{221} }, + .{ .{ 1, 8 }, .{0} }, + .{ .{ 1, 9 }, .{0} }, + .{ .{ 1, 10 }, .{340282366920936411825224315027446796751} }, + .{ .{ 1, 11 }, .{340282366920938463394229121463989152931} }, + .{ .{ 1, 12 }, .{1580642357361782} }, + }); +} + +test "Uint384: runUnsignedDivRem divide by zero" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 10; + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData(std.testing.allocator, &.{ + .{ "a", -9 }, .{ "div", -6 }, .{ "quotient", -3 }, .{ "remainder", 0 }, + }); + defer ids_data.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 1 }, .{83434123481193248} }, + .{ .{ 1, 2 }, .{82349321849739284} }, + .{ .{ 1, 3 }, .{839243219401320423} }, + .{ .{ 1, 4 }, .{0} }, + .{ .{ 1, 5 }, .{0} }, + .{ .{ 1, 6 }, .{0} }, + }); + + try std.testing.expectError( + MathError.DividedByZero, + testing_utils.runHint( + std.testing.allocator, + &vm, + ids_data, + hint_codes.UINT384_UNSIGNED_DIV_REM, + undefined, + undefined, + ), + ); +} + +test "Uint384: runSplit128 ok" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 3; + + var ids_data = try testing_utils.setupIdsForTestWithoutMemory(std.testing.allocator, &.{ + "a", "low", "high", + }); + defer ids_data.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{34895349583295832495320945304} }, + }); + + try testing_utils.runHint(std.testing.allocator, &vm, ids_data, hint_codes.UINT384_SPLIT_128, undefined, undefined); + + try testing_utils.checkMemory(vm.segments.memory, .{ + .{ .{ 1, 1 }, .{34895349583295832495320945304} }, + .{ .{ 1, 2 }, .{0} }, + }); +} + +test "Uint384: runSplit128 ok big number" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 3; + + var ids_data = try testing_utils.setupIdsForTestWithoutMemory(std.testing.allocator, &.{ + "a", "low", "high", + }); + defer ids_data.deinit(); + + inline for (0..2) |_| _ = try vm.segments.addSegment(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{std.math.maxInt(u128) * 20} }, + }); + + try testing_utils.runHint(std.testing.allocator, &vm, ids_data, hint_codes.UINT384_SPLIT_128, undefined, undefined); + + try testing_utils.checkMemory(vm.segments.memory, .{ + .{ .{ 1, 1 }, .{340282366920938463463374607431768211436} }, + .{ .{ 1, 2 }, .{19} }, + }); +} + +test "Uint384: run addNoCheck ok" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 10; + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData(std.testing.allocator, &.{ + .{ "a", -10 }, .{ "b", -7 }, .{ "carry_d0", -4 }, + .{ "carry_d1", -3 }, .{ "carry_d2", -2 }, + }); + defer ids_data.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{3789423292314891293} }, + .{ .{ 1, 1 }, .{21894} }, + .{ .{ 1, 2 }, .{340282366920938463463374607431768211455} }, + .{ .{ 1, 3 }, .{32838232} }, + .{ .{ 1, 4 }, .{17} }, + .{ .{ 1, 5 }, .{8} }, + }); + var constants = std.StringHashMap(Felt252).init(std.testing.allocator); + defer constants.deinit(); + + try constants.put("path.path.path.SHIFT", Felt252.pow2Const(128)); + + try testing_utils.runHint(std.testing.allocator, &vm, ids_data, hint_codes.ADD_NO_UINT384_CHECK, &constants, undefined); + + try testing_utils.checkMemory(vm.segments.memory, .{ + .{ .{ 1, 6 }, .{0} }, + .{ .{ 1, 7 }, .{0} }, + .{ .{ 1, 8 }, .{1} }, + }); +} + +test "Uint384: sqrt ok" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 5; + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData(std.testing.allocator, &.{ + .{ "a", -5 }, .{ "root", -2 }, + }); + defer ids_data.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{83434123481193248} }, + .{ .{ 1, 1 }, .{82349321849739284} }, + .{ .{ 1, 2 }, .{839243219401320423} }, + }); + + try testing_utils.runHint(std.testing.allocator, &vm, ids_data, hint_codes.UINT384_SQRT, undefined, undefined); + + try testing_utils.checkMemory(vm.segments.memory, .{ + .{ .{ 1, 3 }, .{100835122758113432298839930225328621183} }, + .{ .{ 1, 4 }, .{916102188} }, + .{ .{ 1, 5 }, .{0} }, + }); +} + +test "Uint384: sqrt assertetion failed" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 5; + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData(std.testing.allocator, &.{ + .{ "a", -5 }, .{ "root", -2 }, + }); + defer ids_data.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{-1} }, + .{ .{ 1, 1 }, .{-1} }, + .{ .{ 1, 2 }, .{-1} }, + }); + + try std.testing.expectError( + HintError.AssertionFailed, + testing_utils.runHint( + std.testing.allocator, + &vm, + ids_data, + hint_codes.UINT384_SQRT, + undefined, + undefined, + ), + ); +} + +test "Uint384: signedNn ok positive" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 3; + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData(std.testing.allocator, &.{ + .{ "a", -2 }, + }); + defer ids_data.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 3 }, .{1} }, + }); + + try testing_utils.runHint(std.testing.allocator, &vm, ids_data, hint_codes.UINT384_SIGNED_NN, undefined, undefined); + + try testing_utils.checkMemory(vm.segments.memory, .{ + .{ .{ 1, 0 }, .{1} }, + }); +} + +test "Uint384: signedNn ok missing identifier" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 3; + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData(std.testing.allocator, &.{ + .{ "a", -2 }, + }); + defer ids_data.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 1 }, .{1} }, + .{ .{ 1, 2 }, .{1} }, + }); + + try std.testing.expectError( + HintError.IdentifierHasNoMember, + testing_utils.runHint( + std.testing.allocator, + &vm, + ids_data, + hint_codes.UINT384_SIGNED_NN, + undefined, + undefined, + ), + ); +} + +test "Uint384: signedNn ok negative" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 3; + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData(std.testing.allocator, &.{ + .{ "a", -2 }, + }); + defer ids_data.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 3 }, .{170141183460469231731687303715884105729} }, + }); + + try testing_utils.runHint(std.testing.allocator, &vm, ids_data, hint_codes.UINT384_SIGNED_NN, undefined, undefined); + + try testing_utils.checkMemory(vm.segments.memory, .{ + .{ .{ 1, 0 }, .{0} }, + }); +} + +test "Uint384: subAsubB ok a max" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 10; + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData(std.testing.allocator, &.{ + .{ "a", -10 }, + .{ "b", -7 }, + .{ "p", -4 }, + .{ "res", -1 }, + }); + defer ids_data.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{6} }, + .{ .{ 1, 1 }, .{6} }, + .{ .{ 1, 2 }, .{6} }, + .{ .{ 1, 3 }, .{1} }, + .{ .{ 1, 4 }, .{1} }, + .{ .{ 1, 5 }, .{1} }, + .{ .{ 1, 6 }, .{7} }, + .{ .{ 1, 7 }, .{7} }, + .{ .{ 1, 8 }, .{7} }, + }); + + try testing_utils.runHint( + std.testing.allocator, + &vm, + ids_data, + hint_codes.SUB_REDUCED_A_AND_REDUCED_B, + undefined, + undefined, + ); + + try testing_utils.checkMemory(vm.segments.memory, .{ + .{ .{ 1, 9 }, .{5} }, + .{ .{ 1, 10 }, .{5} }, + .{ .{ 1, 11 }, .{5} }, + }); +} + +test "Uint384: subAsubB ok b max" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 10; + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData(std.testing.allocator, &.{ + .{ "a", -10 }, + .{ "b", -7 }, + .{ "p", -4 }, + .{ "res", -1 }, + }); + defer ids_data.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{3} }, + .{ .{ 1, 1 }, .{3} }, + .{ .{ 1, 2 }, .{3} }, + .{ .{ 1, 3 }, .{5} }, + .{ .{ 1, 4 }, .{5} }, + .{ .{ 1, 5 }, .{5} }, + .{ .{ 1, 6 }, .{7} }, + .{ .{ 1, 7 }, .{7} }, + .{ .{ 1, 8 }, .{7} }, + }); + + try testing_utils.runHint( + std.testing.allocator, + &vm, + ids_data, + hint_codes.SUB_REDUCED_A_AND_REDUCED_B, + undefined, + undefined, + ); + + try testing_utils.checkMemory(vm.segments.memory, .{ + .{ .{ 1, 9 }, .{5} }, + .{ .{ 1, 10 }, .{5} }, + .{ .{ 1, 11 }, .{5} }, + }); +} + +test "Uint384: runUnsignedDivRem784 ok" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 17; + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData(std.testing.allocator, &.{ + .{ "a", -17 }, .{ "div", -11 }, .{ "quotient", -8 }, .{ "remainder", -2 }, + }); + defer ids_data.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{1} }, + .{ .{ 1, 1 }, .{2} }, + .{ .{ 1, 2 }, .{3} }, + .{ .{ 1, 3 }, .{4} }, + .{ .{ 1, 4 }, .{5} }, + .{ .{ 1, 5 }, .{6} }, + .{ .{ 1, 6 }, .{6} }, + .{ .{ 1, 7 }, .{7} }, + .{ .{ 1, 8 }, .{8} }, + }); + + try testing_utils.runHint(std.testing.allocator, &vm, ids_data, hint_codes.UNSIGNED_DIV_REM_UINT768_BY_UINT384, undefined, undefined); + + try testing_utils.checkMemory(vm.segments.memory, .{ + .{ .{ 1, 9 }, .{328319314958874220607240343889245110272} }, + .{ .{ 1, 10 }, .{329648542954659136480144150949525454847} }, + .{ .{ 1, 11 }, .{255211775190703847597530955573826158591} }, + .{ .{ 1, 12 }, .{0} }, + .{ .{ 1, 13 }, .{0} }, + .{ .{ 1, 14 }, .{0} }, + .{ .{ 1, 15 }, .{71778311772385457136805581255138607105} }, + .{ .{ 1, 16 }, .{147544307532125661892322583691118247938} }, + .{ .{ 1, 17 }, .{3} }, + }); +} + +test "Uint384: runUnsignedDivRem784 divide by zero" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + vm.run_context.fp.* = 17; + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData(std.testing.allocator, &.{ + .{ "a", -17 }, .{ "div", -11 }, .{ "quotient", -8 }, .{ "remainder", -2 }, + }); + defer ids_data.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 0 }, .{1} }, + .{ .{ 1, 1 }, .{2} }, + .{ .{ 1, 2 }, .{3} }, + .{ .{ 1, 3 }, .{4} }, + .{ .{ 1, 4 }, .{5} }, + .{ .{ 1, 5 }, .{6} }, + .{ .{ 1, 6 }, .{0} }, + .{ .{ 1, 7 }, .{0} }, + .{ .{ 1, 8 }, .{0} }, + }); + + try std.testing.expectError( + MathError.DividedByZero, + testing_utils.runHint( + std.testing.allocator, + &vm, + ids_data, + hint_codes.UNSIGNED_DIV_REM_UINT768_BY_UINT384, + undefined, + undefined, + ), + ); +} diff --git a/src/hint_processor/uint_utils.zig b/src/hint_processor/uint_utils.zig index 1dd312f9..4751b324 100644 --- a/src/hint_processor/uint_utils.zig +++ b/src/hint_processor/uint_utils.zig @@ -1,58 +1,54 @@ const std = @import("std"); const Felt252 = @import("../math/fields/starknet.zig").Felt252; -const Int = std.math.big.int.Managed; +const fromBigInt = @import("../math/fields/starknet.zig").fromBigInt; +const Int = @import("std").math.big.int.Managed; const testing = std.testing; pub fn split(allocator: std.mem.Allocator, num: Int, comptime N: usize, num_bits_shift: usize) ![N]Felt252 { - var one = try Int.initSet(allocator, 1); - defer one.deinit(); var temp_num: Int = try num.clone(); defer temp_num.deinit(); var bitmask = try Int.initSet(allocator, 1); defer bitmask.deinit(); + try bitmask.shiftLeft(&bitmask, num_bits_shift); - try bitmask.sub(&bitmask, &one); + try bitmask.addScalar(&bitmask, -1); var shifted = try Int.init(allocator); defer shifted.deinit(); var result: [N]Felt252 = undefined; + for (&result) |*r| { try shifted.bitAnd(&temp_num, &bitmask); - r.* = Felt252.fromInt(u256, try shifted.to(u256)); - try temp_num.shiftRight(&temp_num, num_bits_shift); + // TODO: bug in zig with shift more than 64, when new zig build will be avaialable with this commit 7cc0e6d4cd5d699d5377cf47ee27a2e089d046bf + for (0..num_bits_shift / 64) |_| + try temp_num.shiftRight(&temp_num, 63); + try temp_num.shiftRight(&temp_num, num_bits_shift % 63); + + r.* = try fromBigInt(allocator, shifted); } return result; } pub fn pack(allocator: std.mem.Allocator, comptime N: usize, limbs: [N]Felt252, num_bits_shift: usize) !Int { var result = try Int.init(allocator); + errdefer result.deinit(); + var tmp = try Int.init(allocator); + defer tmp.deinit(); for (0..N) |i| { - var limb_to_uint = try Int.initSet(allocator, limbs[i].toInteger()); - defer limb_to_uint.deinit(); - try limb_to_uint.shiftLeft(&limb_to_uint, num_bits_shift * i); - try result.add(&result, &limb_to_uint); - } - return result; -} -test "split64 with uint utils" { - var num = try Int.initSet(testing.allocator, 850981239023189021389081239089023); - defer num.deinit(); - const limbs = try split(testing.allocator, num, 2, 64); + try tmp.set(limbs[i].toInteger()); - try std.testing.expectEqualSlices(Felt252, &[2]Felt252{ Felt252.fromInt(u64, 7249717543555297151), Felt252.fromInt(u64, 46131785404667) }, &limbs); -} + try tmp.shiftLeft(&tmp, num_bits_shift * i); -test "u384 split128 with uint utils" { - var num = try Int.initSet(testing.allocator, 6805647338418769269267492148635364229100); - defer num.deinit(); - const limbs = try split(testing.allocator, num, 2, 128); - try std.testing.expectEqualSlices(Felt252, &[2]Felt252{ Felt252.fromInt(u128, 340282366920938463463374607431768211436), Felt252.fromInt(u128, 19) }, &limbs); + try result.add(&result, &tmp); + } + + return result; } -test "pack 64 with uint utils" { +test "UintUtils: pack 64 with uint utils" { const limbs = [2]Felt252{ Felt252.fromInt(u64, 7249717543555297151), Felt252.fromInt(u64, 46131785404667) }; var num = try pack(testing.allocator, 2, limbs, 64); defer num.deinit(); @@ -61,7 +57,7 @@ test "pack 64 with uint utils" { try std.testing.expectEqualSlices(usize, expected.limbs, num.limbs); } -test "pack 128 with uint utils" { +test "UintUtils: pack 128 with uint utils" { const limbs = [2]Felt252{ Felt252.fromInt(u128, 59784002098951797857788619418398833806), Felt252.fromInt(u128, 1) }; var num = try pack(testing.allocator, 2, limbs, 128); defer num.deinit(); diff --git a/src/hint_processor/vrf/inv_mod_p_uint512.zig b/src/hint_processor/vrf/inv_mod_p_uint512.zig new file mode 100644 index 00000000..e93fa40f --- /dev/null +++ b/src/hint_processor/vrf/inv_mod_p_uint512.zig @@ -0,0 +1,137 @@ +const std = @import("std"); +const CairoVM = @import("../../vm/core.zig").CairoVM; +const hint_utils = @import("../hint_utils.zig"); +const HintReference = @import("../hint_processor_def.zig").HintReference; +const HintProcessor = @import("../hint_processor_def.zig").CairoVMHintProcessor; +const testing_utils = @import("../testing_utils.zig"); +const Felt252 = @import("../../math/fields/starknet.zig").Felt252; +const hint_codes = @import("../builtin_hint_codes.zig"); +const Relocatable = @import("../../vm/memory/relocatable.zig").Relocatable; +const MaybeRelocatable = @import("../../vm/memory/relocatable.zig").MaybeRelocatable; +const ApTracking = @import("../../vm/types/programjson.zig").ApTracking; +const HintData = @import("../hint_processor_def.zig").HintData; +const ExecutionScopes = @import("../../vm/types/execution_scopes.zig").ExecutionScopes; +const HintType = @import("../../vm/types/execution_scopes.zig").HintType; + +const helper = @import("../../math/fields/helper.zig"); +const MathError = @import("../../vm/error.zig").MathError; +const HintError = @import("../../vm/error.zig").HintError; +const CairoVMError = @import("../../../vm/error.zig").CairoVMError; + +const bigint_utils = @import("../builtin_hint_processor/secp/bigint_utils.zig"); + +const Uint256 = @import("../uint256_utils.zig").Uint256; +const Uint512 = bigint_utils.Uint512; +const Int = @import("std").math.big.int.Managed; + +const fromBigInt = @import("../../math/fields/starknet.zig").fromBigInt; +const STARKNET_PRIME = @import("../../math/fields/starknet.zig").STARKNET_PRIME; + +// Implements hint: +// %{ +// def pack_512(u, num_bits_shift: int) -> int: +// limbs = (u.d0, u.d1, u.d2, u.d3) +// return sum(limb << (num_bits_shift * i) for i, limb in enumerate(limbs)) + +// x = pack_512(ids.x, num_bits_shift = 128) +// p = ids.p.low + (ids.p.high << 128) +// x_inverse_mod_p = pow(x,-1, p) + +// x_inverse_mod_p_split = (x_inverse_mod_p & ((1 << 128) - 1), x_inverse_mod_p >> 128) + +// ids.x_inverse_mod_p.low = x_inverse_mod_p_split[0] +// ids.x_inverse_mod_p.high = x_inverse_mod_p_split[1] +// %} +pub fn invModPUint512( + allocator: std.mem.Allocator, + vm: *CairoVM, + ids_data: std.StringHashMap(HintReference), + ap_tracking: ApTracking, +) !void { + var x = try (try Uint512.fromVarName("x", vm, ids_data, ap_tracking)).pack(allocator); + defer x.deinit(); + + var p = try (try Uint256.fromVarName("p", vm, ids_data, ap_tracking)).pack(allocator); + defer p.deinit(); + + var one = try Int.initSet(allocator, 1); + defer one.deinit(); + + var x_inverse_mod_p = try helper.divModBigInt(allocator, &one, &x, &p); + defer x_inverse_mod_p.deinit(); + + var x_inverse_mod_p_felt = try fromBigInt(allocator, x_inverse_mod_p); + if (!x_inverse_mod_p.isPositive()) + x_inverse_mod_p_felt = x_inverse_mod_p_felt.neg(); + + try Uint256.fromFelt(x_inverse_mod_p_felt).insertFromVarName(allocator, "x_inverse_mod_p", vm, ids_data, ap_tracking); +} + +test "Uint512: pack 512" { + var valu512 = try Uint512.fromValues(.{ + Felt252.fromInt(u64, 13123), + Felt252.fromInt(u64, 534354), + Felt252.fromInt(u64, 9901823), + Felt252.fromInt(u64, 7812371), + }).pack(std.testing.allocator); + defer valu512.deinit(); + + var val = try Int.initSet(std.testing.allocator, 307823090550532533958111616786199064327151160536573522012843486812312234767517005952120863393832102810613083123402814796611); + defer val.deinit(); + + try std.testing.expect(valu512.eql(val)); + + var valu512_2 = try Uint512.fromValues(.{ + Felt252.fromInt(u64, 90812398), + Felt252.fromInt(u64, 55), + Felt252.fromInt(u64, 83127), + Felt252.fromInt(u64, 45312309123), + }).pack(std.testing.allocator); + defer valu512_2.deinit(); + + var val_2 = try Int.initSet(std.testing.allocator, 1785395884837388090117385402351420305430103423113021825538726783888669416377532493875431795584456624829488631993250169127284718); + defer val_2.deinit(); + + try std.testing.expect(valu512_2.eql(val_2)); +} + +test "Uint512: invModPUint512 ok" { + var vm = try testing_utils.initVMWithRangeCheck(std.testing.allocator); + defer vm.deinit(); + defer vm.segments.memory.deinitData(std.testing.allocator); + + inline for (0..3) |_| _ = try vm.segments.addSegment(); + + vm.run_context.fp.* = 25; + + var ids_data = try testing_utils.setupIdsNonContinuousIdsData(std.testing.allocator, &.{ + .{ "x", -5 }, .{ "p", -10 }, .{ "x_inverse_mod_p", -20 }, + }); + defer ids_data.deinit(); + + try vm.segments.memory.setUpMemory(std.testing.allocator, .{ + .{ .{ 1, 20 }, .{101} }, //ids.x.d0 + .{ .{ 1, 21 }, .{2} }, // ids.x.d1 + .{ .{ 1, 22 }, .{15} }, // ids.x.d2 + .{ .{ 1, 23 }, .{61} }, // ids.x.d3 + .{ .{ 1, 15 }, .{201385395114098847380338600778089168199} }, // ids.p.low + .{ .{ 1, 16 }, .{64323764613183177041862057485226039389} }, // ids.p.high + }); + + var exec_scopes = try ExecutionScopes.init(std.testing.allocator); + defer exec_scopes.deinit(); + + try testing_utils.runHint( + std.testing.allocator, + &vm, + ids_data, + hint_codes.INV_MOD_P_UINT512, + undefined, + &exec_scopes, + ); + + try testing_utils.checkMemory(vm.segments.memory, .{ + .{ .{ 1, 5 }, .{80275402838848031859800366538378848249} }, + .{ .{ 1, 6 }, .{5810892639608724280512701676461676039} }, + }); +} diff --git a/src/integration_tests.zig b/src/integration_tests.zig index 1f0381e0..d6ce79a5 100644 --- a/src/integration_tests.zig +++ b/src/integration_tests.zig @@ -23,18 +23,17 @@ pub fn main() void { .{ .pathname = "cairo_programs/assert_le_felt_old_compiled.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/assert_nn_compiled.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/assert_not_zero_compiled.json", .layout = "all_cairo" }, - // TODO: merge bigint hint + // TODO field utils hint not implemented // .{ .pathname = "cairo_programs/bigint_compiled.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/big_struct_compiled.json", .layout = "all_cairo" }, - // TODO: not implemented hint + .{ .pathname = "cairo_programs/bitand_hint_compiled.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/bitwise_output_compiled.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/bitwise_builtin_test.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/bitwise_recursion_compiled.json", .layout = "all_cairo" }, - // TODO: merge blake hint - // .{ .pathname = "cairo_programs/blake2s_felts.json", .layout = "all_cairo" }, - // .{ .pathname = "cairo_programs/blake2s_hello_world_hash.json", .layout = "all_cairo" }, - // .{ .pathname = "cairo_programs/blake2s_integration_tests.json", .layout = "all_cairo" }, + .{ .pathname = "cairo_programs/blake2s_felts.json", .layout = "all_cairo" }, + .{ .pathname = "cairo_programs/blake2s_hello_world_hash.json", .layout = "all_cairo" }, + .{ .pathname = "cairo_programs/blake2s_integration_tests.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/cairo_finalize_keccak_compiled.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/cairo_finalize_keccak_block_size_1000.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/call_function_assign_param_by_name.json", .layout = "all_cairo" }, @@ -79,17 +78,17 @@ pub fn main() void { // .{ .pathname = "cairo_programs/example_blake2s.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/example_program.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/factorial.json", .layout = "plain" }, + // TODO: HintNotImplemented error // .{ .pathname = "cairo_programs/fast_ec_add_v2.json", .layout = "all_cairo" }, // TODO: HintNotImplemented error // .{ .pathname = "cairo_programs/fast_ec_add_v3.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/fibonacci.json", .layout = "plain" }, - // TODO: HintNotImplemented error uint384 hint + // TODO: HintNotImplemented error secp signature hint // .{ .pathname = "cairo_programs/field_arithmetic.json", .layout = "all_cairo" }, - // TODO: merge blake hint - // .{ .pathname = "cairo_programs/finalize_blake2s.json", .layout = "all_cairo" }, - // TODO: merge blake hint - // .{ .pathname = "cairo_programs/finalize_blake2s_v2_hint.json", .layout = "all_cairo" }, + + .{ .pathname = "cairo_programs/finalize_blake2s.json", .layout = "all_cairo" }, + .{ .pathname = "cairo_programs/finalize_blake2s_v2_hint.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/find_element.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/fq.json", .layout = "all_cairo" }, // TODO: Hint not implemented error @@ -98,7 +97,7 @@ pub fn main() void { .{ .pathname = "cairo_programs/function_return_if_print.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/function_return_to_variable.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/garaga.json", .layout = "all_cairo" }, - // TODO: hint not implemented (BigInt) error + // TODO: hint not implemented fq error // .{ .pathname = "cairo_programs/highest_bitlen.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/if_and_prime.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/if_in_function.json", .layout = "all_cairo" }, @@ -106,8 +105,7 @@ pub fn main() void { .{ .pathname = "cairo_programs/if_reloc_equal.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/integration_with_alloc_locals.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/integration.json", .layout = "all_cairo" }, - // TODO: not implemented hint - // .{ .pathname = "cairo_programs/inv_mod_p_uint512.json", .layout = "all_cairo" }, + .{ .pathname = "cairo_programs/inv_mod_p_uint512.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/is_quad_residue_test.json", .layout = "all_cairo" }, @@ -125,6 +123,12 @@ pub fn main() void { .{ .pathname = "cairo_programs/keccak.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/keccak_compiled.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/keccak_builtin.json", .layout = "all_cairo" }, + // .{ .pathname = "cairo_programs/keccak_integration_tests.json", .layout = "all_cairo" }, + // .{ .pathname = "cairo_programs/keccak_copy_inputs.json", .layout = "all_cairo" }, + .{ .pathname = "cairo_programs/print_features/print_array.json", .layout = "all_cairo" }, + .{ .pathname = "cairo_programs/print_features/print_felt.json", .layout = "all_cairo" }, + .{ .pathname = "cairo_programs/print_features/print_dict_felt.json", .layout = "all_cairo" }, + .{ .pathname = "cairo_programs/print_features/print_dict_array.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/keccak_integration_tests.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/keccak_copy_inputs.json", .layout = "all_cairo" }, @@ -142,7 +146,7 @@ pub fn main() void { // TODO: hint not implemented ec utils // .{ .pathname = "cairo_programs/n_bit.json", .layout = "all_cairo" }, - // TODO: hint not implemented secp + // TODO: hint not implemented signature secp // .{ .pathname = "cairo_programs/nondet_bigint3_v2.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/normalize_address.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/not_main.json", .layout = "all_cairo" }, @@ -159,8 +163,7 @@ pub fn main() void { .{ .pathname = "cairo_programs/poseidon_hash.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/poseidon_multirun.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/pow.json", .layout = "all_cairo" }, - // TODO: hint not implemented Print - // .{ .pathname = "cairo_programs/print.json", .layout = "all_cairo" }, + .{ .pathname = "cairo_programs/print.json", .layout = "all_cairo" }, // TODO: hint not implemented Ec point // .{ .pathname = "cairo_programs/recover_y.json", .layout = "all_cairo" }, // TODO: hint not implemented ec point @@ -208,15 +211,14 @@ pub fn main() void { .{ .pathname = "cairo_programs/test_reverse_if.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/test_subtraction_if.json", .layout = "all_cairo" }, - //TODO: hint uint384 not implemented - // .{ .pathname = "cairo_programs/uint256_improvements.json", .layout = "all_cairo" }, + .{ .pathname = "cairo_programs/uint256_improvements.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/uint256_integration_tests.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/uint256.json", .layout = "all_cairo" }, - // .{ .pathname = "cairo_programs/uint384_extension_test.json", .layout = "all_cairo" }, - // .{ .pathname = "cairo_programs/uint384_extension.json", .layout = "all_cairo" }, - // .{ .pathname = "cairo_programs/uint384_test.json", .layout = "all_cairo" }, - // .{ .pathname = "cairo_programs/uint384.json", .layout = "all_cairo" }, + .{ .pathname = "cairo_programs/uint384_extension_test.json", .layout = "all_cairo" }, + .{ .pathname = "cairo_programs/uint384_extension.json", .layout = "all_cairo" }, + .{ .pathname = "cairo_programs/uint384_test.json", .layout = "all_cairo" }, + .{ .pathname = "cairo_programs/uint384.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/unsafe_keccak_finalize.json", .layout = "all_cairo" }, .{ .pathname = "cairo_programs/unsafe_keccak.json", .layout = "all_cairo" }, diff --git a/src/lib.zig b/src/lib.zig index 231e09b6..223c51be 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -71,8 +71,13 @@ pub const hint_processor = struct { pub usingnamespace @import("hint_processor/squash_dict_utils.zig"); pub usingnamespace @import("hint_processor/usort.zig"); pub usingnamespace @import("hint_processor/memset_utils.zig"); + pub usingnamespace @import("hint_processor/builtin_hint_processor/secp/bigint_utils.zig"); pub usingnamespace @import("hint_processor/cairo_keccak_hints.zig"); pub usingnamespace @import("hint_processor/math_utils.zig"); + pub usingnamespace @import("hint_processor/blake2s_hash.zig"); + pub usingnamespace @import("hint_processor/blake2s_utils.zig"); + pub usingnamespace @import("hint_processor/uint384.zig"); + pub usingnamespace @import("hint_processor/vrf/inv_mod_p_uint512.zig"); }; pub const parser = struct { diff --git a/src/math/fields/constants.zig b/src/math/fields/constants.zig index 665b1651..bea424f7 100644 --- a/src/math/fields/constants.zig +++ b/src/math/fields/constants.zig @@ -1,2 +1,7 @@ +const Felt252 = @import("starknet.zig").Felt252; +const std = @import("std"); + pub const STARKNET_PRIME = 0x800000000000011000000000000000000000000000000000000000000000001; pub const FELT_BYTE_SIZE = 32; + +pub const BASE = 77371252455336267181195264; diff --git a/src/math/fields/fields.zig b/src/math/fields/fields.zig index 35ee9e49..7d34a213 100644 --- a/src/math/fields/fields.zig +++ b/src/math/fields/fields.zig @@ -6,6 +6,10 @@ const helper = @import("helper.zig"); const tonelliShanks = helper.tonelliShanks; const extendedGCD = helper.extendedGCD; +const fromBigInt = @import("starknet.zig").fromBigInt; + +const Int = std.math.big.int.Managed; + pub const ModSqrtError = error{ InvalidInput, }; @@ -465,7 +469,7 @@ pub fn Field(comptime F: type, comptime modulo: u256) type { } pub fn modInverse(operand: Self, modulus: Self) !Self { - const ext = extendedGCD(@bitCast(operand.toInteger()), @bitCast(modulus.toInteger())); + const ext = extendedGCD(i256, @bitCast(operand.toInteger()), @bitCast(modulus.toInteger())); if (ext.gcd != 1) { @panic("GCD must be one"); @@ -651,6 +655,10 @@ pub fn Field(comptime F: type, comptime modulo: u256) type { return Self.fromInt(u256, @intCast(-value)).neg(); } + pub fn toSignedBigInt(self: Self, allocator: std.mem.Allocator) !std.math.big.int.Managed { + return std.math.big.int.Managed.initSet(allocator, self.toSignedInt()); + } + // converting felt to abs value with sign, in (- FIELD / 2, FIELD / 2 pub fn toSignedInt(self: Self) i256 { const val = self.toInteger(); diff --git a/src/math/fields/helper.zig b/src/math/fields/helper.zig index 041dc365..8cdaa246 100644 --- a/src/math/fields/helper.zig +++ b/src/math/fields/helper.zig @@ -1,4 +1,6 @@ const std = @import("std"); +const MathError = @import("../../vm/error.zig").MathError; +const Int = std.math.big.int.Managed; ///Returns the integer square root of the nonnegative integer n. ///This is the floor of the exact square root of n. @@ -97,16 +99,70 @@ pub fn tonelliShanks(n: u512, p: u512) struct { u512, u512, bool } { return .{ result, p - result, true }; } -pub fn extendedGCD(self: i256, other: i256) struct { gcd: i256, x: i256, y: i256 } { - var s = [_]i256{ 0, 1 }; - var t = [_]i256{ 1, 0 }; - var r = [_]i256{ other, self }; +pub fn extendedGCDBigInt(allocator: std.mem.Allocator, self: *const Int, other: *const Int) !struct { gcd: Int, x: Int, y: Int } { + var arena = std.heap.ArenaAllocator.init(allocator); + defer arena.deinit(); + + var s = [_]Int{ try Int.initSet(arena.allocator(), 0), try Int.initSet(arena.allocator(), 1) }; + var t = [_]Int{ try Int.initSet(arena.allocator(), 1), try Int.initSet(arena.allocator(), 0) }; + var r = [_]Int{ try other.cloneWithDifferentAllocator(arena.allocator()), try self.cloneWithDifferentAllocator(arena.allocator()) }; + + var q_tmp = try Int.init(arena.allocator()); + var r_tmp = try Int.init(arena.allocator()); + + while (!r[0].eqlZero()) { + try q_tmp.divFloor(&r_tmp, &r[1], &r[0]); + + std.mem.swap(Int, &r[0], &r[1]); + std.mem.swap(Int, &s[0], &s[1]); + std.mem.swap(Int, &t[0], &t[1]); + + try r_tmp.mul(&q_tmp, &r[1]); + try r[0].sub(&r[0], &r_tmp); + + try r_tmp.mul(&q_tmp, &s[1]); + try s[0].sub(&s[0], &r_tmp); + + try r_tmp.mul(&q_tmp, &t[1]); + try t[0].sub(&t[0], &r_tmp); + } + + var gcd = try Int.init(allocator); + errdefer gcd.deinit(); + + var x = try Int.init(allocator); + errdefer x.deinit(); + + var y = try Int.init(allocator); + errdefer y.deinit(); + + if (!r[1].isPositive()) { + r[1].negate(); + s[1].negate(); + t[1].negate(); + } + + try gcd.copy(r[1].toConst()); + try x.copy(s[1].toConst()); + try y.copy(t[1].toConst()); + + return .{ + .gcd = gcd, + .x = x, + .y = y, + }; +} + +pub fn extendedGCD(comptime T: type, self: T, other: T) struct { gcd: T, x: T, y: T } { + var s = [_]T{ 0, 1 }; + var t = [_]T{ 1, 0 }; + var r = [_]T{ other, self }; while (r[0] != 0) { const q = @divFloor(r[1], r[0]); - std.mem.swap(i256, &r[0], &r[1]); - std.mem.swap(i256, &s[0], &s[1]); - std.mem.swap(i256, &t[0], &t[1]); + std.mem.swap(T, &r[0], &r[1]); + std.mem.swap(T, &s[0], &s[1]); + std.mem.swap(T, &t[0], &t[1]); r[0] = r[0] - q * r[1]; s[0] = s[0] - q * s[1]; t[0] = t[0] - q * t[1]; @@ -141,3 +197,73 @@ pub fn divRem(comptime T: type, num: T, denominator: T) !struct { T, T } { @rem(num, denominator), }; } + +pub fn divModBigInt(allocator: std.mem.Allocator, n: *const Int, m: *const Int, p: *const Int) !Int { + var tmp = try Int.initSet(allocator, 1); + defer tmp.deinit(); + + var result = try Int.init(allocator); + errdefer result.deinit(); + + var igcdex_result = try extendedGCDBigInt(allocator, m, p); + defer { + igcdex_result.gcd.deinit(); + igcdex_result.x.deinit(); + igcdex_result.y.deinit(); + } + + if (!igcdex_result.gcd.eql(tmp)) { + return MathError.DivModIgcdexNotZero; + } + + try tmp.mul(n, &igcdex_result.x); + try tmp.divFloor(&result, &tmp, p); + + return result; +} + +pub fn divMod(comptime T: type, n: T, m: T, p: T) !T { + const igcdex_result = extendedGCD(T, m, p); + + if (igcdex_result.gcd != 1) { + return MathError.DivModIgcdexNotZero; + } + + return @mod(n * igcdex_result.x, p); +} + +/// Performs integer division between x and y; fails if x is not divisible by y. +pub fn safeDivBigInt(x: i512, y: i512) !i512 { + if (y == 0) { + return MathError.DividedByZero; + } + + const result = try divModFloor(i512, x, y); + + if (result[1] != 0) { + return MathError.SafeDivFailBigInt; + } + + return result[0]; +} + +test "Helper: extendedGCD big" { + const result = extendedGCD(i512, 12452004504504594952858248542859182495912, 20504205040); + + var self = try Int.initSet(std.testing.allocator, 12452004504504594952858248542859182495912); + defer self.deinit(); + + var other = try Int.initSet(std.testing.allocator, 20504205040); + defer other.deinit(); + + var res2 = try extendedGCDBigInt(std.testing.allocator, &self, &other); + defer { + res2.gcd.deinit(); + res2.x.deinit(); + res2.y.deinit(); + } + + try std.testing.expectEqual(result.gcd, try res2.gcd.to(i512)); + try std.testing.expectEqual(result.x, try res2.x.to(i512)); + try std.testing.expectEqual(result.y, try res2.y.to(i512)); +} diff --git a/src/math/fields/starknet.zig b/src/math/fields/starknet.zig index 23c279c0..beb84f5f 100644 --- a/src/math/fields/starknet.zig +++ b/src/math/fields/starknet.zig @@ -2,7 +2,7 @@ const std = @import("std"); // Local imports. const fields = @import("fields.zig"); -const STARKNET_PRIME = @import("./constants.zig").STARKNET_PRIME; +pub const STARKNET_PRIME = @import("./constants.zig").STARKNET_PRIME; const FELT_BYTE_SIZE = @import("./constants.zig").FELT_BYTE_SIZE; const expect = std.testing.expect; const expectEqual = std.testing.expectEqual; @@ -14,6 +14,64 @@ pub const Felt252 = fields.Field( STARKNET_PRIME, ); +pub fn bigIntToBytesLe(allocator: std.mem.Allocator, bigint: std.math.big.int.Managed) ![]u8 { + var buf = try allocator.alloc(u8, @sizeOf(usize) * bigint.len()); + errdefer allocator.free(buf); + + for (0..bigint.len()) |i| + std.mem.writeInt(usize, buf[i * @sizeOf(usize) .. (i + 1) * @sizeOf(usize)][0..@sizeOf(usize)], bigint.limbs[i], .little); + + return buf; +} + +pub fn fromBigInt(allocator: std.mem.Allocator, bigint: std.math.big.int.Managed) !Felt252 { + const bytes = + try bigIntToBytesLe(allocator, bigint); + defer allocator.free(bytes); + + return fromBytesLeSlice(bytes); +} + +/// Creates a new [Felt] from its little-endian representation in a [u8] slice. +/// This is as performant as [from_bytes_be](Felt::from_bytes_be_slice). +/// All bytes in the slice are consumed, as if first creating a big integer +/// from them, but the conversion is performed in constant space on the stack. +pub fn fromBytesLeSlice(bytes: []const u8) Felt252 { + // NB: lambdaworks ignores the remaining bytes when len > 32, so we loop + // multiplying by BASE, effectively decomposing in base 2^256 to build + // digits with a length of 32 bytes. This is analogous to splitting the + // number `xyz` as `x * 10^2 + y * 10^1 + z * 10^0`. + const BASE: Felt252 = .{ .fe = .{ + 18446741271209837569, + 5151653887, + 18446744073700081664, + 576413109808302096, + } }; + // Sanity check; gets removed in release builds. + std.debug.assert(BASE.equal(Felt252.two().pow(256))); + + var factor = Felt252.one(); + var res = Felt252.zero(); + + const chunks = bytes.len / 32; + const remainder = bytes.len % 32; + for (0..chunks) |i| { + const digit = Felt252.fromBytes(bytes[i * 32 .. (i + 1) * 32][0..32].*); + + res = res.add(digit.mul(factor)); + factor = factor.mul(BASE); + } + + if (remainder == 0) return res; + + var buf = [_]u8{0} ** 32; + + std.mem.copyForwards(u8, buf[0..], bytes[chunks * 32 ..]); + + const digit = Felt252.fromBytes(buf); + return res.add(digit.mul(factor)); +} + pub const PRIME_STR = "0x800000000000011000000000000000000000000000000000000000000000001"; test "Felt252: fromU8 should return a field element from a u8" { diff --git a/src/utils/testing.zig b/src/utils/testing.zig index 74e212ec..214bcf7a 100644 --- a/src/utils/testing.zig +++ b/src/utils/testing.zig @@ -4,6 +4,7 @@ const Allocator = std.mem.Allocator; const MemorySegmentManager = @import("../vm/memory/segments.zig").MemorySegmentManager; const MaybeRelocatable = @import("../vm/memory/relocatable.zig").MaybeRelocatable; const Relocatable = @import("../vm/memory/relocatable.zig").Relocatable; +const Memory = @import("../vm/memory/memory.zig").Memory; const MemoryCell = @import("../vm/memory/memory.zig").MemoryCell; pub fn insertAtIndex(memory_manager: *MemorySegmentManager, allocator: Allocator, address: Relocatable, value: MaybeRelocatable) !void { @@ -18,3 +19,24 @@ pub fn insertAtIndex(memory_manager: *MemorySegmentManager, allocator: Allocator try memory_manager.memory.set(allocator, address, value); } + +pub const Cell = struct { address: Relocatable, value: MaybeRelocatable }; + +pub fn check_memory(memory: *Memory, cells: std.ArrayList(Cell)) bool { + for (cells.items) |cell| { + const check = check_memory_address(memory, cell.address, cell.value); + if (!check) { + return check; + } + } + return true; +} + +pub fn check_memory_address(memory: *Memory, address: Relocatable, expected_value: MaybeRelocatable) bool { + const maybe_value = memory.get(address); + if (maybe_value) |value| { + return expected_value.eq(value); + } else { + return false; + } +} diff --git a/src/vm/error.zig b/src/vm/error.zig index dabfe6f4..811a7a2d 100644 --- a/src/vm/error.zig +++ b/src/vm/error.zig @@ -212,7 +212,12 @@ pub const MathError = error{ ByteConversionError, DividedByZero, Felt252ToUsizeConversion, + DivModIgcdexNotZero, + SafeDivFailBigInt, + + SecpSplitOutOfRange, SafeDivFailU32, + Felt252ToU32Conversion, }; /// Represents different error conditions that occur in trace relocation @@ -358,6 +363,8 @@ pub const HintError = error{ /// Occurs when a hint is attempting to be executed that is not yet implemented HintNotImplemented, + + MemoryHasNoValue, }; pub const InsufficientAllocatedCellsError = error{ diff --git a/src/vm/memory/relocatable.zig b/src/vm/memory/relocatable.zig index cb908c29..874d8556 100644 --- a/src/vm/memory/relocatable.zig +++ b/src/vm/memory/relocatable.zig @@ -236,7 +236,7 @@ pub const Relocatable = struct { /// Gets the adjusted segment index for a Relocatable object. /// /// This function returns the adjusted segment index for a given `Relocatable` object. If the - /// `segment_index` is negative, it is adjusted by subtracting one and negating the result. + /// `segment_index` is negative, it is adjusted by adding one and negating the result. /// /// # Arguments /// - `self`: Pointer to the `Relocatable` object. diff --git a/src/vm/runners/cairo_runner.zig b/src/vm/runners/cairo_runner.zig index 0d403877..4816dbfa 100644 --- a/src/vm/runners/cairo_runner.zig +++ b/src/vm/runners/cairo_runner.zig @@ -34,6 +34,7 @@ const starknet_felt = @import("../../math/fields/starknet.zig"); const Felt252 = starknet_felt.Felt252; const ExecutionScopes = @import("../types/execution_scopes.zig").ExecutionScopes; const TraceContext = @import("../trace_context.zig").TraceContext; +const TestingUtils = @import("../../utils/testing.zig"); const OutputBuiltinRunner = @import("../builtins/builtin_runner/output.zig").OutputBuiltinRunner; const BitwiseBuiltinRunner = @import("../builtins/builtin_runner/bitwise.zig").BitwiseBuiltinRunner; @@ -2649,7 +2650,220 @@ test "CairoRunner: initState with no execution_base" { try stack.append(MaybeRelocatable.fromInt(u8, 6)); // Add integer value 6 to the stack. // Expect an error when trying to initialize the runner state without an execution base. - try expectError(RunnerError.NoProgBase, cairo_runner.initState(1, &stack)); + // try expectError(RunnerError.NoProgBase, cairo_runner.initState(1, &stack)); +} + +test "CairoRunner: initFunctionEntrypoint with empty stack" { + // Initialize a list of built-in functions. + var builtins = std.ArrayList(BuiltinName).init(std.testing.allocator); + try builtins.append(BuiltinName.output); + + // Initialize data structures required for a program. + const reference_manager = ReferenceManager.init(std.testing.allocator); + const hints = std.AutoHashMap(usize, []const HintParams).init(std.testing.allocator); + const identifiers = std.StringHashMap(Identifier).init(std.testing.allocator); + const error_message_attributes = std.ArrayList(Attribute).init(std.testing.allocator); + const data = std.ArrayList(MaybeRelocatable).init(std.testing.allocator); + + // Initialize a Program instance with the specified parameters. + const program = try Program.init( + std.testing.allocator, + builtins, + data, + null, + hints, + reference_manager, + identifiers, + error_message_attributes, + null, + true, + ); + + // Initialize a CairoVM instance. + var vm = try CairoVM.init(std.testing.allocator, .{}); + + // Add memory segments to the CairoVM instance. + inline for (0..2) |_| _ = try vm.addMemorySegment(); + + // Initialize a CairoRunner with an empty program, "plain" layout, and instructions. + var cairo_runner = try CairoRunner.init( + std.testing.allocator, + program, + "all_cairo", + ArrayList(MaybeRelocatable).init(std.testing.allocator), + vm, + false, + ); + + // Defer the deinitialization of the CairoRunner to ensure cleanup. + defer cairo_runner.deinit(std.testing.allocator); + + // Set only program base and execution base. + cairo_runner.program_base = Relocatable.init(0, 0); + cairo_runner.execution_base = Relocatable.init(1, 0); + + // Initialize a stack with some values. + var stack = ArrayList(MaybeRelocatable).init(std.testing.allocator); + defer stack.deinit(); // Deallocate stack memory after the test. + + const return_fp = MaybeRelocatable.fromFelt(Felt252.fromInt(u8, 9)); + + _ = try cairo_runner.initFunctionEntrypoint(0, return_fp, &stack); + + defer cairo_runner.vm.segments.memory.deinitData(std.testing.allocator); + + try expect(cairo_runner.initial_fp.?.eq(cairo_runner.initial_ap.?)); + + try expect(cairo_runner.initial_ap.?.eq(Relocatable.init(1, 2))); + + const memory = vm.segments.memory; + + var cells = std.ArrayList(TestingUtils.Cell).init(std.testing.allocator); + defer cells.deinit(); + + try cells.append(.{ .address = Relocatable.init(1, 0), .value = MaybeRelocatable.fromFelt(Felt252.fromInt(u8, 9)) }); + try cells.append(.{ .address = Relocatable.init(1, 1), .value = MaybeRelocatable.fromRelocatable(Relocatable.init(2, 0)) }); + + try expect(TestingUtils.check_memory(memory, cells)); +} + +test "CairoRunner: initFunctionEntrypoint with some stack" { + // Initialize a list of built-in functions. + var builtins = std.ArrayList(BuiltinName).init(std.testing.allocator); + try builtins.append(BuiltinName.output); + + // Initialize data structures required for a program. + const reference_manager = ReferenceManager.init(std.testing.allocator); + const hints = std.AutoHashMap(usize, []const HintParams).init(std.testing.allocator); + const identifiers = std.StringHashMap(Identifier).init(std.testing.allocator); + const error_message_attributes = std.ArrayList(Attribute).init(std.testing.allocator); + const data = std.ArrayList(MaybeRelocatable).init(std.testing.allocator); + + // Initialize a Program instance with the specified parameters. + const program = try Program.init( + std.testing.allocator, + builtins, + data, + null, + hints, + reference_manager, + identifiers, + error_message_attributes, + null, + true, + ); + + // Initialize a CairoVM instance. + var vm = try CairoVM.init(std.testing.allocator, .{}); + + // Add memory segments to the CairoVM instance. + inline for (0..2) |_| _ = try vm.addMemorySegment(); + + // Initialize a CairoRunner with an empty program, "plain" layout, and instructions. + var cairo_runner = try CairoRunner.init( + std.testing.allocator, + program, + "all_cairo", + ArrayList(MaybeRelocatable).init(std.testing.allocator), + vm, + false, + ); + + // Defer the deinitialization of the CairoRunner to ensure cleanup. + defer cairo_runner.deinit(std.testing.allocator); + + // Set only program base and execution base. + cairo_runner.program_base = Relocatable.init(0, 0); + cairo_runner.execution_base = Relocatable.init(1, 0); + + // Initialize a stack with some values. + var stack = ArrayList(MaybeRelocatable).init(std.testing.allocator); + defer stack.deinit(); // Deallocate stack memory after the test. + + try stack.append(MaybeRelocatable.fromInt(u8, 7)); + + const return_fp = MaybeRelocatable.fromFelt(Felt252.fromInt(u8, 9)); + + _ = try cairo_runner.initFunctionEntrypoint(1, return_fp, &stack); + + defer cairo_runner.vm.segments.memory.deinitData(std.testing.allocator); + + try expect(cairo_runner.initial_fp.?.eq(cairo_runner.initial_ap.?)); + + try expect(cairo_runner.initial_ap.?.eq(Relocatable.init(1, 3))); + + const memory = vm.segments.memory; + + var cells = std.ArrayList(TestingUtils.Cell).init(std.testing.allocator); + defer cells.deinit(); + + try cells.append(.{ .address = Relocatable.init(1, 0), .value = MaybeRelocatable.fromFelt(Felt252.fromInt(u8, 7)) }); + try cells.append(.{ .address = Relocatable.init(1, 1), .value = MaybeRelocatable.fromFelt(Felt252.fromInt(u8, 9)) }); + try cells.append(.{ .address = Relocatable.init(1, 2), .value = MaybeRelocatable.fromRelocatable(Relocatable.init(2, 0)) }); + + try expect(TestingUtils.check_memory(memory, cells)); +} + +test "CairoRunner: initFunctionEntrypoint with no execution base" { + // Initialize a list of built-in functions. + var builtins = std.ArrayList(BuiltinName).init(std.testing.allocator); + try builtins.append(BuiltinName.output); + + // Initialize data structures required for a program. + const reference_manager = ReferenceManager.init(std.testing.allocator); + const hints = std.AutoHashMap(usize, []const HintParams).init(std.testing.allocator); + const identifiers = std.StringHashMap(Identifier).init(std.testing.allocator); + const error_message_attributes = std.ArrayList(Attribute).init(std.testing.allocator); + const data = std.ArrayList(MaybeRelocatable).init(std.testing.allocator); + + // Initialize a Program instance with the specified parameters. + const program = try Program.init( + std.testing.allocator, + builtins, + data, + null, + hints, + reference_manager, + identifiers, + error_message_attributes, + null, + true, + ); + + // Initialize a CairoVM instance. + var vm = try CairoVM.init(std.testing.allocator, .{}); + + // Add memory segments to the CairoVM instance. + inline for (0..2) |_| _ = try vm.addMemorySegment(); + + // Initialize a CairoRunner with an empty program, "plain" layout, and instructions. + var cairo_runner = try CairoRunner.init( + std.testing.allocator, + program, + "all_cairo", + ArrayList(MaybeRelocatable).init(std.testing.allocator), + vm, + false, + ); + + // Defer the deinitialization of the CairoRunner to ensure cleanup. + defer cairo_runner.deinit(std.testing.allocator); + + // Set only program base and execution base. + cairo_runner.program_base = Relocatable.init(1, 0); + + // Initialize a stack with some values. + var stack = ArrayList(MaybeRelocatable).init(std.testing.allocator); + defer stack.deinit(); // Deallocate stack memory after the test. + + try stack.append(MaybeRelocatable.fromInt(u8, 7)); + + const return_fp = MaybeRelocatable.fromFelt(Felt252.fromInt(u8, 9)); + + // Expect an error when trying to initialize the runner state without an execution base. + try expectError(RunnerError.NoExecBase, cairo_runner.initFunctionEntrypoint(1, return_fp, &stack)); + + defer cairo_runner.vm.segments.memory.deinitData(std.testing.allocator); } test "CairoRunner: runUntilPC with function call" { @@ -3545,6 +3759,7 @@ test "CairoRunner: initialize and run relocate with output builtin" { // Defer the deinitialization of the CairoRunner to ensure cleanup. defer cairo_runner.deinit(std.testing.allocator); + defer cairo_runner.vm.segments.memory.deinitData(std.testing.allocator); try cairo_runner.initBuiltins(true); @@ -3871,6 +4086,7 @@ test "CairoRunner: get output from a program" { // Defer the deinitialization of the CairoRunner to ensure cleanup. defer cairo_runner.deinit(std.testing.allocator); + defer cairo_runner.vm.segments.memory.deinitData(std.testing.allocator); try cairo_runner.initBuiltins(true); @@ -4121,6 +4337,7 @@ test "CairoRunner: get output with unordered builtins" { // Defer the deinitialization of the CairoRunner to ensure cleanup. defer cairo_runner.deinit(std.testing.allocator); + defer cairo_runner.vm.segments.memory.deinitData(std.testing.allocator); try cairo_runner.initBuiltins(true); diff --git a/src/vm/types/execution_scopes.zig b/src/vm/types/execution_scopes.zig index f815af62..407c7480 100644 --- a/src/vm/types/execution_scopes.zig +++ b/src/vm/types/execution_scopes.zig @@ -149,7 +149,7 @@ pub fn Rc(comptime T: type) type { } inline fn innerPtr(self: *const Self) *Inner { - return @fieldParentPtr(Inner, "value", self.value); + return @fieldParentPtr("value", self.value); } /// A single threaded, weak reference to a reference-counted value. @@ -167,7 +167,7 @@ pub fn Rc(comptime T: type) type { /// Creates a new weak reference object from a pointer to it's underlying value, /// without increasing the weak count. pub fn fromValuePtr(value: *T, alloc: std.mem.Allocator) Weak { - return .{ .inner = @fieldParentPtr(Inner, "value", value), .alloc = alloc }; + return .{ .inner = @fieldParentPtr("value", value), .alloc = alloc }; } /// Gets the number of strong references to this value. @@ -259,6 +259,7 @@ pub const HintType = union(enum) { dict_manager: Rc(DictManager), felt_map_of_felt_list: std.AutoHashMap(Felt252, std.ArrayList(Felt252)), felt_list: ArrayList(Felt252), + big_int: std.math.big.int.Managed, pub fn deinit(self: *Self) void { switch (self.*) { @@ -277,6 +278,7 @@ pub const HintType = union(enum) { .maybe_relocatable_map => |*m| m.deinit(), .u64_list => |*a| a.deinit(), .felt_list => |*a| a.deinit(), + .big_int => |*a| a.deinit(), .dict_manager => |d| d.releaseWithFn(DictManager.deinit), else => {}, }