diff --git a/crates/blockifier/feature_contracts/cairo1/compiled/test_contract.casm.json b/crates/blockifier/feature_contracts/cairo1/compiled/test_contract.casm.json index ae5ce4d90f..ab42f086a1 100644 --- a/crates/blockifier/feature_contracts/cairo1/compiled/test_contract.casm.json +++ b/crates/blockifier/feature_contracts/cairo1/compiled/test_contract.casm.json @@ -100,9 +100,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x4795", + "0x49ca", "0x482480017fff8000", - "0x4794", + "0x49c9", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -275,9 +275,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x46e6", + "0x491b", "0x482480017fff8000", - "0x46e5", + "0x491a", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -536,7 +536,7 @@ "0x48127ffa7fff8000", "0x480080007ff88000", "0x1104800180018000", - "0x1643", + "0x17ea", "0x20680017fff7ffa", "0xb", "0x48127ff87fff8000", @@ -588,9 +588,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x45ad", + "0x47e2", "0x482480017fff8000", - "0x45ac", + "0x47e1", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -715,6 +715,429 @@ "0x1", "0x208b7fff7fff7ffe", "0x40780017fff7fff", + "0x2", + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0x10c", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x482680017ff98000", + "0x1", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xa", + "0x482680017ffc8000", + "0x1", + "0x480a7ffd7fff8000", + "0x480680017fff8000", + "0x0", + "0x480280007ffc8000", + "0x10780017fff7fff", + "0x8", + "0x480a7ffc7fff8000", + "0x480a7ffd7fff8000", + "0x480680017fff8000", + "0x1", + "0x480680017fff8000", + "0x0", + "0x20680017fff7ffe", + "0xe1", + "0x40137fff7fff8001", + "0xa0680017fff8004", + "0xe", + "0x4825800180048001", + "0x800000000000000000000000000000000000000000000000000000000000000", + "0x484480017ffe8000", + "0x110000000000000000", + "0x48307ffe7fff8002", + "0x480080007ff67ffc", + "0x480080017ff57ffc", + "0x402480017ffb7ffd", + "0xffffffffffffffeeffffffffffffffff", + "0x400080027ff47ffd", + "0x10780017fff7fff", + "0xce", + "0x484480017fff8001", + "0x8000000000000000000000000000000", + "0x48317fff80008001", + "0x480080007ff77ffd", + "0x480080017ff67ffd", + "0x402480017ffc7ffe", + "0xf8000000000000000000000000000000", + "0x400080027ff57ffe", + "0x482480017ff58000", + "0x3", + "0x48307ff680007ff7", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xa", + "0x482480017ff58000", + "0x1", + "0x48127ff57fff8000", + "0x480680017fff8000", + "0x0", + "0x480080007ff28000", + "0x10780017fff7fff", + "0x8", + "0x48127ff57fff8000", + "0x48127ff57fff8000", + "0x480680017fff8000", + "0x1", + "0x480680017fff8000", + "0x0", + "0x20680017fff7ffe", + "0xa1", + "0x40137fff7fff8000", + "0x48307ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xa", + "0x482480017ffb8000", + "0x1", + "0x48127ffb7fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ff87fff8000", + "0x10780017fff7fff", + "0x8", + "0x48127ffb7fff8000", + "0x48127ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x480680017fff8000", + "0x0", + "0x20680017fff7ffe", + "0x20", + "0x40780017fff7fff", + "0x1", + "0x48127ff47fff8000", + "0x48127fe77fff8000", + "0x48127ff97fff8000", + "0x48127ff97fff8000", + "0x48127ffb7fff8000", + "0x48127ffa7fff8000", + "0x480080007ff88000", + "0x1104800180018000", + "0x16c7", + "0x20680017fff7ffa", + "0xb", + "0x48127ff87fff8000", + "0x48127ff87fff8000", + "0x48127ff97fff8000", + "0x48127ff97fff8000", + "0x48127ff97fff8000", + "0x48127ff97fff8000", + "0x48127ff97fff8000", + "0x10780017fff7fff", + "0x14", + "0x48127ff87fff8000", + "0x48127ff87fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x48127ff57fff8000", + "0x48127fe87fff8000", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x480680017fff8000", + "0x1", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x0", + "0x20680017fff7ffd", + "0x53", + "0x48307ffb80007ffc", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x10", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", + "0x400080007ffe7fff", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x46bf", + "0x482480017fff8000", + "0x46be", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007ff4", + "0x602c", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400080007ff17fff", + "0x10780017fff7fff", + "0x23", + "0x4824800180007ff4", + "0x602c", + "0x400080007ff27fff", + "0x482480017ff28000", + "0x1", + "0x48127ffe7fff8000", + "0x480a7ffb7fff8000", + "0x480a80017fff8000", + "0x480a80007fff8000", + "0x48127ff27fff8000", + "0x48127ff27fff8000", + "0x1104800180018000", + "0x16d6", + "0x20680017fff7ffd", + "0xc", + "0x40780017fff7fff", + "0x1", + "0x48127ff97fff8000", + "0x48127ff97fff8000", + "0x48127ff97fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffb7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4f7574206f6620676173", + "0x400080007ffe7fff", + "0x482480017fef8000", + "0x1", + "0x48127fef7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4661696c656420746f20646573657269616c697a6520706172616d202333", + "0x400080007ffe7fff", + "0x48127ff77fff8000", + "0x48127ff77fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4661696c656420746f20646573657269616c697a6520706172616d202332", + "0x400080007ffe7fff", + "0x48127ff87fff8000", + "0x48127feb7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x482480017ff48000", + "0x3", + "0x10780017fff7fff", + "0x5", + "0x40780017fff7fff", + "0x6", + "0x48127ff47fff8000", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4661696c656420746f20646573657269616c697a6520706172616d202331", + "0x400080007ffe7fff", + "0x48127ffd7fff8000", + "0x48127fef7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4f7574206f6620676173", + "0x400080007ffe7fff", + "0x482680017ff98000", + "0x1", + "0x480a7ffa7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0x71", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x482680017ff98000", + "0x1", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x10", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", + "0x400080007ffe7fff", + "0x48127ffc7fff8000", + "0x48127ffa7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x4622", + "0x482480017fff8000", + "0x4621", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007ff8", + "0x1284", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400080007ff77fff", + "0x10780017fff7fff", + "0x3c", + "0x4824800180007ff8", + "0x1284", + "0x400080007ff87fff", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x1275130f95dda36bcbb6e9d28796c1d7e10b6e9fd5ed083e0ede4b12f613528", + "0x480680017fff8000", + "0x11", + "0x482480017ff58000", + "0x1", + "0x480680017fff8000", + "0x53746f726167655772697465", + "0x400280007ffb7fff", + "0x400280017ffb7ffa", + "0x400280027ffb7ffb", + "0x400280037ffb7ffc", + "0x400280047ffb7ffd", + "0x480280067ffb8000", + "0x20680017fff7fff", + "0x18", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x46a6158a16a947e5916b2a2ca68501a45e93d7110e81aa2d6438b1c57c879a3", + "0x400080007ffe7fff", + "0x480680017fff8000", + "0x0", + "0x400080017ffd7fff", + "0x480680017fff8000", + "0x746573745f7265766572745f68656c706572", + "0x400080027ffc7fff", + "0x480680017fff8000", + "0x12", + "0x400080037ffb7fff", + "0x480280057ffb8000", + "0x482680017ffb8000", + "0x7", + "0x48127ff97fff8000", + "0x482480017ff88000", + "0x4", + "0x10780017fff7fff", + "0x9", + "0x40780017fff7fff", + "0x5", + "0x480280057ffb8000", + "0x482680017ffb8000", + "0x9", + "0x480280077ffb8000", + "0x480280087ffb8000", + "0x48127ff47fff8000", + "0x48127ffb7fff8000", + "0x48127ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4f7574206f6620676173", + "0x400080007ffe7fff", + "0x482480017ff58000", + "0x1", + "0x48127ff37fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4f7574206f6620676173", + "0x400080007ffe7fff", + "0x482680017ff98000", + "0x1", + "0x480a7ffa7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", "0x3", "0xa0680017fff8000", "0x7", @@ -922,9 +1345,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x445f", + "0x44ed", "0x482480017fff8000", - "0x445e", + "0x44ec", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -950,7 +1373,7 @@ "0x480a80017fff8000", "0x480a80027fff8000", "0x1104800180018000", - "0x1501", + "0x158f", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -1128,9 +1551,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x4391", + "0x441f", "0x482480017fff8000", - "0x4390", + "0x441e", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1245,7 +1668,7 @@ "0x480a7ffc7fff8000", "0x480a7ffd7fff8000", "0x1104800180018000", - "0x1444", + "0x14d2", "0x20680017fff7ffc", "0xf2", "0x48127ff97fff8000", @@ -1256,7 +1679,7 @@ "0x40137ffa7fff8001", "0x40137ffb7fff8002", "0x1104800180018000", - "0x1506", + "0x1594", "0x20680017fff7feb", "0xdf", "0x20680017fff7fee", @@ -1344,9 +1767,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x42b9", + "0x4347", "0x482480017fff8000", - "0x42b8", + "0x4346", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1388,7 +1811,7 @@ "0x48127fdb7fff8000", "0x48127fdf7fff8000", "0x1104800180018000", - "0x1937", + "0x19c5", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -1682,9 +2105,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x4167", + "0x41f5", "0x482480017fff8000", - "0x4166", + "0x41f4", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1969,9 +2392,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x4048", + "0x40d6", "0x482480017fff8000", - "0x4047", + "0x40d5", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -1993,7 +2416,7 @@ "0x48127fee7fff8000", "0x48127ff27fff8000", "0x1104800180018000", - "0x184a", + "0x18d8", "0x482480017fc88000", "0x1", "0x48127ffa7fff8000", @@ -2186,9 +2609,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3f6f", + "0x3ffd", "0x482480017fff8000", - "0x3f6e", + "0x3ffc", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2402,9 +2825,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3e97", + "0x3f25", "0x482480017fff8000", - "0x3e96", + "0x3f24", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2541,9 +2964,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3e0c", + "0x3e9a", "0x482480017fff8000", - "0x3e0b", + "0x3e99", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2575,7 +2998,7 @@ "0x48127ff77fff8000", "0x480080007ffc8000", "0x1104800180018000", - "0x164c", + "0x16da", "0x40780017fff7fff", "0x1", "0x48127ffa7fff8000", @@ -2814,9 +3237,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3cfb", + "0x3d89", "0x482480017fff8000", - "0x3cfa", + "0x3d88", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -2992,9 +3415,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3c49", + "0x3cd7", "0x482480017fff8000", - "0x3c48", + "0x3cd6", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3013,7 +3436,7 @@ "0x48127ffe7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x1554", + "0x15e2", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -3096,9 +3519,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3be1", + "0x3c6f", "0x482480017fff8000", - "0x3be0", + "0x3c6e", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3117,7 +3540,7 @@ "0x48127ffe7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x15c0", + "0x164e", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -3201,9 +3624,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3b78", + "0x3c06", "0x482480017fff8000", - "0x3b77", + "0x3c05", "0x480080007fff8000", "0x480080017fff8000", "0x484480017fff8000", @@ -3226,7 +3649,7 @@ "0x480a7ff97fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x15a6", + "0x1634", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -3313,9 +3736,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3b08", + "0x3b96", "0x482480017fff8000", - "0x3b07", + "0x3b95", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3334,7 +3757,7 @@ "0x48127ffe7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x169a", + "0x1728", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -3459,9 +3882,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3a76", + "0x3b04", "0x482480017fff8000", - "0x3a75", + "0x3b03", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3661,9 +4084,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x39ac", + "0x3a3a", "0x482480017fff8000", - "0x39ab", + "0x3a39", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3684,7 +4107,7 @@ "0x48127ff47fff8000", "0x48127ff47fff8000", "0x1104800180018000", - "0x16c5", + "0x1753", "0x20680017fff7ffd", "0xe", "0x40780017fff7fff", @@ -3783,9 +4206,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3932", + "0x39c0", "0x482480017fff8000", - "0x3931", + "0x39bf", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3897,9 +4320,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x38c0", + "0x394e", "0x482480017fff8000", - "0x38bf", + "0x394d", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -3918,7 +4341,7 @@ "0x48127ffe7fff8000", "0x48127ff67fff8000", "0x1104800180018000", - "0x172a", + "0x17b8", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -4036,9 +4459,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3835", + "0x38c3", "0x482480017fff8000", - "0x3834", + "0x38c2", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -4057,7 +4480,7 @@ "0x48127ffe7fff8000", "0x48127ff67fff8000", "0x1104800180018000", - "0x16cf", + "0x175d", "0x20680017fff7ffd", "0xc", "0x40780017fff7fff", @@ -4241,9 +4664,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3768", + "0x37f6", "0x482480017fff8000", - "0x3767", + "0x37f5", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -4485,9 +4908,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3674", + "0x3702", "0x482480017fff8000", - "0x3673", + "0x3701", "0x480080007fff8000", "0x480080007fff8000", "0x484480017fff8000", @@ -4513,7 +4936,7 @@ "0x48127feb7fff8000", "0x48127fef7fff8000", "0x1104800180018000", - "0x1533", + "0x15c1", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -4628,7 +5051,7 @@ "0x480a7ffc7fff8000", "0x480a7ffd7fff8000", "0x1104800180018000", - "0x1583", + "0x1611", "0x20680017fff7ffc", "0x63", "0x48307ffa80007ffb", @@ -4653,9 +5076,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x35cc", + "0x365a", "0x482480017fff8000", - "0x35cb", + "0x3659", "0x480080007fff8000", "0x480080007fff8000", "0x484480017fff8000", @@ -4686,7 +5109,7 @@ "0x48127feb7fff8000", "0x48127feb7fff8000", "0x1104800180018000", - "0x160d", + "0x169b", "0x20680017fff7ffd", "0xe", "0x40780017fff7fff", @@ -4821,7 +5244,7 @@ "0x48127ff67fff8000", "0x48127ff67fff8000", "0x1104800180018000", - "0x14c2", + "0x1550", "0x20680017fff7ffc", "0x60", "0x48307ffa80007ffb", @@ -4844,9 +5267,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x350d", + "0x359b", "0x482480017fff8000", - "0x350c", + "0x359a", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -5001,9 +5424,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3470", + "0x34fe", "0x482480017fff8000", - "0x346f", + "0x34fd", "0x480080007fff8000", "0x480080027fff8000", "0x482480017fff8000", @@ -5024,7 +5447,7 @@ "0x48127ffd7fff8000", "0x480a7ffb7fff8000", "0x1104800180018000", - "0x15dd", + "0x166b", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -5133,9 +5556,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x33ec", + "0x347a", "0x482480017fff8000", - "0x33eb", + "0x3479", "0x480080007fff8000", "0x480080007fff8000", "0x484480017fff8000", @@ -5159,7 +5582,7 @@ "0x480a7ffb7fff8000", "0x48127ff17fff8000", "0x1104800180018000", - "0x1678", + "0x1706", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -5282,9 +5705,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3357", + "0x33e5", "0x482480017fff8000", - "0x3356", + "0x33e4", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -5420,9 +5843,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x32cd", + "0x335b", "0x482480017fff8000", - "0x32cc", + "0x335a", "0x480080007fff8000", "0x480080047fff8000", "0x484480017fff8000", @@ -5450,7 +5873,7 @@ "0x480a7ff77fff8000", "0x48127ffb7fff8000", "0x1104800180018000", - "0x1683", + "0x1711", "0x20680017fff7ffd", "0xf", "0x40780017fff7fff", @@ -5546,9 +5969,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x324f", + "0x32dd", "0x482480017fff8000", - "0x324e", + "0x32dc", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -5564,14 +5987,14 @@ "0x400080007ff87fff", "0x480a7ff97fff8000", "0x1104800180018000", - "0x17e3", + "0x1871", "0x482480017fe88000", "0x1", "0x20680017fff7ffc", "0x17", "0x48127ffb7fff8000", "0x1104800180018000", - "0x17dc", + "0x186a", "0x20680017fff7ffd", "0xd", "0x40780017fff7fff", @@ -5710,9 +6133,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x31ab", + "0x3239", "0x482480017fff8000", - "0x31aa", + "0x3238", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -5916,9 +6339,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x30dd", + "0x316b", "0x482480017fff8000", - "0x30dc", + "0x316a", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -6121,9 +6544,9 @@ "0x1", "0x208b7fff7fff7ffe", "0x1104800180018000", - "0x3010", + "0x309e", "0x482480017fff8000", - "0x300f", + "0x309d", "0x480080007fff8000", "0xa0680017fff8000", "0x9", @@ -6326,6 +6749,148 @@ "0x482480017ff78000", "0x1", "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x43616c6c436f6e7472616374", + "0x400280007ff97fff", + "0x400380017ff97ff8", + "0x400380027ff97ffa", + "0x400380037ff97ffb", + "0x400380047ff97ffc", + "0x400380057ff97ffd", + "0x480280077ff98000", + "0x20680017fff7fff", + "0x1c", + "0x40780017fff7fff", + "0xc", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x46a6158a16a947e5916b2a2ca68501a45e93d7110e81aa2d6438b1c57c879a3", + "0x400080007ffe7fff", + "0x480680017fff8000", + "0x0", + "0x400080017ffd7fff", + "0x480680017fff8000", + "0x457870656374656420726576657274", + "0x400080027ffc7fff", + "0x480680017fff8000", + "0xf", + "0x400080037ffb7fff", + "0x480a7ff77fff8000", + "0x480280067ff98000", + "0x482680017ff98000", + "0xa", + "0x480680017fff8000", + "0x1", + "0x48127ff77fff8000", + "0x482480017ff68000", + "0x4", + "0x208b7fff7fff7ffe", + "0x480280087ff98000", + "0x480280097ff98000", + "0x480280067ff98000", + "0x482680017ff98000", + "0xa", + "0x48307ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x51", + "0x4824800180007ffc", + "0x1", + "0x480080007fff8000", + "0x4824800180007fff", + "0x454e545259504f494e545f4641494c4544", + "0x20680017fff7fff", + "0x3a", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x1275130f95dda36bcbb6e9d28796c1d7e10b6e9fd5ed083e0ede4b12f613528", + "0x480680017fff8000", + "0x53746f7261676552656164", + "0x400080007ff87fff", + "0x400080017ff87ff7", + "0x400080027ff87ffd", + "0x400080037ff87ffe", + "0x480080057ff88000", + "0x20680017fff7fff", + "0x22", + "0x480080067ff78000", + "0x480080047ff68000", + "0x482480017ff58000", + "0x7", + "0x20680017fff7ffd", + "0xe", + "0x40780017fff7fff", + "0x2", + "0x480a7ff77fff8000", + "0x48127ffb7fff8000", + "0x48127ffb7fff8000", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x0", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x76616c7565732073686f756c64206e6f74206368616e67652e", + "0x400080007ffe7fff", + "0x480a7ff77fff8000", + "0x48127ffb7fff8000", + "0x48127ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x5", + "0x480a7ff77fff8000", + "0x480080047ff18000", + "0x482480017ff08000", + "0x8", + "0x480680017fff8000", + "0x1", + "0x480080067fee8000", + "0x480080077fed8000", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x7", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x556e6578706563746564206572726f72", + "0x400080007ffe7fff", + "0x480a7ff77fff8000", + "0x48127ff07fff8000", + "0x48127ff07fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0xa", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x4f7074696f6e3a3a756e77726170206661696c65642e", + "0x400080007ffe7fff", + "0x480a7ff77fff8000", + "0x48127ff07fff8000", + "0x48127ff07fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", "0xa0680017fff8000", "0x7", "0x482680017ff68000", @@ -18429,6 +18994,8 @@ 241, 180, 291, + 290, + 133, 336, 178, 289, @@ -18460,6 +19027,7 @@ 250, 187, 92, + 142, 106, 205, 1205, @@ -18883,46 +19451,465 @@ ] ], [ - 326, + 326, + [ + { + "SystemCall": { + "system": { + "Deref": { + "register": "FP", + "offset": -5 + } + } + } + } + ] + ], + [ + 341, + [ + { + "SystemCall": { + "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "FP", + "offset": -5 + }, + "b": { + "Immediate": "0x7" + } + } + } + } + } + ] + ], + [ + 344, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 371, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 391, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 406, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 423, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 457, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "FP", + "offset": 1 + } + }, + "rhs": { + "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" + }, + "dst": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 461, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 3 + } + }, + "scalar": { + "Immediate": "0x110000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -2 + }, + "y": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 471, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "FP", + "offset": 1 + } + }, + "scalar": { + "Immediate": "0x8000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -1 + }, + "y": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 524, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 571, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 590, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x28b4" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -11 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 612, + [ + { + "SystemCall": { + "system": { + "Deref": { + "register": "FP", + "offset": -5 + } + } + } + } + ] + ], + [ + 633, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 648, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 662, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 683, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 697, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 714, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 748, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "FP", + "offset": 1 + } + }, + "rhs": { + "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" + }, + "dst": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 752, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 3 + } + }, + "scalar": { + "Immediate": "0x110000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -2 + }, + "y": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 762, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "FP", + "offset": 1 + } + }, + "scalar": { + "Immediate": "0x8000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -1 + }, + "y": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 815, [ { - "SystemCall": { - "system": { - "Deref": { - "register": "FP", - "offset": -5 - } + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 } } } ] ], [ - 341, + 862, [ { - "SystemCall": { - "system": { - "BinOp": { - "op": "Add", - "a": { - "register": "FP", - "offset": -5 - }, - "b": { - "Immediate": "0x7" - } - } + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 } } } ] ], [ - 344, + 881, [ { - "AllocSegment": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x602c" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -11 + } + }, "dst": { "register": "AP", "offset": 0 @@ -18932,7 +19919,7 @@ ] ], [ - 371, + 905, [ { "AllocSegment": { @@ -18945,7 +19932,7 @@ ] ], [ - 391, + 923, [ { "AllocSegment": { @@ -18958,7 +19945,7 @@ ] ], [ - 406, + 938, [ { "AllocSegment": { @@ -18971,19 +19958,10 @@ ] ], [ - 423, + 952, [ { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x0" - }, - "rhs": { - "Deref": { - "register": "FP", - "offset": -6 - } - }, + "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -18993,90 +19971,45 @@ ] ], [ - 457, + 973, [ { - "TestLessThan": { - "lhs": { - "Deref": { - "register": "FP", - "offset": 1 - } - }, - "rhs": { - "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" - }, + "AllocSegment": { "dst": { "register": "AP", - "offset": 4 + "offset": 0 } } } ] ], [ - 461, + 987, [ { - "LinearSplit": { - "value": { - "Deref": { - "register": "AP", - "offset": 3 - } - }, - "scalar": { - "Immediate": "0x110000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -2 - }, - "y": { + "AllocSegment": { + "dst": { "register": "AP", - "offset": -1 + "offset": 0 } } } ] ], [ - 471, + 1002, [ { - "LinearSplit": { - "value": { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { "Deref": { "register": "FP", - "offset": 1 + "offset": -6 } }, - "scalar": { - "Immediate": "0x8000000000000000000000000000000" - }, - "max_x": { - "Immediate": "0xffffffffffffffffffffffffffffffff" - }, - "x": { - "register": "AP", - "offset": -1 - }, - "y": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 524, - [ - { - "AllocSegment": { "dst": { "register": "AP", "offset": 0 @@ -19086,7 +20019,7 @@ ] ], [ - 571, + 1019, [ { "AllocSegment": { @@ -19099,17 +20032,17 @@ ] ], [ - 590, + 1038, [ { "TestLessThanOrEqual": { "lhs": { - "Immediate": "0x28b4" + "Immediate": "0x1284" }, "rhs": { "Deref": { "register": "AP", - "offset": -11 + "offset": -7 } }, "dst": { @@ -19121,7 +20054,7 @@ ] ], [ - 612, + 1065, [ { "SystemCall": { @@ -19136,7 +20069,7 @@ ] ], [ - 633, + 1068, [ { "AllocSegment": { @@ -19149,7 +20082,7 @@ ] ], [ - 648, + 1105, [ { "AllocSegment": { @@ -19162,7 +20095,7 @@ ] ], [ - 662, + 1120, [ { "AllocSegment": { @@ -19175,33 +20108,7 @@ ] ], [ - 683, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 697, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 714, + 1137, [ { "TestLessThanOrEqual": { @@ -19223,7 +20130,7 @@ ] ], [ - 748, + 1171, [ { "TestLessThan": { @@ -19251,7 +20158,7 @@ ] ], [ - 752, + 1175, [ { "LinearSplit": { @@ -19280,7 +20187,7 @@ ] ], [ - 793, + 1216, [ { "AllocSegment": { @@ -19293,7 +20200,7 @@ ] ], [ - 858, + 1281, [ { "AllocSegment": { @@ -19306,7 +20213,7 @@ ] ], [ - 905, + 1328, [ { "AllocSegment": { @@ -19319,7 +20226,7 @@ ] ], [ - 924, + 1347, [ { "TestLessThanOrEqual": { @@ -19341,7 +20248,7 @@ ] ], [ - 951, + 1374, [ { "AllocSegment": { @@ -19354,7 +20261,7 @@ ] ], [ - 969, + 1392, [ { "AllocSegment": { @@ -19367,7 +20274,7 @@ ] ], [ - 984, + 1407, [ { "AllocSegment": { @@ -19380,7 +20287,7 @@ ] ], [ - 998, + 1421, [ { "AllocSegment": { @@ -19393,7 +20300,7 @@ ] ], [ - 1019, + 1442, [ { "AllocSegment": { @@ -19406,7 +20313,7 @@ ] ], [ - 1033, + 1456, [ { "AllocSegment": { @@ -19419,7 +20326,7 @@ ] ], [ - 1048, + 1471, [ { "TestLessThanOrEqual": { @@ -19441,7 +20348,7 @@ ] ], [ - 1082, + 1505, [ { "TestLessThan": { @@ -19469,7 +20376,7 @@ ] ], [ - 1086, + 1509, [ { "LinearSplit": { @@ -19498,7 +20405,7 @@ ] ], [ - 1111, + 1534, [ { "AllocSegment": { @@ -19511,7 +20418,7 @@ ] ], [ - 1130, + 1553, [ { "TestLessThanOrEqual": { @@ -19533,7 +20440,7 @@ ] ], [ - 1149, + 1572, [ { "SystemCall": { @@ -19548,81 +20455,7 @@ ] ], [ - 1152, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 1175, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 1197, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 1211, - [ - { - "AllocSegment": { - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 1228, - [ - { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x8d54" - }, - "rhs": { - "Deref": { - "register": "FP", - "offset": -6 - } - }, - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 1327, + 1575, [ { "AllocSegment": { @@ -19635,29 +20468,7 @@ ] ], [ - 1346, - [ - { - "TestLessThanOrEqual": { - "lhs": { - "Immediate": "0x8070" - }, - "rhs": { - "Deref": { - "register": "AP", - "offset": -42 - } - }, - "dst": { - "register": "AP", - "offset": 0 - } - } - } - ] - ], - [ - 1389, + 1598, [ { "AllocSegment": { @@ -19670,7 +20481,7 @@ ] ], [ - 1407, + 1620, [ { "AllocSegment": { @@ -19683,7 +20494,7 @@ ] ], [ - 1422, + 1634, [ { "AllocSegment": { @@ -19696,7 +20507,29 @@ ] ], [ - 1436, + 1651, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x8d54" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 1750, [ { "AllocSegment": { @@ -19709,7 +20542,42 @@ ] ], [ - 1450, + 1769, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x8070" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -42 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 1812, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 1830, [ { "AllocSegment": { @@ -19722,7 +20590,7 @@ ] ], [ - 1464, + 1845, [ { "AllocSegment": { @@ -19735,7 +20603,7 @@ ] ], [ - 1486, + 1859, [ { "AllocSegment": { @@ -19748,7 +20616,7 @@ ] ], [ - 1500, + 1873, [ { "AllocSegment": { @@ -19761,7 +20629,46 @@ ] ], [ - 1517, + 1887, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 1909, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 1923, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 1940, [ { "TestLessThanOrEqual": { @@ -19783,7 +20690,7 @@ ] ], [ - 1551, + 1974, [ { "TestLessThan": { @@ -19805,7 +20712,7 @@ ] ], [ - 1555, + 1978, [ { "LinearSplit": { @@ -19834,7 +20741,7 @@ ] ], [ - 1565, + 1988, [ { "LinearSplit": { @@ -19863,7 +20770,7 @@ ] ], [ - 1618, + 2041, [ { "AllocSegment": { @@ -19876,7 +20783,7 @@ ] ], [ - 1665, + 2088, [ { "AllocSegment": { @@ -19889,7 +20796,7 @@ ] ], [ - 1684, + 2107, [ { "TestLessThanOrEqual": { @@ -19911,7 +20818,7 @@ ] ], [ - 1706, + 2129, [ { "SystemCall": { @@ -19926,7 +20833,7 @@ ] ], [ - 1727, + 2150, [ { "AllocSegment": { @@ -19939,7 +20846,7 @@ ] ], [ - 1742, + 2165, [ { "AllocSegment": { @@ -19952,7 +20859,7 @@ ] ], [ - 1756, + 2179, [ { "AllocSegment": { @@ -19965,7 +20872,7 @@ ] ], [ - 1777, + 2200, [ { "AllocSegment": { @@ -19978,7 +20885,7 @@ ] ], [ - 1791, + 2214, [ { "AllocSegment": { @@ -19991,7 +20898,7 @@ ] ], [ - 1806, + 2229, [ { "TestLessThanOrEqual": { @@ -20013,7 +20920,7 @@ ] ], [ - 1839, + 2262, [ { "TestLessThan": { @@ -20035,7 +20942,7 @@ ] ], [ - 1843, + 2266, [ { "LinearSplit": { @@ -20064,7 +20971,7 @@ ] ], [ - 1853, + 2276, [ { "LinearSplit": { @@ -20093,7 +21000,7 @@ ] ], [ - 1952, + 2375, [ { "AllocSegment": { @@ -20106,7 +21013,7 @@ ] ], [ - 1971, + 2394, [ { "TestLessThanOrEqual": { @@ -20128,7 +21035,7 @@ ] ], [ - 2000, + 2423, [ { "AllocSegment": { @@ -20141,7 +21048,7 @@ ] ], [ - 2015, + 2438, [ { "AllocSegment": { @@ -20154,7 +21061,7 @@ ] ], [ - 2029, + 2452, [ { "AllocSegment": { @@ -20167,7 +21074,7 @@ ] ], [ - 2043, + 2466, [ { "AllocSegment": { @@ -20180,7 +21087,7 @@ ] ], [ - 2057, + 2480, [ { "AllocSegment": { @@ -20193,7 +21100,7 @@ ] ], [ - 2078, + 2501, [ { "AllocSegment": { @@ -20206,7 +21113,7 @@ ] ], [ - 2092, + 2515, [ { "AllocSegment": { @@ -20219,7 +21126,7 @@ ] ], [ - 2107, + 2530, [ { "TestLessThanOrEqual": { @@ -20241,7 +21148,7 @@ ] ], [ - 2140, + 2563, [ { "TestLessThan": { @@ -20263,7 +21170,7 @@ ] ], [ - 2144, + 2567, [ { "LinearSplit": { @@ -20292,7 +21199,7 @@ ] ], [ - 2154, + 2577, [ { "LinearSplit": { @@ -20321,7 +21228,7 @@ ] ], [ - 2169, + 2592, [ { "AllocSegment": { @@ -20334,7 +21241,7 @@ ] ], [ - 2188, + 2611, [ { "TestLessThanOrEqual": { @@ -20356,7 +21263,7 @@ ] ], [ - 2207, + 2630, [ { "SystemCall": { @@ -20371,7 +21278,7 @@ ] ], [ - 2210, + 2633, [ { "AllocSegment": { @@ -20384,7 +21291,7 @@ ] ], [ - 2230, + 2653, [ { "AllocSegment": { @@ -20397,7 +21304,7 @@ ] ], [ - 2252, + 2675, [ { "AllocSegment": { @@ -20410,7 +21317,7 @@ ] ], [ - 2266, + 2689, [ { "AllocSegment": { @@ -20423,7 +21330,7 @@ ] ], [ - 2283, + 2706, [ { "TestLessThanOrEqual": { @@ -20445,7 +21352,7 @@ ] ], [ - 2338, + 2761, [ { "AllocSegment": { @@ -20458,7 +21365,7 @@ ] ], [ - 2385, + 2808, [ { "AllocSegment": { @@ -20471,7 +21378,7 @@ ] ], [ - 2404, + 2827, [ { "TestLessThanOrEqual": { @@ -20493,7 +21400,7 @@ ] ], [ - 2425, + 2848, [ { "SystemCall": { @@ -20508,7 +21415,7 @@ ] ], [ - 2428, + 2851, [ { "AllocSegment": { @@ -20521,7 +21428,7 @@ ] ], [ - 2448, + 2871, [ { "AllocSegment": { @@ -20534,7 +21441,7 @@ ] ], [ - 2463, + 2886, [ { "AllocSegment": { @@ -20547,7 +21454,7 @@ ] ], [ - 2477, + 2900, [ { "AllocSegment": { @@ -20560,7 +21467,7 @@ ] ], [ - 2491, + 2914, [ { "AllocSegment": { @@ -20573,7 +21480,7 @@ ] ], [ - 2506, + 2929, [ { "TestLessThanOrEqual": { @@ -20595,7 +21502,7 @@ ] ], [ - 2523, + 2946, [ { "AllocSegment": { @@ -20608,7 +21515,7 @@ ] ], [ - 2543, + 2966, [ { "TestLessThanOrEqual": { @@ -20630,7 +21537,7 @@ ] ], [ - 2555, + 2978, [ { "AllocFelt252Dict": { @@ -20645,7 +21552,7 @@ ] ], [ - 2574, + 2997, [ { "AllocSegment": { @@ -20658,7 +21565,7 @@ ] ], [ - 2585, + 3008, [ { "AllocSegment": { @@ -20671,7 +21578,7 @@ ] ], [ - 2601, + 3024, [ { "AllocSegment": { @@ -20684,7 +21591,7 @@ ] ], [ - 2619, + 3042, [ { "TestLessThanOrEqual": { @@ -20706,7 +21613,7 @@ ] ], [ - 2653, + 3076, [ { "TestLessThan": { @@ -20728,7 +21635,7 @@ ] ], [ - 2657, + 3080, [ { "LinearSplit": { @@ -20757,7 +21664,7 @@ ] ], [ - 2667, + 3090, [ { "LinearSplit": { @@ -20786,7 +21693,7 @@ ] ], [ - 2720, + 3143, [ { "AllocSegment": { @@ -20799,7 +21706,7 @@ ] ], [ - 2797, + 3220, [ { "AllocSegment": { @@ -20812,7 +21719,7 @@ ] ], [ - 2816, + 3239, [ { "TestLessThanOrEqual": { @@ -20834,7 +21741,7 @@ ] ], [ - 2842, + 3265, [ { "SystemCall": { @@ -20849,7 +21756,7 @@ ] ], [ - 2845, + 3268, [ { "AllocSegment": { @@ -20862,7 +21769,7 @@ ] ], [ - 2865, + 3288, [ { "AllocSegment": { @@ -20875,7 +21782,7 @@ ] ], [ - 2880, + 3303, [ { "AllocSegment": { @@ -20888,7 +21795,7 @@ ] ], [ - 2894, + 3317, [ { "AllocSegment": { @@ -20901,7 +21808,7 @@ ] ], [ - 2908, + 3331, [ { "AllocSegment": { @@ -20914,7 +21821,7 @@ ] ], [ - 2929, + 3352, [ { "AllocSegment": { @@ -20927,7 +21834,7 @@ ] ], [ - 2943, + 3366, [ { "AllocSegment": { @@ -20940,7 +21847,7 @@ ] ], [ - 2958, + 3381, [ { "TestLessThanOrEqual": { @@ -20962,7 +21869,7 @@ ] ], [ - 2975, + 3398, [ { "AllocSegment": { @@ -20975,7 +21882,7 @@ ] ], [ - 2994, + 3417, [ { "TestLessThanOrEqual": { @@ -20997,7 +21904,7 @@ ] ], [ - 3014, + 3437, [ { "AllocSegment": { @@ -21010,7 +21917,7 @@ ] ], [ - 3032, + 3455, [ { "AllocSegment": { @@ -21023,7 +21930,7 @@ ] ], [ - 3047, + 3470, [ { "AllocSegment": { @@ -21036,7 +21943,7 @@ ] ], [ - 3062, + 3485, [ { "TestLessThanOrEqual": { @@ -21058,7 +21965,7 @@ ] ], [ - 3079, + 3502, [ { "AllocSegment": { @@ -21071,7 +21978,7 @@ ] ], [ - 3098, + 3521, [ { "TestLessThanOrEqual": { @@ -21093,7 +22000,7 @@ ] ], [ - 3118, + 3541, [ { "AllocSegment": { @@ -21106,7 +22013,7 @@ ] ], [ - 3136, + 3559, [ { "AllocSegment": { @@ -21119,7 +22026,7 @@ ] ], [ - 3151, + 3574, [ { "AllocSegment": { @@ -21132,7 +22039,7 @@ ] ], [ - 3166, + 3589, [ { "TestLessThanOrEqual": { @@ -21154,7 +22061,7 @@ ] ], [ - 3183, + 3606, [ { "AllocSegment": { @@ -21167,7 +22074,7 @@ ] ], [ - 3208, + 3631, [ { "TestLessThanOrEqual": { @@ -21192,7 +22099,7 @@ ] ], [ - 3227, + 3650, [ { "AllocSegment": { @@ -21205,7 +22112,7 @@ ] ], [ - 3247, + 3670, [ { "AllocSegment": { @@ -21218,7 +22125,7 @@ ] ], [ - 3263, + 3686, [ { "AllocSegment": { @@ -21231,7 +22138,7 @@ ] ], [ - 3279, + 3702, [ { "TestLessThanOrEqual": { @@ -21253,7 +22160,7 @@ ] ], [ - 3296, + 3719, [ { "AllocSegment": { @@ -21266,7 +22173,7 @@ ] ], [ - 3315, + 3738, [ { "TestLessThanOrEqual": { @@ -21288,7 +22195,7 @@ ] ], [ - 3335, + 3758, [ { "AllocSegment": { @@ -21301,7 +22208,7 @@ ] ], [ - 3353, + 3776, [ { "AllocSegment": { @@ -21314,7 +22221,7 @@ ] ], [ - 3368, + 3791, [ { "AllocSegment": { @@ -21327,7 +22234,7 @@ ] ], [ - 3383, + 3806, [ { "TestLessThanOrEqual": { @@ -21349,7 +22256,7 @@ ] ], [ - 3442, + 3865, [ { "AllocSegment": { @@ -21362,7 +22269,7 @@ ] ], [ - 3461, + 3884, [ { "TestLessThanOrEqual": { @@ -21384,7 +22291,7 @@ ] ], [ - 3478, + 3901, [ { "AllocSegment": { @@ -21397,7 +22304,7 @@ ] ], [ - 3492, + 3915, [ { "AllocSegment": { @@ -21410,7 +22317,7 @@ ] ], [ - 3506, + 3929, [ { "AllocSegment": { @@ -21423,7 +22330,7 @@ ] ], [ - 3521, + 3944, [ { "AllocSegment": { @@ -21436,7 +22343,7 @@ ] ], [ - 3535, + 3958, [ { "AllocSegment": { @@ -21449,7 +22356,7 @@ ] ], [ - 3549, + 3972, [ { "AllocSegment": { @@ -21462,7 +22369,7 @@ ] ], [ - 3564, + 3987, [ { "TestLessThanOrEqual": { @@ -21484,7 +22391,7 @@ ] ], [ - 3597, + 4020, [ { "AllocSegment": { @@ -21497,7 +22404,7 @@ ] ], [ - 3644, + 4067, [ { "AllocSegment": { @@ -21510,7 +22417,7 @@ ] ], [ - 3663, + 4086, [ { "TestLessThanOrEqual": { @@ -21532,7 +22439,7 @@ ] ], [ - 3685, + 4108, [ { "AllocSegment": { @@ -21545,7 +22452,7 @@ ] ], [ - 3705, + 4128, [ { "AllocSegment": { @@ -21558,7 +22465,7 @@ ] ], [ - 3720, + 4143, [ { "AllocSegment": { @@ -21571,7 +22478,7 @@ ] ], [ - 3734, + 4157, [ { "AllocSegment": { @@ -21584,7 +22491,7 @@ ] ], [ - 3749, + 4172, [ { "TestLessThanOrEqual": { @@ -21606,7 +22513,7 @@ ] ], [ - 3766, + 4189, [ { "AllocSegment": { @@ -21619,7 +22526,7 @@ ] ], [ - 3785, + 4208, [ { "TestLessThanOrEqual": { @@ -21641,7 +22548,7 @@ ] ], [ - 3797, + 4220, [ { "AllocSegment": { @@ -21654,7 +22561,7 @@ ] ], [ - 3812, + 4235, [ { "AllocSegment": { @@ -21667,7 +22574,7 @@ ] ], [ - 3827, + 4250, [ { "AllocSegment": { @@ -21680,7 +22587,7 @@ ] ], [ - 3842, + 4265, [ { "TestLessThanOrEqual": { @@ -21702,7 +22609,7 @@ ] ], [ - 3880, + 4303, [ { "AllocSegment": { @@ -21715,7 +22622,7 @@ ] ], [ - 3899, + 4322, [ { "TestLessThanOrEqual": { @@ -21737,7 +22644,7 @@ ] ], [ - 3919, + 4342, [ { "AllocSegment": { @@ -21750,7 +22657,7 @@ ] ], [ - 3937, + 4360, [ { "AllocSegment": { @@ -21763,7 +22670,7 @@ ] ], [ - 3952, + 4375, [ { "AllocSegment": { @@ -21776,7 +22683,7 @@ ] ], [ - 3966, + 4389, [ { "AllocSegment": { @@ -21789,7 +22696,7 @@ ] ], [ - 3981, + 4404, [ { "TestLessThanOrEqual": { @@ -21811,7 +22718,7 @@ ] ], [ - 4019, + 4442, [ { "AllocSegment": { @@ -21824,7 +22731,7 @@ ] ], [ - 4038, + 4461, [ { "TestLessThanOrEqual": { @@ -21846,7 +22753,7 @@ ] ], [ - 4058, + 4481, [ { "AllocSegment": { @@ -21859,7 +22766,7 @@ ] ], [ - 4076, + 4499, [ { "AllocSegment": { @@ -21872,7 +22779,7 @@ ] ], [ - 4091, + 4514, [ { "AllocSegment": { @@ -21885,7 +22792,7 @@ ] ], [ - 4105, + 4528, [ { "AllocSegment": { @@ -21898,7 +22805,7 @@ ] ], [ - 4120, + 4543, [ { "TestLessThanOrEqual": { @@ -21920,7 +22827,7 @@ ] ], [ - 4153, + 4576, [ { "TestLessThan": { @@ -21942,7 +22849,7 @@ ] ], [ - 4157, + 4580, [ { "LinearSplit": { @@ -21971,7 +22878,7 @@ ] ], [ - 4167, + 4590, [ { "LinearSplit": { @@ -22000,7 +22907,7 @@ ] ], [ - 4224, + 4647, [ { "AllocSegment": { @@ -22013,7 +22920,7 @@ ] ], [ - 4243, + 4666, [ { "TestLessThanOrEqual": { @@ -22035,7 +22942,7 @@ ] ], [ - 4265, + 4688, [ { "AllocSegment": { @@ -22048,7 +22955,7 @@ ] ], [ - 4283, + 4706, [ { "SystemCall": { @@ -22063,7 +22970,7 @@ ] ], [ - 4289, + 4712, [ { "AllocSegment": { @@ -22076,7 +22983,7 @@ ] ], [ - 4308, + 4731, [ { "AllocSegment": { @@ -22089,7 +22996,7 @@ ] ], [ - 4323, + 4746, [ { "AllocSegment": { @@ -22102,7 +23009,7 @@ ] ], [ - 4337, + 4760, [ { "AllocSegment": { @@ -22115,7 +23022,7 @@ ] ], [ - 4358, + 4781, [ { "AllocSegment": { @@ -22128,7 +23035,7 @@ ] ], [ - 4372, + 4795, [ { "AllocSegment": { @@ -22141,7 +23048,7 @@ ] ], [ - 4387, + 4810, [ { "TestLessThanOrEqual": { @@ -22163,7 +23070,7 @@ ] ], [ - 4467, + 4890, [ { "AllocSegment": { @@ -22176,7 +23083,7 @@ ] ], [ - 4492, + 4915, [ { "TestLessThanOrEqual": { @@ -22201,7 +23108,7 @@ ] ], [ - 4514, + 4937, [ { "AllocSegment": { @@ -22214,7 +23121,7 @@ ] ], [ - 4534, + 4957, [ { "AllocSegment": { @@ -22227,7 +23134,7 @@ ] ], [ - 4550, + 4973, [ { "AllocSegment": { @@ -22240,7 +23147,7 @@ ] ], [ - 4565, + 4988, [ { "AllocSegment": { @@ -22253,7 +23160,7 @@ ] ], [ - 4580, + 5003, [ { "AllocSegment": { @@ -22266,7 +23173,7 @@ ] ], [ - 4595, + 5018, [ { "AllocSegment": { @@ -22279,7 +23186,7 @@ ] ], [ - 4611, + 5034, [ { "TestLessThanOrEqual": { @@ -22301,7 +23208,7 @@ ] ], [ - 4634, + 5057, [ { "AllocSegment": { @@ -22314,7 +23221,7 @@ ] ], [ - 4664, + 5087, [ { "TestLessThanOrEqual": { @@ -22339,7 +23246,7 @@ ] ], [ - 4687, + 5110, [ { "AllocSegment": { @@ -22352,7 +23259,7 @@ ] ], [ - 4709, + 5132, [ { "AllocSegment": { @@ -22365,7 +23272,7 @@ ] ], [ - 4726, + 5149, [ { "AllocSegment": { @@ -22378,7 +23285,7 @@ ] ], [ - 4742, + 5165, [ { "AllocSegment": { @@ -22391,7 +23298,7 @@ ] ], [ - 4759, + 5182, [ { "TestLessThanOrEqual": { @@ -22413,7 +23320,7 @@ ] ], [ - 4792, + 5215, [ { "TestLessThan": { @@ -22435,7 +23342,7 @@ ] ], [ - 4796, + 5219, [ { "LinearSplit": { @@ -22464,7 +23371,7 @@ ] ], [ - 4806, + 5229, [ { "LinearSplit": { @@ -22493,7 +23400,7 @@ ] ], [ - 4827, + 5250, [ { "AllocSegment": { @@ -22506,7 +23413,7 @@ ] ], [ - 4846, + 5269, [ { "TestLessThanOrEqual": { @@ -22528,7 +23435,7 @@ ] ], [ - 4858, + 5281, [ { "AllocSegment": { @@ -22541,7 +23448,7 @@ ] ], [ - 4878, + 5301, [ { "SystemCall": { @@ -22556,7 +23463,7 @@ ] ], [ - 4881, + 5304, [ { "AllocSegment": { @@ -22569,7 +23476,7 @@ ] ], [ - 4901, + 5324, [ { "AllocSegment": { @@ -22582,7 +23489,7 @@ ] ], [ - 4916, + 5339, [ { "AllocSegment": { @@ -22595,7 +23502,7 @@ ] ], [ - 4937, + 5360, [ { "AllocSegment": { @@ -22608,7 +23515,7 @@ ] ], [ - 4951, + 5374, [ { "AllocSegment": { @@ -22621,7 +23528,7 @@ ] ], [ - 4966, + 5389, [ { "TestLessThanOrEqual": { @@ -22643,7 +23550,7 @@ ] ], [ - 4983, + 5406, [ { "AllocSegment": { @@ -22656,7 +23563,7 @@ ] ], [ - 5006, + 5429, [ { "TestLessThanOrEqual": { @@ -22681,7 +23588,7 @@ ] ], [ - 5025, + 5448, [ { "AllocSegment": { @@ -22694,7 +23601,7 @@ ] ], [ - 5045, + 5468, [ { "AllocSegment": { @@ -22707,7 +23614,7 @@ ] ], [ - 5061, + 5484, [ { "AllocSegment": { @@ -22720,7 +23627,7 @@ ] ], [ - 5077, + 5500, [ { "TestLessThanOrEqual": { @@ -22742,7 +23649,7 @@ ] ], [ - 5115, + 5538, [ { "AllocSegment": { @@ -22755,7 +23662,7 @@ ] ], [ - 5140, + 5563, [ { "TestLessThanOrEqual": { @@ -22780,7 +23687,7 @@ ] ], [ - 5160, + 5583, [ { "AllocSegment": { @@ -22793,7 +23700,7 @@ ] ], [ - 5180, + 5603, [ { "AllocSegment": { @@ -22806,7 +23713,7 @@ ] ], [ - 5196, + 5619, [ { "AllocSegment": { @@ -22819,7 +23726,7 @@ ] ], [ - 5211, + 5634, [ { "AllocSegment": { @@ -22832,7 +23739,7 @@ ] ], [ - 5227, + 5650, [ { "TestLessThanOrEqual": { @@ -22854,7 +23761,7 @@ ] ], [ - 5265, + 5688, [ { "AllocSegment": { @@ -22867,7 +23774,7 @@ ] ], [ - 5284, + 5707, [ { "TestLessThanOrEqual": { @@ -22889,7 +23796,7 @@ ] ], [ - 5296, + 5719, [ { "AllocSegment": { @@ -22902,7 +23809,7 @@ ] ], [ - 5316, + 5739, [ { "SystemCall": { @@ -22917,7 +23824,7 @@ ] ], [ - 5319, + 5742, [ { "AllocSegment": { @@ -22930,7 +23837,7 @@ ] ], [ - 5339, + 5762, [ { "AllocSegment": { @@ -22943,7 +23850,7 @@ ] ], [ - 5354, + 5777, [ { "AllocSegment": { @@ -22956,7 +23863,7 @@ ] ], [ - 5368, + 5791, [ { "AllocSegment": { @@ -22969,7 +23876,7 @@ ] ], [ - 5383, + 5806, [ { "TestLessThanOrEqual": { @@ -22991,7 +23898,7 @@ ] ], [ - 5400, + 5823, [ { "AllocSegment": { @@ -23004,7 +23911,7 @@ ] ], [ - 5431, + 5854, [ { "TestLessThanOrEqual": { @@ -23029,7 +23936,7 @@ ] ], [ - 5451, + 5874, [ { "AllocSegment": { @@ -23042,7 +23949,7 @@ ] ], [ - 5475, + 5898, [ { "AllocSegment": { @@ -23055,7 +23962,7 @@ ] ], [ - 5493, + 5916, [ { "AllocSegment": { @@ -23068,7 +23975,7 @@ ] ], [ - 5511, + 5934, [ { "TestLessThanOrEqual": { @@ -23090,7 +23997,7 @@ ] ], [ - 5528, + 5951, [ { "AllocSegment": { @@ -23103,7 +24010,7 @@ ] ], [ - 5548, + 5971, [ { "TestLessThanOrEqual": { @@ -23125,7 +24032,7 @@ ] ], [ - 5572, + 5995, [ { "AllocSegment": { @@ -23138,7 +24045,7 @@ ] ], [ - 5602, + 6025, [ { "AllocSegment": { @@ -23151,7 +24058,7 @@ ] ], [ - 5618, + 6041, [ { "AllocSegment": { @@ -23164,7 +24071,7 @@ ] ], [ - 5634, + 6057, [ { "TestLessThanOrEqual": { @@ -23186,7 +24093,7 @@ ] ], [ - 5693, + 6116, [ { "AllocSegment": { @@ -23199,7 +24106,7 @@ ] ], [ - 5712, + 6135, [ { "TestLessThanOrEqual": { @@ -23221,7 +24128,7 @@ ] ], [ - 5724, + 6147, [ { "AllocSegment": { @@ -23234,7 +24141,7 @@ ] ], [ - 5737, + 6160, [ { "AllocSegment": { @@ -23247,7 +24154,7 @@ ] ], [ - 5752, + 6175, [ { "AllocSegment": { @@ -23260,7 +24167,7 @@ ] ], [ - 5766, + 6189, [ { "AllocSegment": { @@ -23273,7 +24180,7 @@ ] ], [ - 5780, + 6203, [ { "AllocSegment": { @@ -23286,7 +24193,7 @@ ] ], [ - 5795, + 6218, [ { "TestLessThanOrEqual": { @@ -23308,7 +24215,7 @@ ] ], [ - 5849, + 6272, [ { "TestLessThan": { @@ -23330,7 +24237,7 @@ ] ], [ - 5853, + 6276, [ { "LinearSplit": { @@ -23359,7 +24266,7 @@ ] ], [ - 5863, + 6286, [ { "LinearSplit": { @@ -23388,7 +24295,7 @@ ] ], [ - 5899, + 6322, [ { "AllocSegment": { @@ -23401,7 +24308,7 @@ ] ], [ - 5918, + 6341, [ { "TestLessThanOrEqual": { @@ -23423,7 +24330,7 @@ ] ], [ - 5941, + 6364, [ { "SystemCall": { @@ -23438,7 +24345,7 @@ ] ], [ - 5944, + 6367, [ { "AllocSegment": { @@ -23451,7 +24358,7 @@ ] ], [ - 5966, + 6389, [ { "AllocSegment": { @@ -23464,7 +24371,7 @@ ] ], [ - 5981, + 6404, [ { "AllocSegment": { @@ -23477,7 +24384,7 @@ ] ], [ - 6002, + 6425, [ { "AllocSegment": { @@ -23490,7 +24397,7 @@ ] ], [ - 6016, + 6439, [ { "AllocSegment": { @@ -23503,7 +24410,7 @@ ] ], [ - 6030, + 6453, [ { "AllocSegment": { @@ -23516,7 +24423,7 @@ ] ], [ - 6045, + 6468, [ { "TestLessThanOrEqual": { @@ -23538,7 +24445,7 @@ ] ], [ - 6104, + 6527, [ { "AllocSegment": { @@ -23551,7 +24458,7 @@ ] ], [ - 6123, + 6546, [ { "TestLessThanOrEqual": { @@ -23573,7 +24480,7 @@ ] ], [ - 6149, + 6572, [ { "SystemCall": { @@ -23588,7 +24495,7 @@ ] ], [ - 6152, + 6575, [ { "AllocSegment": { @@ -23601,7 +24508,7 @@ ] ], [ - 6174, + 6597, [ { "AllocSegment": { @@ -23614,7 +24521,7 @@ ] ], [ - 6189, + 6612, [ { "AllocSegment": { @@ -23627,7 +24534,7 @@ ] ], [ - 6203, + 6626, [ { "AllocSegment": { @@ -23640,7 +24547,7 @@ ] ], [ - 6217, + 6640, [ { "AllocSegment": { @@ -23653,7 +24560,7 @@ ] ], [ - 6232, + 6655, [ { "TestLessThanOrEqual": { @@ -23675,7 +24582,35 @@ ] ], [ - 6304, + 6727, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 6755, + [ + { + "SystemCall": { + "system": { + "Deref": { + "register": "FP", + "offset": -7 + } + } + } + } + ] + ], + [ + 6760, [ { "AllocSegment": { @@ -23688,7 +24623,61 @@ ] ], [ - 6324, + 6811, + [ + { + "SystemCall": { + "system": { + "Deref": { + "register": "AP", + "offset": -8 + } + } + } + } + ] + ], + [ + 6832, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 6859, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 6875, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 6889, [ { "TestLessThanOrEqual": { @@ -23710,7 +24699,7 @@ ] ], [ - 6349, + 6914, [ { "SystemCall": { @@ -23725,7 +24714,7 @@ ] ], [ - 6357, + 6922, [ { "TestLessThan": { @@ -23756,7 +24745,7 @@ ] ], [ - 6382, + 6947, [ { "AllocSegment": { @@ -23769,7 +24758,7 @@ ] ], [ - 6415, + 6980, [ { "AllocSegment": { @@ -23782,7 +24771,7 @@ ] ], [ - 6452, + 7017, [ { "TestLessThan": { @@ -23810,7 +24799,7 @@ ] ], [ - 6456, + 7021, [ { "LinearSplit": { @@ -23839,7 +24828,7 @@ ] ], [ - 6498, + 7063, [ { "TestLessThan": { @@ -23867,7 +24856,7 @@ ] ], [ - 6502, + 7067, [ { "LinearSplit": { @@ -23896,7 +24885,7 @@ ] ], [ - 6543, + 7108, [ { "TestLessThan": { @@ -23918,7 +24907,7 @@ ] ], [ - 6547, + 7112, [ { "LinearSplit": { @@ -23947,7 +24936,7 @@ ] ], [ - 6557, + 7122, [ { "LinearSplit": { @@ -23976,7 +24965,7 @@ ] ], [ - 6681, + 7246, [ { "TestLessThan": { @@ -23998,7 +24987,7 @@ ] ], [ - 6685, + 7250, [ { "LinearSplit": { @@ -24027,7 +25016,7 @@ ] ], [ - 6695, + 7260, [ { "LinearSplit": { @@ -24056,7 +25045,7 @@ ] ], [ - 6727, + 7292, [ { "TestLessThan": { @@ -24078,7 +25067,7 @@ ] ], [ - 6729, + 7294, [ { "DivMod": { @@ -24104,7 +25093,7 @@ ] ], [ - 6849, + 7414, [ { "AllocSegment": { @@ -24117,7 +25106,7 @@ ] ], [ - 6963, + 7528, [ { "TestLessThan": { @@ -24139,7 +25128,7 @@ ] ], [ - 6965, + 7530, [ { "DivMod": { @@ -24165,7 +25154,7 @@ ] ], [ - 7018, + 7583, [ { "TestLessThan": { @@ -24193,7 +25182,7 @@ ] ], [ - 7022, + 7587, [ { "LinearSplit": { @@ -24222,7 +25211,7 @@ ] ], [ - 7064, + 7629, [ { "TestLessThan": { @@ -24250,7 +25239,7 @@ ] ], [ - 7068, + 7633, [ { "LinearSplit": { @@ -24279,7 +25268,7 @@ ] ], [ - 7846, + 8411, [ { "SystemCall": { @@ -24294,7 +25283,7 @@ ] ], [ - 8079, + 8644, [ { "AllocSegment": { @@ -24307,7 +25296,7 @@ ] ], [ - 8093, + 8658, [ { "AllocSegment": { @@ -24320,7 +25309,7 @@ ] ], [ - 8107, + 8672, [ { "AllocSegment": { @@ -24333,7 +25322,7 @@ ] ], [ - 8171, + 8736, [ { "AllocSegment": { @@ -24346,7 +25335,7 @@ ] ], [ - 8185, + 8750, [ { "AllocSegment": { @@ -24359,7 +25348,7 @@ ] ], [ - 8208, + 8773, [ { "AllocSegment": { @@ -24372,7 +25361,7 @@ ] ], [ - 8232, + 8797, [ { "SystemCall": { @@ -24387,7 +25376,7 @@ ] ], [ - 8235, + 8800, [ { "AllocSegment": { @@ -24400,7 +25389,7 @@ ] ], [ - 8251, + 8816, [ { "SystemCall": { @@ -24421,7 +25410,7 @@ ] ], [ - 8288, + 8853, [ { "GetSegmentArenaIndex": { @@ -24440,7 +25429,7 @@ ] ], [ - 8329, + 8894, [ { "AllocSegment": { @@ -24453,7 +25442,7 @@ ] ], [ - 8337, + 8902, [ { "InitSquashData": { @@ -24488,7 +25477,7 @@ ] ], [ - 8356, + 8921, [ { "GetCurrentAccessIndex": { @@ -24503,7 +25492,7 @@ ] ], [ - 8369, + 8934, [ { "ShouldSkipSquashLoop": { @@ -24516,7 +25505,7 @@ ] ], [ - 8371, + 8936, [ { "GetCurrentAccessDelta": { @@ -24529,7 +25518,7 @@ ] ], [ - 8382, + 8947, [ { "ShouldContinueSquashLoop": { @@ -24542,7 +25531,7 @@ ] ], [ - 8396, + 8961, [ { "GetNextDictKey": { @@ -24555,7 +25544,7 @@ ] ], [ - 8415, + 8980, [ { "AssertLeFindSmallArcs": { @@ -24588,7 +25577,7 @@ ] ], [ - 8427, + 8992, [ { "AssertLeIsFirstArcExcluded": { @@ -24601,7 +25590,7 @@ ] ], [ - 8439, + 9004, [ { "AssertLeIsSecondArcExcluded": { @@ -24614,7 +25603,7 @@ ] ], [ - 8470, + 9035, [ { "AllocSegment": { @@ -24627,7 +25616,7 @@ ] ], [ - 8478, + 9043, [ { "AllocSegment": { @@ -24640,7 +25629,7 @@ ] ], [ - 8509, + 9074, [ { "SystemCall": { @@ -24655,7 +25644,7 @@ ] ], [ - 8523, + 9088, [ { "AllocSegment": { @@ -24668,7 +25657,7 @@ ] ], [ - 8543, + 9108, [ { "AllocSegment": { @@ -24681,7 +25670,7 @@ ] ], [ - 8557, + 9122, [ { "AllocSegment": { @@ -24694,7 +25683,7 @@ ] ], [ - 8571, + 9136, [ { "SystemCall": { @@ -24709,7 +25698,7 @@ ] ], [ - 8574, + 9139, [ { "AllocSegment": { @@ -24722,7 +25711,7 @@ ] ], [ - 8597, + 9162, [ { "TestLessThan": { @@ -24747,7 +25736,7 @@ ] ], [ - 8625, + 9190, [ { "AllocSegment": { @@ -24760,7 +25749,7 @@ ] ], [ - 8639, + 9204, [ { "AllocSegment": { @@ -24773,7 +25762,7 @@ ] ], [ - 8682, + 9247, [ { "AllocSegment": { @@ -24786,7 +25775,7 @@ ] ], [ - 8721, + 9286, [ { "AllocSegment": { @@ -24799,7 +25788,7 @@ ] ], [ - 8781, + 9346, [ { "SystemCall": { @@ -24814,7 +25803,7 @@ ] ], [ - 8791, + 9356, [ { "AllocSegment": { @@ -24827,7 +25816,7 @@ ] ], [ - 8822, + 9387, [ { "SystemCall": { @@ -24842,7 +25831,7 @@ ] ], [ - 8825, + 9390, [ { "AllocSegment": { @@ -24855,7 +25844,7 @@ ] ], [ - 8849, + 9414, [ { "TestLessThan": { @@ -24880,7 +25869,7 @@ ] ], [ - 8883, + 9448, [ { "SystemCall": { @@ -24895,7 +25884,7 @@ ] ], [ - 8898, + 9463, [ { "SystemCall": { @@ -24910,7 +25899,7 @@ ] ], [ - 8944, + 9509, [ { "AllocSegment": { @@ -24923,7 +25912,7 @@ ] ], [ - 8963, + 9528, [ { "DivMod": { @@ -24952,7 +25941,7 @@ ] ], [ - 8969, + 9534, [ { "TestLessThan": { @@ -24974,7 +25963,7 @@ ] ], [ - 9020, + 9585, [ { "AllocSegment": { @@ -24987,7 +25976,7 @@ ] ], [ - 9051, + 9616, [ { "AllocSegment": { @@ -25000,7 +25989,7 @@ ] ], [ - 9076, + 9641, [ { "AllocSegment": { @@ -25013,7 +26002,7 @@ ] ], [ - 9091, + 9656, [ { "AllocSegment": { @@ -25026,7 +26015,7 @@ ] ], [ - 9133, + 9698, [ { "SystemCall": { @@ -25041,7 +26030,7 @@ ] ], [ - 9145, + 9710, [ { "AllocSegment": { @@ -25054,7 +26043,7 @@ ] ], [ - 9175, + 9740, [ { "SystemCall": { @@ -25069,7 +26058,7 @@ ] ], [ - 9180, + 9745, [ { "AllocSegment": { @@ -25082,7 +26071,7 @@ ] ], [ - 9203, + 9768, [ { "TestLessThan": { @@ -25107,7 +26096,7 @@ ] ], [ - 9237, + 9802, [ { "SystemCall": { @@ -25122,7 +26111,7 @@ ] ], [ - 9252, + 9817, [ { "SystemCall": { @@ -25137,7 +26126,7 @@ ] ], [ - 9300, + 9865, [ { "AllocSegment": { @@ -25150,7 +26139,7 @@ ] ], [ - 9318, + 9883, [ { "DivMod": { @@ -25179,7 +26168,7 @@ ] ], [ - 9324, + 9889, [ { "TestLessThan": { @@ -25201,7 +26190,7 @@ ] ], [ - 9353, + 9918, [ { "SystemCall": { @@ -25216,7 +26205,7 @@ ] ], [ - 9403, + 9968, [ { "AllocSegment": { @@ -25229,7 +26218,7 @@ ] ], [ - 9441, + 10006, [ { "AllocSegment": { @@ -25242,7 +26231,7 @@ ] ], [ - 9468, + 10033, [ { "AllocSegment": { @@ -25255,7 +26244,7 @@ ] ], [ - 9484, + 10049, [ { "AllocSegment": { @@ -25268,7 +26257,7 @@ ] ], [ - 9510, + 10075, [ { "TestLessThanOrEqual": { @@ -25290,7 +26279,7 @@ ] ], [ - 9524, + 10089, [ { "TestLessThan": { @@ -25312,7 +26301,7 @@ ] ], [ - 9599, + 10164, [ { "TestLessThan": { @@ -25334,7 +26323,7 @@ ] ], [ - 9603, + 10168, [ { "LinearSplit": { @@ -25363,7 +26352,7 @@ ] ], [ - 9613, + 10178, [ { "LinearSplit": { @@ -25392,7 +26381,7 @@ ] ], [ - 9631, + 10196, [ { "SystemCall": { @@ -25407,7 +26396,7 @@ ] ], [ - 9649, + 10214, [ { "AllocSegment": { @@ -25420,7 +26409,7 @@ ] ], [ - 9668, + 10233, [ { "TestLessThan": { @@ -25442,7 +26431,7 @@ ] ], [ - 9672, + 10237, [ { "LinearSplit": { @@ -25471,7 +26460,7 @@ ] ], [ - 9682, + 10247, [ { "LinearSplit": { @@ -25500,7 +26489,7 @@ ] ], [ - 9700, + 10265, [ { "SystemCall": { @@ -25515,7 +26504,7 @@ ] ], [ - 9718, + 10283, [ { "AllocSegment": { @@ -25528,7 +26517,7 @@ ] ], [ - 9749, + 10314, [ { "AllocSegment": { @@ -25541,7 +26530,7 @@ ] ], [ - 9773, + 10338, [ { "AllocSegment": { @@ -25554,7 +26543,7 @@ ] ], [ - 9787, + 10352, [ { "AllocSegment": { @@ -25567,7 +26556,7 @@ ] ], [ - 9801, + 10366, [ { "AllocSegment": { @@ -25580,7 +26569,7 @@ ] ], [ - 9815, + 10380, [ { "AllocSegment": { @@ -25593,7 +26582,7 @@ ] ], [ - 9830, + 10395, [ { "AllocSegment": { @@ -25606,7 +26595,7 @@ ] ], [ - 9845, + 10410, [ { "TestLessThanOrEqual": { @@ -25628,7 +26617,7 @@ ] ], [ - 9859, + 10424, [ { "AllocSegment": { @@ -25641,7 +26630,7 @@ ] ], [ - 9879, + 10444, [ { "AllocSegment": { @@ -25654,7 +26643,7 @@ ] ], [ - 9893, + 10458, [ { "TestLessThanOrEqual": { @@ -25676,7 +26665,7 @@ ] ], [ - 9923, + 10488, [ { "AllocSegment": { @@ -25689,7 +26678,7 @@ ] ], [ - 9942, + 10507, [ { "TestLessThan": { @@ -25711,7 +26700,7 @@ ] ], [ - 9946, + 10511, [ { "LinearSplit": { @@ -25740,7 +26729,7 @@ ] ], [ - 9957, + 10522, [ { "LinearSplit": { @@ -25769,7 +26758,7 @@ ] ], [ - 9983, + 10548, [ { "SystemCall": { @@ -25784,7 +26773,7 @@ ] ], [ - 9998, + 10563, [ { "SystemCall": { @@ -25805,7 +26794,7 @@ ] ], [ - 10006, + 10571, [ { "TestLessThan": { @@ -25827,7 +26816,7 @@ ] ], [ - 10010, + 10575, [ { "LinearSplit": { @@ -25856,7 +26845,7 @@ ] ], [ - 10021, + 10586, [ { "LinearSplit": { @@ -25885,7 +26874,7 @@ ] ], [ - 10051, + 10616, [ { "SystemCall": { @@ -25906,7 +26895,7 @@ ] ], [ - 10067, + 10632, [ { "SystemCall": { @@ -25927,7 +26916,7 @@ ] ], [ - 10175, + 10740, [ { "TestLessThan": { @@ -25949,7 +26938,7 @@ ] ], [ - 10177, + 10742, [ { "DivMod": { @@ -25975,7 +26964,7 @@ ] ], [ - 10222, + 10787, [ { "TestLessThan": { @@ -25997,7 +26986,7 @@ ] ], [ - 10224, + 10789, [ { "DivMod": { @@ -26023,7 +27012,7 @@ ] ], [ - 10333, + 10898, [ { "TestLessThan": { @@ -26045,7 +27034,7 @@ ] ], [ - 10337, + 10902, [ { "LinearSplit": { @@ -26074,7 +27063,7 @@ ] ], [ - 10348, + 10913, [ { "LinearSplit": { @@ -26103,7 +27092,7 @@ ] ], [ - 10374, + 10939, [ { "SystemCall": { @@ -26118,7 +27107,7 @@ ] ], [ - 10389, + 10954, [ { "SystemCall": { @@ -26139,7 +27128,7 @@ ] ], [ - 10396, + 10961, [ { "TestLessThan": { @@ -26161,7 +27150,7 @@ ] ], [ - 10398, + 10963, [ { "DivMod": { @@ -26187,7 +27176,7 @@ ] ], [ - 10419, + 10984, [ { "TestLessThan": { @@ -26209,7 +27198,7 @@ ] ], [ - 10421, + 10986, [ { "DivMod": { @@ -26235,7 +27224,7 @@ ] ], [ - 10451, + 11016, [ { "TestLessThan": { @@ -26257,7 +27246,7 @@ ] ], [ - 10455, + 11020, [ { "LinearSplit": { @@ -26286,7 +27275,7 @@ ] ], [ - 10466, + 11031, [ { "LinearSplit": { @@ -26315,7 +27304,7 @@ ] ], [ - 10497, + 11062, [ { "SystemCall": { @@ -26330,7 +27319,7 @@ ] ], [ - 10512, + 11077, [ { "SystemCall": { @@ -26351,7 +27340,7 @@ ] ], [ - 10556, + 11121, [ { "AllocSegment": { @@ -26364,7 +27353,7 @@ ] ], [ - 10575, + 11140, [ { "AllocSegment": { @@ -26377,7 +27366,7 @@ ] ], [ - 10657, + 11222, [ { "RandomEcPoint": { @@ -26405,7 +27394,7 @@ ] ], [ - 10721, + 11286, [ { "RandomEcPoint": { @@ -26433,7 +27422,7 @@ ] ], [ - 10791, + 11356, [ { "AllocSegment": { @@ -26446,7 +27435,7 @@ ] ], [ - 10817, + 11382, [ { "SystemCall": { @@ -26461,7 +27450,7 @@ ] ], [ - 10834, + 11399, [ { "SystemCall": { @@ -26482,7 +27471,7 @@ ] ], [ - 10876, + 11441, [ { "AllocSegment": { @@ -26495,7 +27484,7 @@ ] ], [ - 10893, + 11458, [ { "AllocSegment": { @@ -26508,7 +27497,7 @@ ] ], [ - 10912, + 11477, [ { "SystemCall": { @@ -26523,7 +27512,7 @@ ] ], [ - 10922, + 11487, [ { "TestLessThan": { @@ -26545,7 +27534,7 @@ ] ], [ - 10926, + 11491, [ { "LinearSplit": { @@ -26574,7 +27563,7 @@ ] ], [ - 10937, + 11502, [ { "LinearSplit": { @@ -26603,7 +27592,7 @@ ] ], [ - 10981, + 11546, [ { "SystemCall": { @@ -26624,7 +27613,7 @@ ] ], [ - 10996, + 11561, [ { "SystemCall": { @@ -26645,7 +27634,7 @@ ] ], [ - 11006, + 11571, [ { "TestLessThan": { @@ -26670,7 +27659,7 @@ ] ], [ - 11021, + 11586, [ { "TestLessThan": { @@ -26695,7 +27684,7 @@ ] ], [ - 11037, + 11602, [ { "TestLessThan": { @@ -26717,7 +27706,7 @@ ] ], [ - 11041, + 11606, [ { "LinearSplit": { @@ -26746,7 +27735,7 @@ ] ], [ - 11052, + 11617, [ { "LinearSplit": { @@ -26775,7 +27764,7 @@ ] ], [ - 11081, + 11646, [ { "SystemCall": { @@ -26790,7 +27779,7 @@ ] ], [ - 11097, + 11662, [ { "SystemCall": { @@ -26811,7 +27800,7 @@ ] ], [ - 11139, + 11704, [ { "AllocSegment": { @@ -26824,7 +27813,7 @@ ] ], [ - 11157, + 11722, [ { "AllocSegment": { @@ -26837,7 +27826,7 @@ ] ], [ - 11259, + 11824, [ { "AllocSegment": { @@ -26850,7 +27839,7 @@ ] ], [ - 11334, + 11899, [ { "EvalCircuit": { @@ -26883,7 +27872,7 @@ ] ], [ - 11391, + 11956, [ { "AllocSegment": { @@ -26896,7 +27885,7 @@ ] ], [ - 11447, + 12012, [ { "AllocSegment": { @@ -26909,7 +27898,7 @@ ] ], [ - 11540, + 12105, [ { "AllocSegment": { @@ -26922,7 +27911,7 @@ ] ], [ - 11561, + 12126, [ { "AllocSegment": { @@ -26935,7 +27924,7 @@ ] ], [ - 11632, + 12197, [ { "AllocSegment": { @@ -26948,7 +27937,7 @@ ] ], [ - 11660, + 12225, [ { "AllocSegment": { @@ -26961,7 +27950,7 @@ ] ], [ - 11731, + 12296, [ { "TestLessThan": { @@ -26989,7 +27978,7 @@ ] ], [ - 11735, + 12300, [ { "LinearSplit": { @@ -27018,7 +28007,7 @@ ] ], [ - 11757, + 12322, [ { "TestLessThanOrEqual": { @@ -27043,7 +28032,7 @@ ] ], [ - 11771, + 12336, [ { "TestLessThan": { @@ -27065,7 +28054,7 @@ ] ], [ - 11781, + 12346, [ { "TestLessThanOrEqual": { @@ -27090,7 +28079,7 @@ ] ], [ - 11804, + 12369, [ { "AllocSegment": { @@ -27103,7 +28092,7 @@ ] ], [ - 11825, + 12390, [ { "AllocSegment": { @@ -27116,7 +28105,7 @@ ] ], [ - 11846, + 12411, [ { "AllocSegment": { @@ -27129,7 +28118,7 @@ ] ], [ - 11894, + 12459, [ { "TestLessThanOrEqual": { @@ -27151,7 +28140,7 @@ ] ], [ - 11954, + 12519, [ { "AllocSegment": { @@ -27164,7 +28153,7 @@ ] ], [ - 11974, + 12539, [ { "TestLessThanOrEqual": { @@ -27186,7 +28175,7 @@ ] ], [ - 12053, + 12618, [ { "AllocSegment": { @@ -27199,7 +28188,7 @@ ] ], [ - 12083, + 12648, [ { "AllocSegment": { @@ -27212,7 +28201,7 @@ ] ], [ - 12103, + 12668, [ { "TestLessThanOrEqual": { @@ -27234,7 +28223,7 @@ ] ], [ - 12204, + 12769, [ { "AllocSegment": { @@ -27247,7 +28236,7 @@ ] ], [ - 12234, + 12799, [ { "AllocSegment": { @@ -27260,7 +28249,7 @@ ] ], [ - 12254, + 12819, [ { "TestLessThanOrEqual": { @@ -27282,7 +28271,7 @@ ] ], [ - 12325, + 12890, [ { "AllocSegment": { @@ -27295,7 +28284,7 @@ ] ], [ - 12346, + 12911, [ { "DivMod": { @@ -27324,7 +28313,7 @@ ] ], [ - 12404, + 12969, [ { "AllocSegment": { @@ -27337,7 +28326,7 @@ ] ], [ - 12457, + 13022, [ { "AllocSegment": { @@ -27350,7 +28339,7 @@ ] ], [ - 12470, + 13035, [ { "DivMod": { @@ -27379,7 +28368,7 @@ ] ], [ - 12478, + 13043, [ { "TestLessThan": { @@ -27410,7 +28399,7 @@ ] ], [ - 12495, + 13060, [ { "AllocSegment": { @@ -27423,7 +28412,7 @@ ] ], [ - 12527, + 13092, [ { "TestLessThan": { @@ -27445,7 +28434,7 @@ ] ], [ - 12544, + 13109, [ { "AllocSegment": { @@ -27458,7 +28447,7 @@ ] ], [ - 12560, + 13125, [ { "TestLessThan": { @@ -27489,7 +28478,7 @@ ] ], [ - 12582, + 13147, [ { "AllocSegment": { @@ -27502,7 +28491,7 @@ ] ], [ - 12639, + 13204, [ { "DivMod": { @@ -27531,7 +28520,7 @@ ] ], [ - 12648, + 13213, [ { "TestLessThan": { @@ -27553,7 +28542,7 @@ ] ], [ - 12658, + 13223, [ { "TestLessThan": { @@ -27584,7 +28573,7 @@ ] ], [ - 12680, + 13245, [ { "AllocSegment": { @@ -27597,7 +28586,7 @@ ] ], [ - 12695, + 13260, [ { "AllocSegment": { @@ -27610,7 +28599,7 @@ ] ], [ - 12720, + 13285, [ { "TestLessThan": { @@ -27641,7 +28630,7 @@ ] ], [ - 12734, + 13299, [ { "DivMod": { @@ -27670,7 +28659,7 @@ ] ], [ - 12751, + 13316, [ { "TestLessThan": { @@ -27692,7 +28681,7 @@ ] ], [ - 12763, + 13328, [ { "TestLessThan": { @@ -27714,7 +28703,7 @@ ] ], [ - 12773, + 13338, [ { "TestLessThan": { @@ -27745,7 +28734,7 @@ ] ], [ - 12796, + 13361, [ { "AllocSegment": { @@ -27758,7 +28747,7 @@ ] ], [ - 12811, + 13376, [ { "AllocSegment": { @@ -27771,7 +28760,7 @@ ] ], [ - 12826, + 13391, [ { "AllocSegment": { @@ -27784,7 +28773,7 @@ ] ], [ - 12841, + 13406, [ { "AllocSegment": { @@ -27797,7 +28786,7 @@ ] ], [ - 12854, + 13419, [ { "TestLessThanOrEqual": { @@ -27819,7 +28808,7 @@ ] ], [ - 12864, + 13429, [ { "TestLessThanOrEqualAddress": { @@ -27850,7 +28839,7 @@ ] ], [ - 12901, + 13466, [ { "SystemCall": { @@ -27865,7 +28854,7 @@ ] ], [ - 12934, + 13499, [ { "AllocSegment": { @@ -27878,7 +28867,7 @@ ] ], [ - 12968, + 13533, [ { "TestLessThan": { @@ -27900,7 +28889,7 @@ ] ], [ - 12990, + 13555, [ { "TestLessThan": { @@ -27922,7 +28911,7 @@ ] ], [ - 13027, + 13592, [ { "TestLessThan": { @@ -27944,7 +28933,7 @@ ] ], [ - 13049, + 13614, [ { "TestLessThan": { @@ -27966,7 +28955,7 @@ ] ], [ - 13125, + 13690, [ { "AllocSegment": { @@ -27979,7 +28968,7 @@ ] ], [ - 13190, + 13755, [ { "TestLessThan": { @@ -28001,7 +28990,7 @@ ] ], [ - 13214, + 13779, [ { "TestLessThan": { @@ -28023,7 +29012,7 @@ ] ], [ - 13255, + 13820, [ { "TestLessThan": { @@ -28045,7 +29034,7 @@ ] ], [ - 13281, + 13846, [ { "TestLessThan": { @@ -28067,7 +29056,7 @@ ] ], [ - 13325, + 13890, [ { "U256InvModN": { @@ -28124,7 +29113,7 @@ ] ], [ - 13343, + 13908, [ { "WideMul128": { @@ -28321,7 +29310,7 @@ ] ], [ - 13396, + 13961, [ { "WideMul128": { @@ -28374,7 +29363,7 @@ ] ], [ - 13400, + 13965, [ { "TestLessThan": { @@ -28396,7 +29385,7 @@ ] ], [ - 13414, + 13979, [ { "TestLessThan": { @@ -28418,7 +29407,7 @@ ] ], [ - 13427, + 13992, [ { "DivMod": { @@ -28444,7 +29433,7 @@ ] ], [ - 13437, + 14002, [ { "DivMod": { @@ -28470,7 +29459,7 @@ ] ], [ - 13448, + 14013, [ { "DivMod": { @@ -28496,7 +29485,7 @@ ] ], [ - 13457, + 14022, [ { "DivMod": { @@ -28522,7 +29511,7 @@ ] ], [ - 13467, + 14032, [ { "DivMod": { @@ -28548,7 +29537,7 @@ ] ], [ - 13478, + 14043, [ { "DivMod": { @@ -28574,7 +29563,7 @@ ] ], [ - 13487, + 14052, [ { "DivMod": { @@ -28600,7 +29589,7 @@ ] ], [ - 13497, + 14062, [ { "DivMod": { @@ -28626,7 +29615,7 @@ ] ], [ - 13508, + 14073, [ { "DivMod": { @@ -28652,7 +29641,7 @@ ] ], [ - 13517, + 14082, [ { "DivMod": { @@ -28678,7 +29667,7 @@ ] ], [ - 13527, + 14092, [ { "DivMod": { @@ -28704,7 +29693,7 @@ ] ], [ - 13538, + 14103, [ { "DivMod": { @@ -28730,7 +29719,7 @@ ] ], [ - 13547, + 14112, [ { "DivMod": { @@ -28756,7 +29745,7 @@ ] ], [ - 13557, + 14122, [ { "DivMod": { @@ -28782,7 +29771,7 @@ ] ], [ - 13568, + 14133, [ { "DivMod": { @@ -28808,7 +29797,7 @@ ] ], [ - 13577, + 14142, [ { "DivMod": { @@ -28834,7 +29823,7 @@ ] ], [ - 13587, + 14152, [ { "DivMod": { @@ -28860,7 +29849,7 @@ ] ], [ - 13598, + 14163, [ { "DivMod": { @@ -28886,7 +29875,7 @@ ] ], [ - 13607, + 14172, [ { "DivMod": { @@ -28912,7 +29901,7 @@ ] ], [ - 13617, + 14182, [ { "DivMod": { @@ -28938,7 +29927,7 @@ ] ], [ - 13628, + 14193, [ { "DivMod": { @@ -28964,7 +29953,7 @@ ] ], [ - 13637, + 14202, [ { "DivMod": { @@ -28990,7 +29979,7 @@ ] ], [ - 13647, + 14212, [ { "DivMod": { @@ -29016,7 +30005,7 @@ ] ], [ - 13658, + 14223, [ { "DivMod": { @@ -29042,7 +30031,7 @@ ] ], [ - 13679, + 14244, [ { "Uint512DivModByUint256": { @@ -29111,7 +30100,7 @@ ] ], [ - 13697, + 14262, [ { "WideMul128": { @@ -29236,7 +30225,7 @@ ] ], [ - 13726, + 14291, [ { "TestLessThan": { @@ -29261,7 +30250,7 @@ ] ], [ - 13738, + 14303, [ { "TestLessThan": { @@ -29286,7 +30275,7 @@ ] ], [ - 13753, + 14318, [ { "DivMod": { @@ -29312,7 +30301,7 @@ ] ], [ - 13763, + 14328, [ { "DivMod": { @@ -29338,7 +30327,7 @@ ] ], [ - 13774, + 14339, [ { "DivMod": { @@ -29364,7 +30353,7 @@ ] ], [ - 13783, + 14348, [ { "DivMod": { @@ -29390,7 +30379,7 @@ ] ], [ - 13793, + 14358, [ { "DivMod": { @@ -29416,7 +30405,7 @@ ] ], [ - 13804, + 14369, [ { "DivMod": { @@ -29442,7 +30431,7 @@ ] ], [ - 13813, + 14378, [ { "DivMod": { @@ -29468,7 +30457,7 @@ ] ], [ - 13823, + 14388, [ { "DivMod": { @@ -29494,7 +30483,7 @@ ] ], [ - 13834, + 14399, [ { "DivMod": { @@ -29520,7 +30509,7 @@ ] ], [ - 13843, + 14408, [ { "DivMod": { @@ -29546,7 +30535,7 @@ ] ], [ - 13853, + 14418, [ { "DivMod": { @@ -29572,7 +30561,7 @@ ] ], [ - 13864, + 14429, [ { "DivMod": { @@ -29598,7 +30587,7 @@ ] ], [ - 13873, + 14438, [ { "DivMod": { @@ -29624,7 +30613,7 @@ ] ], [ - 13883, + 14448, [ { "DivMod": { @@ -29650,7 +30639,7 @@ ] ], [ - 13894, + 14459, [ { "DivMod": { @@ -29676,7 +30665,7 @@ ] ], [ - 13915, + 14480, [ { "Uint512DivModByUint256": { @@ -29745,7 +30734,7 @@ ] ], [ - 13933, + 14498, [ { "WideMul128": { @@ -29870,7 +30859,7 @@ ] ], [ - 13962, + 14527, [ { "TestLessThan": { @@ -29895,7 +30884,7 @@ ] ], [ - 13974, + 14539, [ { "TestLessThan": { @@ -29920,7 +30909,7 @@ ] ], [ - 13989, + 14554, [ { "DivMod": { @@ -29946,7 +30935,7 @@ ] ], [ - 13999, + 14564, [ { "DivMod": { @@ -29972,7 +30961,7 @@ ] ], [ - 14010, + 14575, [ { "DivMod": { @@ -29998,7 +30987,7 @@ ] ], [ - 14019, + 14584, [ { "DivMod": { @@ -30024,7 +31013,7 @@ ] ], [ - 14029, + 14594, [ { "DivMod": { @@ -30050,7 +31039,7 @@ ] ], [ - 14040, + 14605, [ { "DivMod": { @@ -30076,7 +31065,7 @@ ] ], [ - 14049, + 14614, [ { "DivMod": { @@ -30102,7 +31091,7 @@ ] ], [ - 14059, + 14624, [ { "DivMod": { @@ -30128,7 +31117,7 @@ ] ], [ - 14070, + 14635, [ { "DivMod": { @@ -30154,7 +31143,7 @@ ] ], [ - 14079, + 14644, [ { "DivMod": { @@ -30180,7 +31169,7 @@ ] ], [ - 14089, + 14654, [ { "DivMod": { @@ -30206,7 +31195,7 @@ ] ], [ - 14100, + 14665, [ { "DivMod": { @@ -30232,7 +31221,7 @@ ] ], [ - 14109, + 14674, [ { "DivMod": { @@ -30258,7 +31247,7 @@ ] ], [ - 14119, + 14684, [ { "DivMod": { @@ -30284,7 +31273,7 @@ ] ], [ - 14130, + 14695, [ { "DivMod": { @@ -30310,7 +31299,7 @@ ] ], [ - 14157, + 14722, [ { "SystemCall": { @@ -30325,7 +31314,7 @@ ] ], [ - 14174, + 14739, [ { "SystemCall": { @@ -30340,7 +31329,7 @@ ] ], [ - 14186, + 14751, [ { "SystemCall": { @@ -30361,7 +31350,7 @@ ] ], [ - 14197, + 14762, [ { "SystemCall": { @@ -30382,7 +31371,7 @@ ] ], [ - 14207, + 14772, [ { "SystemCall": { @@ -30403,7 +31392,7 @@ ] ], [ - 14292, + 14857, [ { "AllocSegment": { @@ -30416,7 +31405,7 @@ ] ], [ - 14321, + 14886, [ { "DivMod": { @@ -30442,7 +31431,7 @@ ] ], [ - 14331, + 14896, [ { "DivMod": { @@ -30468,7 +31457,7 @@ ] ], [ - 14342, + 14907, [ { "DivMod": { @@ -30494,7 +31483,7 @@ ] ], [ - 14351, + 14916, [ { "DivMod": { @@ -30520,7 +31509,7 @@ ] ], [ - 14361, + 14926, [ { "DivMod": { @@ -30546,7 +31535,7 @@ ] ], [ - 14372, + 14937, [ { "DivMod": { @@ -30572,7 +31561,7 @@ ] ], [ - 14381, + 14946, [ { "AllocSegment": { @@ -30585,7 +31574,7 @@ ] ], [ - 14450, + 15015, [ { "TestLessThan": { @@ -30616,7 +31605,7 @@ ] ], [ - 14465, + 15030, [ { "TestLessThan": { @@ -30638,7 +31627,7 @@ ] ], [ - 14484, + 15049, [ { "TestLessThan": { @@ -30660,7 +31649,7 @@ ] ], [ - 14503, + 15068, [ { "TestLessThan": { @@ -30682,7 +31671,7 @@ ] ], [ - 14513, + 15078, [ { "TestLessThan": { @@ -30704,7 +31693,7 @@ ] ], [ - 14515, + 15080, [ { "DivMod": { @@ -30730,7 +31719,7 @@ ] ], [ - 14552, + 15117, [ { "TestLessThan": { @@ -30752,7 +31741,7 @@ ] ], [ - 14571, + 15136, [ { "AllocSegment": { @@ -30765,7 +31754,7 @@ ] ], [ - 14582, + 15147, [ { "DivMod": { @@ -30794,7 +31783,7 @@ ] ], [ - 14588, + 15153, [ { "TestLessThan": { @@ -30816,7 +31805,7 @@ ] ], [ - 14602, + 15167, [ { "TestLessThan": { @@ -30838,7 +31827,7 @@ ] ], [ - 14616, + 15181, [ { "TestLessThan": { @@ -30860,7 +31849,7 @@ ] ], [ - 14627, + 15192, [ { "TestLessThan": { @@ -30882,7 +31871,7 @@ ] ], [ - 14656, + 15221, [ { "AllocSegment": { @@ -30895,7 +31884,7 @@ ] ], [ - 14681, + 15246, [ { "TestLessThan": { @@ -30917,7 +31906,7 @@ ] ], [ - 14685, + 15250, [ { "LinearSplit": { @@ -30946,7 +31935,7 @@ ] ], [ - 14695, + 15260, [ { "LinearSplit": { @@ -30975,7 +31964,7 @@ ] ], [ - 14715, + 15280, [ { "AllocSegment": { @@ -30988,7 +31977,7 @@ ] ], [ - 14736, + 15301, [ { "AllocSegment": { @@ -31001,7 +31990,7 @@ ] ], [ - 14757, + 15322, [ { "AllocSegment": { @@ -31014,7 +32003,7 @@ ] ], [ - 14777, + 15342, [ { "TestLessThan": { @@ -31036,7 +32025,7 @@ ] ], [ - 14779, + 15344, [ { "DivMod": { @@ -31062,7 +32051,7 @@ ] ], [ - 14823, + 15388, [ { "AllocSegment": { @@ -31075,7 +32064,7 @@ ] ], [ - 14834, + 15399, [ { "DivMod": { @@ -31104,7 +32093,7 @@ ] ], [ - 14840, + 15405, [ { "TestLessThan": { @@ -31126,7 +32115,7 @@ ] ], [ - 14854, + 15419, [ { "TestLessThan": { @@ -31148,7 +32137,7 @@ ] ], [ - 14872, + 15437, [ { "TestLessThan": { @@ -31170,7 +32159,7 @@ ] ], [ - 14885, + 15450, [ { "TestLessThan": { @@ -31192,7 +32181,7 @@ ] ], [ - 14896, + 15461, [ { "TestLessThan": { @@ -31214,7 +32203,7 @@ ] ], [ - 14925, + 15490, [ { "AllocSegment": { @@ -31227,7 +32216,7 @@ ] ], [ - 14950, + 15515, [ { "TestLessThan": { @@ -31249,7 +32238,7 @@ ] ], [ - 14954, + 15519, [ { "LinearSplit": { @@ -31278,7 +32267,7 @@ ] ], [ - 14964, + 15529, [ { "LinearSplit": { @@ -31307,7 +32296,7 @@ ] ], [ - 14984, + 15549, [ { "AllocSegment": { @@ -31320,7 +32309,7 @@ ] ], [ - 15005, + 15570, [ { "AllocSegment": { @@ -31333,7 +32322,7 @@ ] ], [ - 15026, + 15591, [ { "AllocSegment": { @@ -31346,7 +32335,7 @@ ] ], [ - 15055, + 15620, [ { "TestLessThan": { @@ -31368,7 +32357,7 @@ ] ], [ - 15057, + 15622, [ { "DivMod": { @@ -31394,7 +32383,7 @@ ] ], [ - 15094, + 15659, [ { "TestLessThan": { @@ -31416,7 +32405,7 @@ ] ], [ - 15105, + 15670, [ { "TestLessThan": { @@ -31438,7 +32427,7 @@ ] ], [ - 15116, + 15681, [ { "TestLessThan": { @@ -31460,7 +32449,7 @@ ] ], [ - 15145, + 15710, [ { "AllocSegment": { @@ -31473,7 +32462,7 @@ ] ], [ - 15170, + 15735, [ { "TestLessThan": { @@ -31495,7 +32484,7 @@ ] ], [ - 15174, + 15739, [ { "LinearSplit": { @@ -31524,7 +32513,7 @@ ] ], [ - 15184, + 15749, [ { "LinearSplit": { @@ -31553,7 +32542,7 @@ ] ], [ - 15210, + 15775, [ { "AllocSegment": { @@ -31566,7 +32555,7 @@ ] ], [ - 15231, + 15796, [ { "AllocSegment": { @@ -31579,7 +32568,7 @@ ] ], [ - 15253, + 15818, [ { "AllocSegment": { @@ -31592,7 +32581,7 @@ ] ], [ - 15275, + 15840, [ { "TestLessThan": { @@ -31614,7 +32603,7 @@ ] ], [ - 15286, + 15851, [ { "TestLessThan": { @@ -31636,7 +32625,7 @@ ] ], [ - 15315, + 15880, [ { "AllocSegment": { @@ -31649,7 +32638,7 @@ ] ], [ - 15340, + 15905, [ { "TestLessThan": { @@ -31671,7 +32660,7 @@ ] ], [ - 15344, + 15909, [ { "LinearSplit": { @@ -31700,7 +32689,7 @@ ] ], [ - 15354, + 15919, [ { "LinearSplit": { @@ -31729,7 +32718,7 @@ ] ], [ - 15377, + 15942, [ { "AllocSegment": { @@ -31742,7 +32731,7 @@ ] ], [ - 15422, + 15987, [ { "TestLessThan": { @@ -31764,7 +32753,7 @@ ] ], [ - 15433, + 15998, [ { "TestLessThan": { @@ -31786,7 +32775,7 @@ ] ], [ - 15462, + 16027, [ { "AllocSegment": { @@ -31799,7 +32788,7 @@ ] ], [ - 15485, + 16050, [ { "TestLessThan": { @@ -31830,7 +32819,7 @@ ] ], [ - 15509, + 16074, [ { "AllocSegment": { @@ -31843,7 +32832,7 @@ ] ], [ - 15553, + 16118, [ { "AllocSegment": { @@ -31856,7 +32845,7 @@ ] ], [ - 15580, + 16145, [ { "TestLessThanOrEqual": { @@ -31878,7 +32867,7 @@ ] ], [ - 15632, + 16197, [ { "AllocSegment": { @@ -31891,7 +32880,7 @@ ] ], [ - 15689, + 16254, [ { "TestLessThan": { @@ -31919,7 +32908,7 @@ ] ], [ - 15693, + 16258, [ { "LinearSplit": { @@ -31948,7 +32937,7 @@ ] ], [ - 15735, + 16300, [ { "TestLessThan": { @@ -31970,7 +32959,7 @@ ] ], [ - 15737, + 16302, [ { "DivMod": { @@ -31996,7 +32985,7 @@ ] ], [ - 15824, + 16389, [ { "DivMod": { @@ -32025,7 +33014,7 @@ ] ], [ - 15830, + 16395, [ { "TestLessThan": { @@ -32047,7 +33036,7 @@ ] ], [ - 15841, + 16406, [ { "TestLessThan": { @@ -32069,7 +33058,7 @@ ] ], [ - 15851, + 16416, [ { "TestLessThan": { @@ -32091,7 +33080,7 @@ ] ], [ - 15865, + 16430, [ { "DivMod": { @@ -32120,7 +33109,7 @@ ] ], [ - 15871, + 16436, [ { "TestLessThan": { @@ -32142,7 +33131,7 @@ ] ], [ - 15885, + 16450, [ { "TestLessThan": { @@ -32164,7 +33153,7 @@ ] ], [ - 15895, + 16460, [ { "TestLessThan": { @@ -32186,7 +33175,7 @@ ] ], [ - 15917, + 16482, [ { "AllocSegment": { @@ -32199,7 +33188,7 @@ ] ], [ - 15931, + 16496, [ { "AllocSegment": { @@ -32212,7 +33201,7 @@ ] ], [ - 15949, + 16514, [ { "AllocSegment": { @@ -32225,7 +33214,7 @@ ] ], [ - 15963, + 16528, [ { "AllocSegment": { @@ -32238,7 +33227,7 @@ ] ], [ - 15979, + 16544, [ { "TestLessThanOrEqual": { @@ -32260,7 +33249,7 @@ ] ], [ - 16006, + 16571, [ { "TestLessThan": { @@ -32282,7 +33271,7 @@ ] ], [ - 16023, + 16588, [ { "AllocSegment": { @@ -32295,7 +33284,7 @@ ] ], [ - 16048, + 16613, [ { "AllocSegment": { @@ -32308,7 +33297,7 @@ ] ], [ - 16308, + 16873, [ { "SystemCall": { @@ -32323,7 +33312,7 @@ ] ], [ - 16334, + 16899, [ { "SystemCall": { @@ -32338,7 +33327,7 @@ ] ], [ - 16348, + 16913, [ { "U256InvModN": { @@ -32395,7 +33384,7 @@ ] ], [ - 16366, + 16931, [ { "WideMul128": { @@ -32592,7 +33581,7 @@ ] ], [ - 16419, + 16984, [ { "WideMul128": { @@ -32645,7 +33634,7 @@ ] ], [ - 16423, + 16988, [ { "TestLessThan": { @@ -32667,7 +33656,7 @@ ] ], [ - 16437, + 17002, [ { "TestLessThan": { @@ -32689,7 +33678,7 @@ ] ], [ - 16450, + 17015, [ { "DivMod": { @@ -32715,7 +33704,7 @@ ] ], [ - 16460, + 17025, [ { "DivMod": { @@ -32741,7 +33730,7 @@ ] ], [ - 16471, + 17036, [ { "DivMod": { @@ -32767,7 +33756,7 @@ ] ], [ - 16480, + 17045, [ { "DivMod": { @@ -32793,7 +33782,7 @@ ] ], [ - 16490, + 17055, [ { "DivMod": { @@ -32819,7 +33808,7 @@ ] ], [ - 16501, + 17066, [ { "DivMod": { @@ -32845,7 +33834,7 @@ ] ], [ - 16510, + 17075, [ { "DivMod": { @@ -32871,7 +33860,7 @@ ] ], [ - 16520, + 17085, [ { "DivMod": { @@ -32897,7 +33886,7 @@ ] ], [ - 16531, + 17096, [ { "DivMod": { @@ -32923,7 +33912,7 @@ ] ], [ - 16540, + 17105, [ { "DivMod": { @@ -32949,7 +33938,7 @@ ] ], [ - 16550, + 17115, [ { "DivMod": { @@ -32975,7 +33964,7 @@ ] ], [ - 16561, + 17126, [ { "DivMod": { @@ -33001,7 +33990,7 @@ ] ], [ - 16570, + 17135, [ { "DivMod": { @@ -33027,7 +34016,7 @@ ] ], [ - 16580, + 17145, [ { "DivMod": { @@ -33053,7 +34042,7 @@ ] ], [ - 16591, + 17156, [ { "DivMod": { @@ -33079,7 +34068,7 @@ ] ], [ - 16600, + 17165, [ { "DivMod": { @@ -33105,7 +34094,7 @@ ] ], [ - 16610, + 17175, [ { "DivMod": { @@ -33131,7 +34120,7 @@ ] ], [ - 16621, + 17186, [ { "DivMod": { @@ -33157,7 +34146,7 @@ ] ], [ - 16630, + 17195, [ { "DivMod": { @@ -33183,7 +34172,7 @@ ] ], [ - 16640, + 17205, [ { "DivMod": { @@ -33209,7 +34198,7 @@ ] ], [ - 16651, + 17216, [ { "DivMod": { @@ -33235,7 +34224,7 @@ ] ], [ - 16660, + 17225, [ { "DivMod": { @@ -33261,7 +34250,7 @@ ] ], [ - 16670, + 17235, [ { "DivMod": { @@ -33287,7 +34276,7 @@ ] ], [ - 16681, + 17246, [ { "DivMod": { @@ -33313,7 +34302,7 @@ ] ], [ - 16702, + 17267, [ { "Uint512DivModByUint256": { @@ -33382,7 +34371,7 @@ ] ], [ - 16720, + 17285, [ { "WideMul128": { @@ -33507,7 +34496,7 @@ ] ], [ - 16749, + 17314, [ { "TestLessThan": { @@ -33532,7 +34521,7 @@ ] ], [ - 16761, + 17326, [ { "TestLessThan": { @@ -33557,7 +34546,7 @@ ] ], [ - 16776, + 17341, [ { "DivMod": { @@ -33583,7 +34572,7 @@ ] ], [ - 16786, + 17351, [ { "DivMod": { @@ -33609,7 +34598,7 @@ ] ], [ - 16797, + 17362, [ { "DivMod": { @@ -33635,7 +34624,7 @@ ] ], [ - 16806, + 17371, [ { "DivMod": { @@ -33661,7 +34650,7 @@ ] ], [ - 16816, + 17381, [ { "DivMod": { @@ -33687,7 +34676,7 @@ ] ], [ - 16827, + 17392, [ { "DivMod": { @@ -33713,7 +34702,7 @@ ] ], [ - 16836, + 17401, [ { "DivMod": { @@ -33739,7 +34728,7 @@ ] ], [ - 16846, + 17411, [ { "DivMod": { @@ -33765,7 +34754,7 @@ ] ], [ - 16857, + 17422, [ { "DivMod": { @@ -33791,7 +34780,7 @@ ] ], [ - 16866, + 17431, [ { "DivMod": { @@ -33817,7 +34806,7 @@ ] ], [ - 16876, + 17441, [ { "DivMod": { @@ -33843,7 +34832,7 @@ ] ], [ - 16887, + 17452, [ { "DivMod": { @@ -33869,7 +34858,7 @@ ] ], [ - 16896, + 17461, [ { "DivMod": { @@ -33895,7 +34884,7 @@ ] ], [ - 16906, + 17471, [ { "DivMod": { @@ -33921,7 +34910,7 @@ ] ], [ - 16917, + 17482, [ { "DivMod": { @@ -33947,7 +34936,7 @@ ] ], [ - 16929, + 17494, [ { "TestLessThan": { @@ -33969,7 +34958,7 @@ ] ], [ - 16954, + 17519, [ { "TestLessThan": { @@ -33991,7 +34980,7 @@ ] ], [ - 16974, + 17539, [ { "TestLessThan": { @@ -34013,7 +35002,7 @@ ] ], [ - 17010, + 17575, [ { "Uint512DivModByUint256": { @@ -34082,7 +35071,7 @@ ] ], [ - 17028, + 17593, [ { "WideMul128": { @@ -34207,7 +35196,7 @@ ] ], [ - 17057, + 17622, [ { "TestLessThan": { @@ -34232,7 +35221,7 @@ ] ], [ - 17069, + 17634, [ { "TestLessThan": { @@ -34257,7 +35246,7 @@ ] ], [ - 17084, + 17649, [ { "DivMod": { @@ -34283,7 +35272,7 @@ ] ], [ - 17094, + 17659, [ { "DivMod": { @@ -34309,7 +35298,7 @@ ] ], [ - 17105, + 17670, [ { "DivMod": { @@ -34335,7 +35324,7 @@ ] ], [ - 17114, + 17679, [ { "DivMod": { @@ -34361,7 +35350,7 @@ ] ], [ - 17124, + 17689, [ { "DivMod": { @@ -34387,7 +35376,7 @@ ] ], [ - 17135, + 17700, [ { "DivMod": { @@ -34413,7 +35402,7 @@ ] ], [ - 17144, + 17709, [ { "DivMod": { @@ -34439,7 +35428,7 @@ ] ], [ - 17154, + 17719, [ { "DivMod": { @@ -34465,7 +35454,7 @@ ] ], [ - 17165, + 17730, [ { "DivMod": { @@ -34491,7 +35480,7 @@ ] ], [ - 17174, + 17739, [ { "DivMod": { @@ -34517,7 +35506,7 @@ ] ], [ - 17184, + 17749, [ { "DivMod": { @@ -34543,7 +35532,7 @@ ] ], [ - 17195, + 17760, [ { "DivMod": { @@ -34569,7 +35558,7 @@ ] ], [ - 17204, + 17769, [ { "DivMod": { @@ -34595,7 +35584,7 @@ ] ], [ - 17214, + 17779, [ { "DivMod": { @@ -34621,7 +35610,7 @@ ] ], [ - 17225, + 17790, [ { "DivMod": { @@ -34647,7 +35636,7 @@ ] ], [ - 17245, + 17810, [ { "SystemCall": { @@ -34662,7 +35651,7 @@ ] ], [ - 17257, + 17822, [ { "SystemCall": { @@ -34683,7 +35672,7 @@ ] ], [ - 17268, + 17833, [ { "SystemCall": { @@ -34704,7 +35693,7 @@ ] ], [ - 17314, + 17879, [ { "AllocSegment": { @@ -34717,7 +35706,7 @@ ] ], [ - 17330, + 17895, [ { "DivMod": { @@ -34743,7 +35732,7 @@ ] ], [ - 17340, + 17905, [ { "DivMod": { @@ -34769,7 +35758,7 @@ ] ], [ - 17351, + 17916, [ { "DivMod": { @@ -34795,7 +35784,7 @@ ] ], [ - 17360, + 17925, [ { "DivMod": { @@ -34821,7 +35810,7 @@ ] ], [ - 17370, + 17935, [ { "DivMod": { @@ -34847,7 +35836,7 @@ ] ], [ - 17381, + 17946, [ { "DivMod": { @@ -34873,7 +35862,7 @@ ] ], [ - 17390, + 17955, [ { "AllocSegment": { @@ -34886,7 +35875,7 @@ ] ], [ - 17407, + 17972, [ { "AllocSegment": { @@ -34899,7 +35888,7 @@ ] ], [ - 17464, + 18029, [ { "SystemCall": { @@ -34914,7 +35903,7 @@ ] ], [ - 17471, + 18036, [ { "AllocConstantSize": { @@ -34930,7 +35919,7 @@ ] ], [ - 17475, + 18040, [ { "AllocSegment": { @@ -34943,7 +35932,7 @@ ] ], [ - 17510, + 18075, [ { "SystemCall": { @@ -34958,7 +35947,7 @@ ] ], [ - 17583, + 18148, [ { "DivMod": { @@ -34987,7 +35976,7 @@ ] ], [ - 17589, + 18154, [ { "TestLessThan": { @@ -35009,7 +35998,7 @@ ] ], [ - 17656, + 18221, [ { "WideMul128": { @@ -35038,7 +36027,7 @@ ] ], [ - 17658, + 18223, [ { "DivMod": { @@ -35064,7 +36053,7 @@ ] ], [ - 17668, + 18233, [ { "DivMod": { @@ -35090,7 +36079,7 @@ ] ], [ - 17679, + 18244, [ { "DivMod": { @@ -35116,7 +36105,7 @@ ] ], [ - 17688, + 18253, [ { "WideMul128": { @@ -35145,7 +36134,7 @@ ] ], [ - 17690, + 18255, [ { "DivMod": { @@ -35171,7 +36160,7 @@ ] ], [ - 17700, + 18265, [ { "DivMod": { @@ -35197,7 +36186,7 @@ ] ], [ - 17711, + 18276, [ { "DivMod": { @@ -35223,7 +36212,7 @@ ] ], [ - 17721, + 18286, [ { "TestLessThan": { @@ -35245,7 +36234,7 @@ ] ], [ - 17743, + 18308, [ { "WideMul128": { @@ -35274,7 +36263,7 @@ ] ], [ - 17745, + 18310, [ { "DivMod": { @@ -35300,7 +36289,7 @@ ] ], [ - 17755, + 18320, [ { "DivMod": { @@ -35326,7 +36315,7 @@ ] ], [ - 17766, + 18331, [ { "DivMod": { @@ -35352,7 +36341,7 @@ ] ], [ - 17776, + 18341, [ { "TestLessThan": { @@ -35374,7 +36363,7 @@ ] ], [ - 17799, + 18364, [ { "TestLessThan": { @@ -35396,7 +36385,7 @@ ] ], [ - 17821, + 18386, [ { "WideMul128": { @@ -35425,7 +36414,7 @@ ] ], [ - 17823, + 18388, [ { "DivMod": { @@ -35451,7 +36440,7 @@ ] ], [ - 17833, + 18398, [ { "DivMod": { @@ -35477,7 +36466,7 @@ ] ], [ - 17844, + 18409, [ { "DivMod": { @@ -35503,7 +36492,7 @@ ] ], [ - 17854, + 18419, [ { "TestLessThan": { @@ -35525,7 +36514,7 @@ ] ], [ - 17878, + 18443, [ { "TestLessThan": { @@ -35547,7 +36536,7 @@ ] ], [ - 17903, + 18468, [ { "TestLessThan": { @@ -35569,7 +36558,7 @@ ] ], [ - 17927, + 18492, [ { "TestLessThan": { @@ -35591,7 +36580,7 @@ ] ], [ - 18045, + 18610, [ { "AllocSegment": { @@ -35604,7 +36593,7 @@ ] ], [ - 18068, + 18633, [ { "TestLessThanOrEqual": { @@ -35629,7 +36618,7 @@ ] ], [ - 18143, + 18708, [ { "AllocSegment": { @@ -35642,7 +36631,7 @@ ] ], [ - 18198, + 18763, [ { "DivMod": { @@ -35671,7 +36660,7 @@ ] ], [ - 18204, + 18769, [ { "TestLessThan": { @@ -35693,7 +36682,7 @@ ] ], [ - 18217, + 18782, [ { "TestLessThan": { @@ -35715,7 +36704,7 @@ ] ], [ - 18227, + 18792, [ { "TestLessThan": { @@ -35737,7 +36726,7 @@ ] ], [ - 18275, + 18840, [ { "DivMod": { @@ -35766,7 +36755,7 @@ ] ], [ - 18281, + 18846, [ { "TestLessThan": { @@ -35788,7 +36777,7 @@ ] ], [ - 18297, + 18862, [ { "TestLessThan": { @@ -35810,7 +36799,7 @@ ] ], [ - 18307, + 18872, [ { "TestLessThan": { @@ -35832,7 +36821,7 @@ ] ], [ - 18330, + 18895, [ { "AllocSegment": { @@ -35845,7 +36834,7 @@ ] ], [ - 18344, + 18909, [ { "AllocSegment": { @@ -35858,7 +36847,7 @@ ] ], [ - 18363, + 18928, [ { "AllocSegment": { @@ -35871,7 +36860,7 @@ ] ], [ - 18377, + 18942, [ { "AllocSegment": { @@ -35888,14 +36877,14 @@ "EXTERNAL": [ { "selector": "0x1143aa89c8e3ebf8ed14df2a3606c1cd2dd513fac8040b0f8ab441f5c52fe4", - "offset": 3981, + "offset": 4404, "builtins": [ "range_check" ] }, { "selector": "0x3541591104188daef4379e06e92ecce09094a3b381da2e654eb041d00566d8", - "offset": 5511, + "offset": 5934, "builtins": [ "range_check", "range_check96" @@ -35903,35 +36892,35 @@ }, { "selector": "0x3c118a68e16e12e97ed25cb4901c12f4d3162818669cc44c391d8049924c14", - "offset": 1226, + "offset": 1649, "builtins": [ "range_check" ] }, { "selector": "0x5562b3e932b4d139366854d5a2e578382e6a3b6572ac9943d55e7efbe43d00", - "offset": 3383, + "offset": 3806, "builtins": [ "range_check" ] }, { "selector": "0x600c98a299d72ef1e09a2e1503206fbc76081233172c65f7e2438ef0069d8d", - "offset": 4120, + "offset": 4543, "builtins": [ "range_check" ] }, { "selector": "0x62c83572d28cb834a3de3c1e94977a4191469a4a8c26d1d7bc55305e640ed5", - "offset": 3564, + "offset": 3987, "builtins": [ "range_check" ] }, { "selector": "0x679c22735055a10db4f275395763a3752a1e3a3043c192299ab6b574fba8d6", - "offset": 4966, + "offset": 5389, "builtins": [ "range_check", "ec_op" @@ -35939,7 +36928,7 @@ }, { "selector": "0x7772be8b80a8a33dc6c1f9a6ab820c02e537c73e859de67f288c70f92571bb", - "offset": 4611, + "offset": 5034, "builtins": [ "pedersen", "range_check", @@ -35955,21 +36944,21 @@ }, { "selector": "0xe7510edcf6e9f1b70f7bd1f488767b50f0363422f3c563160ab77adf62467b", - "offset": 2107, + "offset": 2530, "builtins": [ "range_check" ] }, { "selector": "0xf818e4530ec36b83dfe702489b4df537308c3b798b0cc120e32c2056d68b7d", - "offset": 2958, + "offset": 3381, "builtins": [ "range_check" ] }, { "selector": "0x10d2fede95e3ec06a875a67219425c27c5bd734d57f1b221d729a2337b6b556", - "offset": 2506, + "offset": 2929, "builtins": [ "range_check", "segment_arena" @@ -35977,36 +36966,43 @@ }, { "selector": "0x12ead94ae9d3f9d2bdb6b847cf255f1f398193a1f88884a0ae8e18f24a037b6", - "offset": 5227, + "offset": 5650, "builtins": [ "range_check" ] }, { "selector": "0x14dae1999ae9ab799bc72def6dc6e90890cf8ac0d64525021b7e71d05cb13e8", - "offset": 712, + "offset": 1135, "builtins": [ "range_check" ] }, { "selector": "0x169f135eddda5ab51886052d777a57f2ea9c162d713691b5e04a6d4ed71d47f", - "offset": 2617, + "offset": 3040, "builtins": [ "range_check" ] }, { "selector": "0x1ae1a515cf2d214b29bdf63a79ee2d490efd4dd1acc99d383a8e549c3cecb5d", - "offset": 5077, + "offset": 5500, "builtins": [ "pedersen", "range_check" ] }, + { + "selector": "0x1e4089d1f1349077b1970f9937c904e27c4582b49a60b6078946dba95bc3c08", + "offset": 1002, + "builtins": [ + "range_check" + ] + }, { "selector": "0x23039bef544cff56442d9f61ae9b13cf9e36fcce009102c5b678aac93f37b36", - "offset": 1048, + "offset": 1471, "builtins": [ "range_check" ] @@ -36020,21 +37016,28 @@ }, { "selector": "0x2d7cf5d5a324a320f9f37804b1615a533fde487400b41af80f13f7ac5581325", - "offset": 2281, + "offset": 2704, "builtins": [ "range_check" ] }, { "selector": "0x30f842021fbf02caf80d09a113997c1e00a32870eee0c6136bed27acb348bea", - "offset": 4759, + "offset": 5182, + "builtins": [ + "range_check" + ] + }, + { + "selector": "0x31401f504973a5e8e1bb41e9c592519e3aa0b8cf6bbfb9c91b532aab8db54b0", + "offset": 712, "builtins": [ "range_check" ] }, { "selector": "0x317eb442b72a9fae758d4fb26830ed0d9f31c8e7da4dbff4e8c59ea6a158e7f", - "offset": 4387, + "offset": 4810, "builtins": [ "pedersen", "range_check" @@ -36042,28 +37045,28 @@ }, { "selector": "0x32564d7e0fe091d49b4c20f4632191e4ed6986bf993849879abfef9465def25", - "offset": 3749, + "offset": 4172, "builtins": [ "range_check" ] }, { "selector": "0x3604cea1cdb094a73a31144f14a3e5861613c008e1e879939ebc4827d10cd50", - "offset": 1515, + "offset": 1938, "builtins": [ "range_check" ] }, { "selector": "0x382be990ca34815134e64a9ac28f41a907c62e5ad10547f97174362ab94dc89", - "offset": 3062, + "offset": 3485, "builtins": [ "range_check" ] }, { "selector": "0x38be5d5f7bf135b52888ba3e440a457d11107aca3f6542e574b016bf3f074d8", - "offset": 3166, + "offset": 3589, "builtins": [ "range_check", "bitwise" @@ -36071,7 +37074,7 @@ }, { "selector": "0x3a6a8bae4c51d5959683ae246347ffdd96aa5b2bfa68cc8c3a6a7c2ed0be331", - "offset": 1806, + "offset": 2229, "builtins": [ "range_check" ] @@ -36085,7 +37088,7 @@ }, { "selector": "0x3d3da80997f8be5d16e9ae7ee6a4b5f7191d60765a1a6c219ab74269c85cf97", - "offset": 5383, + "offset": 5806, "builtins": [ "range_check", "range_check96", @@ -36095,14 +37098,14 @@ }, { "selector": "0x3d95049b565ec2d4197a55108ef03996381d31c84acf392a0a42b28163d69d1", - "offset": 3279, + "offset": 3702, "builtins": [ "range_check" ] }, { "selector": "0x3eb640b15f75fcc06d43182cdb94ed38c8e71755d5fb57c16dd673b466db1d4", - "offset": 3842, + "offset": 4265, "builtins": [ "range_check" ] @@ -36111,14 +37114,14 @@ "L1_HANDLER": [ { "selector": "0x205500a208d0d49d79197fea83cc3f5fde99ac2e1909ae0a5d9f394c0c52ed0", - "offset": 5795, + "offset": 6218, "builtins": [ "range_check" ] }, { "selector": "0x39edbbb129ad752107a94d40c3873cae369a46fd2fc578d075679aa67e85d12", - "offset": 5634, + "offset": 6057, "builtins": [ "range_check" ] @@ -36127,11 +37130,11 @@ "CONSTRUCTOR": [ { "selector": "0x28ffe4ff0f226a9107253e17a904099aa4f63a02a5621de0576e5aa71bc5194", - "offset": 6045, + "offset": 6468, "builtins": [ "range_check" ] } ] } -} +} \ No newline at end of file diff --git a/crates/blockifier/feature_contracts/cairo1/test_contract.cairo b/crates/blockifier/feature_contracts/cairo1/test_contract.cairo index 604c9f278b..8efce37f68 100644 --- a/crates/blockifier/feature_contracts/cairo1/test_contract.cairo +++ b/crates/blockifier/feature_contracts/cairo1/test_contract.cairo @@ -71,6 +71,37 @@ mod TestContract { .span() } + + #[external(v0)] + fn test_call_contract_revert( + ref self: ContractState, + contract_address: ContractAddress, + entry_point_selector: felt252, + calldata: Array:: + ) { + match syscalls::call_contract_syscall( + contract_address, entry_point_selector, calldata.span()) + { + Result::Ok(_) => panic!("Expected revert"), + Result::Err(errors) => { + let mut error_span = errors.span(); + assert( + *error_span.pop_back().unwrap() == 'ENTRYPOINT_FAILED', + 'Unexpected error', + ); + }, + }; + // TODO(Yoni, 1/12/2024): test replace class once get_class_hash_at syscall is supported. + assert(self.my_storage_var.read() == 0, 'values should not change.'); + } + + + #[external(v0)] + fn test_revert_helper(ref self: ContractState) { + self.my_storage_var.write(17); + panic!("test_revert_helper"); + } + #[external(v0)] fn test_emit_events( self: @ContractState, events_number: u64, keys: Array::, data: Array:: diff --git a/crates/blockifier/src/execution/deprecated_syscalls/hint_processor.rs b/crates/blockifier/src/execution/deprecated_syscalls/hint_processor.rs index d11ba19302..1cab9b57fb 100644 --- a/crates/blockifier/src/execution/deprecated_syscalls/hint_processor.rs +++ b/crates/blockifier/src/execution/deprecated_syscalls/hint_processor.rs @@ -502,8 +502,12 @@ pub fn execute_inner_call( vm: &mut VirtualMachine, syscall_handler: &mut DeprecatedSyscallHintProcessor<'_>, ) -> DeprecatedSyscallResult { - let call_info = - call.execute(syscall_handler.state, syscall_handler.resources, syscall_handler.context)?; + // Use `execute_outer_call` since we don't support reverts here. + let call_info = call.execute_outer_call( + syscall_handler.state, + syscall_handler.resources, + syscall_handler.context, + )?; let retdata = &call_info.execution.retdata.0; let retdata: Vec = retdata.iter().map(|&x| MaybeRelocatable::from(x)).collect(); diff --git a/crates/blockifier/src/execution/entry_point.rs b/crates/blockifier/src/execution/entry_point.rs index 0f43522e2f..af17a9ff41 100644 --- a/crates/blockifier/src/execution/entry_point.rs +++ b/crates/blockifier/src/execution/entry_point.rs @@ -1,5 +1,6 @@ use std::cell::RefCell; use std::cmp::min; +use std::collections::HashMap; use std::sync::Arc; use cairo_vm::vm::runners::cairo_runner::{ExecutionResources, ResourceTracker, RunResources}; @@ -7,6 +8,7 @@ use num_traits::{Inv, Zero}; use serde::Serialize; use starknet_api::core::{ClassHash, ContractAddress, EntryPointSelector}; use starknet_api::deprecated_contract_class::EntryPointType; +use starknet_api::state::StorageKey; use starknet_api::transaction::{Calldata, TransactionVersion}; use starknet_types_core::felt::Felt; @@ -21,7 +23,7 @@ use crate::execution::errors::{ PreExecutionError, }; use crate::execution::execution_utils::execute_entry_point_call; -use crate::state::state_api::State; +use crate::state::state_api::{State, StateResult}; use crate::transaction::objects::{HasRelatedFeeType, TransactionInfo}; use crate::transaction::transaction_types::TransactionType; use crate::utils::{u128_from_usize, usize_from_u128}; @@ -37,6 +39,43 @@ pub const FAULTY_CLASS_HASH: &str = pub type EntryPointExecutionResult = Result; pub type ConstructorEntryPointExecutionResult = Result; +/// Holds the the information required to revert the execution of an entry point. +#[derive(Debug)] +pub struct EntryPointRevertInfo { + // The contract address that the revert info applies to. + pub contract_address: ContractAddress, + /// The original class hash of the contract that was called. + pub original_class_hash: ClassHash, + /// The original storage values. + pub original_values: HashMap, + // The number of emitted events before the call. + n_emitted_events: usize, + // The number of sent messages to L1 before the call. + n_sent_messages_to_l1: usize, +} +impl EntryPointRevertInfo { + pub fn new( + contract_address: ContractAddress, + original_class_hash: ClassHash, + n_emitted_events: usize, + n_sent_messages_to_l1: usize, + ) -> Self { + Self { + contract_address, + original_class_hash, + original_values: HashMap::new(), + n_emitted_events, + n_sent_messages_to_l1, + } + } +} + +/// The ExecutionRevertInfo stores a vector of entry point revert infos. +/// We don't merge infos related same contract as doing it on every nesting level would +/// result in O(N^2) complexity. +#[derive(Default, Debug)] +pub struct ExecutionRevertInfo(pub Vec); + /// Represents a the type of the call (used for debugging). #[cfg_attr(feature = "transaction_serde", derive(serde::Deserialize))] #[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq, Serialize)] @@ -89,6 +128,7 @@ impl CallEntryPoint { Some(class_hash) => class_hash, None => storage_class_hash, // If not given, take the storage contract class hash. }; + // Hack to prevent version 0 attack on argent accounts. if tx_context.tx_info.version() == TransactionVersion::ZERO && class_hash @@ -102,8 +142,37 @@ impl CallEntryPoint { self.class_hash = Some(class_hash); let contract_class = state.get_compiled_contract_class(class_hash)?; + context.revert_infos.0.push(EntryPointRevertInfo::new( + self.storage_address, + storage_class_hash, + context.n_emitted_events, + context.n_sent_messages_to_l1, + )); + execute_entry_point_call(self, contract_class, state, resources, context) } + + /// Similar to `execute`, but returns an error if the outer call is reverted. + pub fn execute_outer_call( + self, + state: &mut dyn State, + resources: &mut ExecutionResources, + context: &mut EntryPointExecutionContext, + ) -> EntryPointExecutionResult { + let execution_result = self.execute(state, resources, context); + if let Ok(call_info) = &execution_result { + // If the execution of the outer call failed, revert the transction. + if call_info.execution.failed { + let retdata = &call_info.execution.retdata.0; + + return Err(EntryPointExecutionError::ExecutionFailed { + error_data: retdata.clone(), + }); + } + } + + execution_result + } } pub struct ConstructorContext { @@ -130,6 +199,8 @@ pub struct EntryPointExecutionContext { // The execution mode affects the behavior of the hint processor. pub execution_mode: ExecutionMode, + + pub revert_infos: ExecutionRevertInfo, } impl EntryPointExecutionContext { @@ -146,6 +217,7 @@ impl EntryPointExecutionContext { tx_context: tx_context.clone(), current_recursion_depth: Default::default(), execution_mode: mode, + revert_infos: ExecutionRevertInfo(vec![]), } } @@ -287,6 +359,24 @@ impl EntryPointExecutionContext { pub fn gas_costs(&self) -> &GasCosts { &self.versioned_constants().os_constants.gas_costs } + + /// Reverts the state back to the way it was when self.revert_infos.0['revert_idx'] was created. + pub fn revert(&mut self, revert_idx: usize, state: &mut dyn State) -> StateResult<()> { + for contract_revert_info in self.revert_infos.0.drain(revert_idx..).rev() { + for (key, value) in contract_revert_info.original_values.iter() { + state.set_storage_at(contract_revert_info.contract_address, *key, *value)?; + } + state.set_class_hash_at( + contract_revert_info.contract_address, + contract_revert_info.original_class_hash, + )?; + + self.n_emitted_events = contract_revert_info.n_emitted_events; + self.n_sent_messages_to_l1 = contract_revert_info.n_sent_messages_to_l1; + } + + Ok(()) + } } pub fn execute_constructor_entry_point( @@ -320,7 +410,7 @@ pub fn execute_constructor_entry_point( initial_gas: remaining_gas, }; - constructor_call.execute(state, resources, context).map_err(|error| { + constructor_call.execute_outer_call(state, resources, context).map_err(|error| { ConstructorEntryPointExecutionError::new(error, &ctor_context, Some(constructor_selector)) }) } diff --git a/crates/blockifier/src/execution/entry_point_execution.rs b/crates/blockifier/src/execution/entry_point_execution.rs index 1d21241a6b..5c5c3957cc 100644 --- a/crates/blockifier/src/execution/entry_point_execution.rs +++ b/crates/blockifier/src/execution/entry_point_execution.rs @@ -104,11 +104,6 @@ pub fn execute_entry_point_call( n_total_args, program_extra_data_length, )?; - if call_info.execution.failed { - return Err(EntryPointExecutionError::ExecutionFailed { - error_data: call_info.execution.retdata.0, - }); - } Ok(call_info) } @@ -369,7 +364,7 @@ fn maybe_fill_holes( pub fn finalize_execution( mut runner: CairoRunner, - syscall_handler: SyscallHintProcessor<'_>, + mut syscall_handler: SyscallHintProcessor<'_>, previous_resources: ExecutionResources, n_total_args: usize, program_extra_data_length: usize, @@ -409,6 +404,8 @@ pub fn finalize_execution( *syscall_handler.resources += &versioned_constants .get_additional_os_syscall_resources(&syscall_handler.syscall_counter)?; + syscall_handler.finalize(); + let full_call_resources = &*syscall_handler.resources - &previous_resources; Ok(CallInfo { call: syscall_handler.call, diff --git a/crates/blockifier/src/execution/stack_trace_test.rs b/crates/blockifier/src/execution/stack_trace_test.rs index 155788d100..635c60eee1 100644 --- a/crates/blockifier/src/execution/stack_trace_test.rs +++ b/crates/blockifier/src/execution/stack_trace_test.rs @@ -39,8 +39,6 @@ use crate::transaction::test_utils::{ use crate::transaction::transaction_types::TransactionType; use crate::transaction::transactions::ExecutableTransaction; -const INNER_CALL_CONTRACT_IN_CALL_CHAIN_OFFSET: usize = 117; - #[rstest] fn test_stack_trace_with_inner_error_msg(block_context: BlockContext) { let cairo_version = CairoVersion::Cairo0; @@ -212,19 +210,16 @@ An ASSERT_EQ instruction failed: 1 != 0. " ); - let expected_trace_cairo1 = format!( + let expected_trace_cairo1 = "Transaction execution has failed: -0: Error in the called contract (contract address: {account_address_felt:#064x}, class hash: \ - {account_contract_hash:#064x}, selector: {execute_selector_felt:#064x}): -Error at pc=0:767: -1: Error in the called contract (contract address: {test_contract_address_felt:#064x}, class hash: \ - {test_contract_hash:#064x}, selector: {external_entry_point_selector_felt:#064x}): -Error at pc=0:612: -2: Error in the called contract (contract address: {test_contract_address_2_felt:#064x}, class \ - hash: {test_contract_hash:#064x}, selector: {inner_entry_point_selector_felt:#064x}): -Execution failed. Failure reason: 0x6661696c ('fail'). +0: Error in the called contract (contract address: \ + 0x00000000000000000000000000000000000000000000000000000000c0020000, class hash: \ + 0x0000000000000000000000000000000000000000000000000000000080020000, selector: \ + 0x015d40a3d6ca2ac30f4031e42be28da9b056fef9bb7357ac5e85627ee876e5ad): +Execution failed. Failure reason: (0x6661696c ('fail'), 0x454e545259504f494e545f4641494c4544 \ + ('ENTRYPOINT_FAILED'), 0x454e545259504f494e545f4641494c4544 ('ENTRYPOINT_FAILED')). " - ); + .into(); let expected_trace = match cairo_version { CairoVersion::Cairo0 => expected_trace_cairo0, @@ -334,21 +329,13 @@ Unknown location (pc=0:{expected_pc1}) ) } CairoVersion::Cairo1 => { - let pc_location = entry_point_offset.0 + INNER_CALL_CONTRACT_IN_CALL_CHAIN_OFFSET; format!( "Transaction execution has failed: 0: Error in the called contract (contract address: {account_address_felt:#064x}, class hash: \ {account_contract_hash:#064x}, selector: {execute_selector_felt:#064x}): -Error at pc=0:767: -1: Error in the called contract (contract address: {contract_address_felt:#064x}, class hash: \ - {test_contract_hash:#064x}, selector: {invoke_call_chain_selector_felt:#064x}): -Error at pc=0:9631: -Cairo traceback (most recent call last): -Unknown location (pc=0:{pc_location}) - -2: Error in the called contract (contract address: {contract_address_felt:#064x}, class hash: \ - {test_contract_hash:#064x}, selector: {invoke_call_chain_selector_felt:#064x}): -Execution failed. Failure reason: {expected_error}. +Execution failed. Failure reason: ({expected_error}, 0x454e545259504f494e545f4641494c4544 \ + ('ENTRYPOINT_FAILED'), 0x454e545259504f494e545f4641494c4544 \ + ('ENTRYPOINT_FAILED')). " ) } @@ -490,27 +477,16 @@ Unknown location (pc=0:{expected_pc3}) ) } CairoVersion::Cairo1 => { - let pc_location = entry_point_offset.0 + INNER_CALL_CONTRACT_IN_CALL_CHAIN_OFFSET; - let (expected_pc0, expected_pc1, _, _) = expected_pcs; format!( "Transaction execution has failed: -0: Error in the called contract (contract address: {account_address_felt:#064x}, class hash: \ - {account_contract_hash:#064x}, selector: {execute_selector_felt:#064x}): -Error at pc=0:767: -1: Error in the called contract (contract address: {address_felt:#064x}, class hash: \ - {test_contract_hash:#064x}, selector: {invoke_call_chain_selector_felt:#064x}): -Error at pc=0:{expected_pc0}: -Cairo traceback (most recent call last): -Unknown location (pc=0:{pc_location}) - -2: Error in the called contract (contract address: {address_felt:#064x}, class hash: \ - {test_contract_hash:#064x}, selector: {invoke_call_chain_selector_felt:#064x}): -Error at pc=0:{expected_pc1}: -Cairo traceback (most recent call last): -Unknown location (pc=0:{pc_location}) - -3: {last_call_preamble}: -Execution failed. Failure reason: {expected_error}. +0: Error in the called contract (contract address: \ + 0x00000000000000000000000000000000000000000000000000000000c0020000, class hash: \ + 0x0000000000000000000000000000000000000000000000000000000080020000, selector: \ + 0x015d40a3d6ca2ac30f4031e42be28da9b056fef9bb7357ac5e85627ee876e5ad): +Execution failed. Failure reason: ({expected_error}, 0x454e545259504f494e545f4641494c4544 \ + ('ENTRYPOINT_FAILED'), 0x454e545259504f494e545f4641494c4544 \ + ('ENTRYPOINT_FAILED'), 0x454e545259504f494e545f4641494c4544 \ + ('ENTRYPOINT_FAILED')). " ) } @@ -607,14 +583,9 @@ An ASSERT_EQ instruction failed: 1 != 0. ", class_hash.0 ), - CairoVersion::Cairo1 => format!( - "Transaction validation has failed: -0: Error in the called contract (contract address: {contract_address:#064x}, class hash: {:#064x}, \ - selector: {selector:#064x}): -Execution failed. Failure reason: 0x496e76616c6964207363656e6172696f ('Invalid scenario'). -", - class_hash.0 - ), + CairoVersion::Cairo1 => "The `validate` entry point panicked with \ + 0x496e76616c6964207363656e6172696f ('Invalid scenario')." + .into(), }; // Clean pc locations from the trace. diff --git a/crates/blockifier/src/execution/syscalls/hint_processor.rs b/crates/blockifier/src/execution/syscalls/hint_processor.rs index a199efc122..63fd6472fb 100644 --- a/crates/blockifier/src/execution/syscalls/hint_processor.rs +++ b/crates/blockifier/src/execution/syscalls/hint_processor.rs @@ -1,5 +1,5 @@ use std::any::Any; -use std::collections::{HashMap, HashSet}; +use std::collections::{hash_map, HashMap, HashSet}; use cairo_lang_casm::hints::{Hint, StarknetHint}; use cairo_lang_casm::operand::{BinOpOperand, DerefOrImmediate, Operation, Register, ResOperand}; @@ -207,6 +207,9 @@ pub const L1_GAS: &str = "0x0000000000000000000000000000000000000000000000000000 pub const L2_GAS: &str = "0x00000000000000000000000000000000000000000000000000004c325f474153"; // "L1_DATA"; pub const L1_DATA: &str = "0x000000000000000000000000000000000000000000000000004c315f44415441"; +// "ENTRYPOINT_FAILED"; +pub const ENTRYPOINT_FAILED_ERROR: &str = + "0x000000000000000000000000000000454e545259504f494e545f4641494c4544"; /// Executes Starknet syscalls (stateful protocol hints) during the execution of an entry point /// call. @@ -232,6 +235,10 @@ pub struct SyscallHintProcessor<'a> { pub read_values: Vec, pub accessed_keys: HashSet, + // The original storage value of the executed contract. + // Should be moved back `context.revert_info` before executing an inner call. + pub original_values: HashMap, + // Secp hint processors. pub secp256k1_hint_processor: SecpHintProcessor, pub secp256r1_hint_processor: SecpHintProcessor, @@ -254,6 +261,14 @@ impl<'a> SyscallHintProcessor<'a> { hints: &'a HashMap, read_only_segments: ReadOnlySegments, ) -> Self { + let original_values = std::mem::take( + &mut context + .revert_infos + .0 + .last_mut() + .expect("Missing contract revert info.") + .original_values, + ); SyscallHintProcessor { state, resources, @@ -267,6 +282,7 @@ impl<'a> SyscallHintProcessor<'a> { syscall_ptr: initial_syscall_ptr, read_values: vec![], accessed_keys: HashSet::new(), + original_values, hints, execution_info_ptr: None, secp256k1_hint_processor: SecpHintProcessor::default(), @@ -698,11 +714,29 @@ impl<'a> SyscallHintProcessor<'a> { key: StorageKey, value: Felt, ) -> SyscallResult { + let contract_address = self.storage_address(); + + match self.original_values.entry(key) { + hash_map::Entry::Vacant(entry) => { + entry.insert(self.state.get_storage_at(contract_address, key)?); + } + hash_map::Entry::Occupied(_) => {} + } + self.accessed_keys.insert(key); - self.state.set_storage_at(self.storage_address(), key, value)?; + self.state.set_storage_at(contract_address, key, value)?; Ok(StorageWriteResponse {}) } + + pub fn finalize(&mut self) { + self.context + .revert_infos + .0 + .last_mut() + .expect("Missing contract revert info.") + .original_values = std::mem::take(&mut self.original_values); + } } /// Retrieves a [Relocatable] from the VM given a [ResOperand]. @@ -800,21 +834,29 @@ pub fn execute_inner_call( syscall_handler: &mut SyscallHintProcessor<'_>, remaining_gas: &mut u64, ) -> SyscallResult { + let revert_idx = syscall_handler.context.revert_infos.0.len(); + let call_info = call.execute(syscall_handler.state, syscall_handler.resources, syscall_handler.context)?; - let raw_retdata = &call_info.execution.retdata.0; if call_info.execution.failed { - // TODO(spapini): Append an error word according to starknet spec if needed. - // Something like "EXECUTION_ERROR". - return Err(SyscallExecutionError::SyscallError { error_data: raw_retdata.clone() }); - } + syscall_handler.context.revert(revert_idx, syscall_handler.state)?; + }; + + let mut raw_retdata = call_info.execution.retdata.0.clone(); - let retdata_segment = create_retdata_segment(vm, syscall_handler, raw_retdata)?; update_remaining_gas(remaining_gas, &call_info); + let failed = call_info.execution.failed; syscall_handler.inner_calls.push(call_info); + if failed { + raw_retdata + .push(Felt::from_hex(ENTRYPOINT_FAILED_ERROR).map_err(SyscallExecutionError::from)?); + return Err(SyscallExecutionError::SyscallError { error_data: raw_retdata }); + } + + let retdata_segment = create_retdata_segment(vm, syscall_handler, &raw_retdata)?; Ok(retdata_segment) } @@ -852,12 +894,14 @@ pub fn execute_library_call( initial_gas: *remaining_gas, }; - execute_inner_call(entry_point, vm, syscall_handler, remaining_gas).map_err(|error| { - error.as_lib_call_execution_error( + execute_inner_call(entry_point, vm, syscall_handler, remaining_gas).map_err(|error| match error + { + SyscallExecutionError::SyscallError { .. } => error, + _ => error.as_lib_call_execution_error( class_hash, syscall_handler.storage_address(), entry_point_selector, - ) + ), }) } diff --git a/crates/blockifier/src/execution/syscalls/mod.rs b/crates/blockifier/src/execution/syscalls/mod.rs index 7e253f247b..3bbb4718d4 100644 --- a/crates/blockifier/src/execution/syscalls/mod.rs +++ b/crates/blockifier/src/execution/syscalls/mod.rs @@ -198,9 +198,11 @@ pub fn call_contract( call_type: CallType::Call, initial_gas: *remaining_gas, }; + let retdata_segment = execute_inner_call(entry_point, vm, syscall_handler, remaining_gas) - .map_err(|error| { - error.as_call_contract_execution_error(class_hash, storage_address, selector) + .map_err(|error| match error { + SyscallExecutionError::SyscallError { .. } => error, + _ => error.as_call_contract_execution_error(class_hash, storage_address, selector), })?; Ok(CallContractResponse { segment: retdata_segment }) diff --git a/crates/blockifier/src/execution/syscalls/syscall_tests/call_contract.rs b/crates/blockifier/src/execution/syscalls/syscall_tests/call_contract.rs index f73b04027b..f095982212 100644 --- a/crates/blockifier/src/execution/syscalls/syscall_tests/call_contract.rs +++ b/crates/blockifier/src/execution/syscalls/syscall_tests/call_contract.rs @@ -12,6 +12,36 @@ use crate::test_utils::contracts::FeatureContract; use crate::test_utils::initial_test_state::test_state; use crate::test_utils::{create_calldata, trivial_external_entry_point_new, CairoVersion, BALANCE}; +#[test] +fn test_call_contract_that_panics() { + let test_contract = FeatureContract::TestContract(CairoVersion::Cairo1); + let chain_info = &ChainInfo::create_for_testing(); + let mut state = test_state(chain_info, BALANCE, &[(test_contract, 1)]); + + let outer_entry_point_selector = selector_from_name("test_call_contract_revert"); + let calldata = create_calldata( + FeatureContract::TestContract(CairoVersion::Cairo1).get_instance_address(0), + "test_revert_helper", + &[], + ); + let entry_point_call = CallEntryPoint { + entry_point_selector: outer_entry_point_selector, + calldata, + ..trivial_external_entry_point_new(test_contract) + }; + + let res = entry_point_call.execute_directly(&mut state).unwrap(); + assert_eq!( + res.execution, + CallExecution { + retdata: retdata![], + gas_consumed: 168920, + failed: false, + ..CallExecution::default() + } + ); +} + #[test_case( FeatureContract::TestContract(CairoVersion::Cairo1), FeatureContract::TestContract(CairoVersion::Cairo1), diff --git a/crates/blockifier/src/execution/syscalls/syscall_tests/get_block_hash.rs b/crates/blockifier/src/execution/syscalls/syscall_tests/get_block_hash.rs index cb3bdc85db..64acd45360 100644 --- a/crates/blockifier/src/execution/syscalls/syscall_tests/get_block_hash.rs +++ b/crates/blockifier/src/execution/syscalls/syscall_tests/get_block_hash.rs @@ -11,6 +11,7 @@ use crate::abi::constants; use crate::context::ChainInfo; use crate::execution::call_info::{CallExecution, Retdata}; use crate::execution::entry_point::CallEntryPoint; +use crate::execution::execution_utils::format_panic_data; use crate::state::cached_state::CachedState; use crate::state::state_api::State; use crate::test_utils::contracts::FeatureContract; @@ -92,6 +93,10 @@ fn negative_flow_block_number_out_of_range(test_contract: FeatureContract) { ..trivial_external_entry_point_new(test_contract) }; - let error = entry_point_call.execute_directly(&mut state).unwrap_err().to_string(); - assert!(error.contains("Block number out of range")); + let call_info = entry_point_call.execute_directly(&mut state).unwrap(); + assert!(call_info.execution.failed); + assert_eq!( + format_panic_data(&call_info.execution.retdata.0), + "0x426c6f636b206e756d626572206f7574206f662072616e6765 ('Block number out of range')" + ); } diff --git a/crates/blockifier/src/execution/syscalls/syscall_tests/library_call.rs b/crates/blockifier/src/execution/syscalls/syscall_tests/library_call.rs index af5087e389..f3d1ea5513 100644 --- a/crates/blockifier/src/execution/syscalls/syscall_tests/library_call.rs +++ b/crates/blockifier/src/execution/syscalls/syscall_tests/library_call.rs @@ -13,6 +13,7 @@ use crate::abi::abi_utils::selector_from_name; use crate::context::ChainInfo; use crate::execution::call_info::{CallExecution, CallInfo, Retdata}; use crate::execution::entry_point::{CallEntryPoint, CallType}; +use crate::execution::execution_utils::format_panic_data; use crate::execution::syscalls::syscall_tests::constants::{ REQUIRED_GAS_LIBRARY_CALL_TEST, REQUIRED_GAS_STORAGE_READ_WRITE_TEST, @@ -78,8 +79,12 @@ fn test_library_call_assert_fails(test_contract: FeatureContract) { ..trivial_external_entry_point_new(test_contract) }; - let err = entry_point_call.execute_directly(&mut state).unwrap_err(); - assert!(err.to_string().contains("x != y")); + let call_info = entry_point_call.execute_directly(&mut state).unwrap(); + assert!(call_info.execution.failed); + assert_eq!( + format_panic_data(&call_info.execution.retdata.0), + "(0x7820213d2079 ('x != y'), 0x454e545259504f494e545f4641494c4544 ('ENTRYPOINT_FAILED'))" + ); } #[test_case(FeatureContract::TestContract(CairoVersion::Cairo1), 478110; "VM")] diff --git a/crates/blockifier/src/execution/syscalls/syscall_tests/out_of_gas.rs b/crates/blockifier/src/execution/syscalls/syscall_tests/out_of_gas.rs index 9f7a9e7c1a..0b87c51b99 100644 --- a/crates/blockifier/src/execution/syscalls/syscall_tests/out_of_gas.rs +++ b/crates/blockifier/src/execution/syscalls/syscall_tests/out_of_gas.rs @@ -5,6 +5,7 @@ use test_case::test_case; use crate::abi::abi_utils::selector_from_name; use crate::context::ChainInfo; use crate::execution::entry_point::CallEntryPoint; +use crate::execution::execution_utils::format_panic_data; use crate::execution::syscalls::syscall_tests::constants::REQUIRED_GAS_STORAGE_READ_WRITE_TEST; use crate::test_utils::contracts::FeatureContract; use crate::test_utils::initial_test_state::test_state; @@ -24,6 +25,10 @@ fn test_out_of_gas(test_contract: FeatureContract) { initial_gas: REQUIRED_GAS_STORAGE_READ_WRITE_TEST - 1, ..trivial_external_entry_point_new(test_contract) }; - let error = entry_point_call.execute_directly(&mut state).unwrap_err().to_string(); - assert!(error.contains("Out of gas")); + let call_info = entry_point_call.execute_directly(&mut state).unwrap(); + assert!(call_info.execution.failed); + assert_eq!( + format_panic_data(&call_info.execution.retdata.0), + "0x4f7574206f6620676173 ('Out of gas')" + ); } diff --git a/crates/blockifier/src/transaction/account_transaction.rs b/crates/blockifier/src/transaction/account_transaction.rs index 8520132378..bd71cc865d 100644 --- a/crates/blockifier/src/transaction/account_transaction.rs +++ b/crates/blockifier/src/transaction/account_transaction.rs @@ -831,7 +831,6 @@ impl ValidatableTransaction for AccountTransaction { let expected_retdata = retdata![Felt::from_hex(constants::VALIDATE_RETDATA)?]; if validate_call_info.execution.failed { - // TODO(ilya): Add a test for this case. return Err(TransactionExecutionError::PanicInValidate { panic_reason: validate_call_info.execution.retdata, }); diff --git a/crates/blockifier/src/transaction/transactions.rs b/crates/blockifier/src/transaction/transactions.rs index a9c20f1b8d..0413feb57b 100644 --- a/crates/blockifier/src/transaction/transactions.rs +++ b/crates/blockifier/src/transaction/transactions.rs @@ -494,14 +494,15 @@ impl Executable for InvokeTransaction { initial_gas: *remaining_gas, }; - let call_info = execute_call.execute(state, resources, context).map_err(|error| { - TransactionExecutionError::ExecutionError { - error, - class_hash, - storage_address, - selector: entry_point_selector, - } - })?; + let call_info = + execute_call.execute_outer_call(state, resources, context).map_err(|error| { + TransactionExecutionError::ExecutionError { + error, + class_hash, + storage_address, + selector: entry_point_selector, + } + })?; update_remaining_gas(remaining_gas, &call_info); Ok(Some(call_info)) @@ -595,7 +596,7 @@ impl Executable for L1HandlerTransaction { initial_gas: *remaining_gas, }; - execute_call.execute(state, resources, context).map(Some).map_err(|error| { + execute_call.execute_outer_call(state, resources, context).map(Some).map_err(|error| { TransactionExecutionError::ExecutionError { error, class_hash,