diff --git a/Cargo.lock b/Cargo.lock index 8c94f84792..2dc8d59207 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -40,9 +40,9 @@ dependencies = [ "serde-wasm-bindgen", "serde_cbor_2", "serde_json", - "serde_with 3.11.0", - "sha2 0.10.8", - "starknet 0.12.0", + "serde_with", + "sha2", + "starknet", "starknet-crypto 0.7.2", "starknet-types-core", "thiserror 1.0.63", @@ -339,7 +339,7 @@ dependencies = [ "derive_more 1.0.0", "once_cell", "serde", - "sha2 0.10.8", + "sha2", ] [[package]] @@ -356,7 +356,7 @@ dependencies = [ "derive_more 1.0.0", "once_cell", "serde", - "sha2 0.10.8", + "sha2", ] [[package]] @@ -480,7 +480,7 @@ dependencies = [ "alloy-genesis", "alloy-primitives", "k256", - "rand 0.8.5", + "rand", "serde_json", "tempfile", "thiserror 1.0.63", @@ -507,7 +507,7 @@ dependencies = [ "keccak-asm", "proptest", "proptest-derive", - "rand 0.8.5", + "rand", "ruint", "serde", "tiny-keccak", @@ -756,7 +756,7 @@ dependencies = [ "alloy-signer 0.3.6 (git+https://github.com/alloy-rs/alloy)", "async-trait", "k256", - "rand 0.8.5", + "rand", "thiserror 1.0.63", ] @@ -1195,7 +1195,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" dependencies = [ "num-traits 0.2.19", - "rand 0.8.5", + "rand", ] [[package]] @@ -1205,7 +1205,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits 0.2.19", - "rand 0.8.5", + "rand", ] [[package]] @@ -1914,12 +1914,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bech32" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" - [[package]] name = "beef" version = "0.5.2" @@ -1929,31 +1923,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bigdecimal" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6773ddc0eafc0e509fb60e48dff7f450f8e674a0686ae8605e8d9901bd5eefa" -dependencies = [ - "num-bigint", - "num-integer", - "num-traits 0.2.19", - "serde", -] - -[[package]] -name = "bigdecimal" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d712318a27c7150326677b321a5fa91b55f6d9034ffd67f20319e147d40cee" -dependencies = [ - "autocfg", - "libm", - "num-bigint", - "num-integer", - "num-traits 0.2.19", -] - [[package]] name = "bincode" version = "1.3.3" @@ -2134,7 +2103,7 @@ dependencies = [ "cairo-lang-casm", "cairo-lang-runner", "cairo-lang-starknet-classes", - "cairo-vm 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-vm", "derive_more 0.99.18", "indexmap 2.5.0", "itertools 0.12.1", @@ -2147,12 +2116,12 @@ dependencies = [ "papyrus_config", "paste", "phf", - "rand 0.8.5", + "rand", "rstest 0.17.0", "semver 1.0.23", "serde", "serde_json", - "sha2 0.10.8", + "sha2", "starknet-types-core", "starknet_api", "strum 0.25.0", @@ -2175,18 +2144,6 @@ dependencies = [ "piper", ] -[[package]] -name = "blockstore" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7679095248a6dc7555fae81154ed1baef264383c16621ef881a219576c72a9be" -dependencies = [ - "cid", - "dashmap 6.1.0", - "multihash 0.19.1", - "thiserror 1.0.63", -] - [[package]] name = "blst" version = "0.3.13" @@ -2462,7 +2419,7 @@ dependencies = [ "convert_case 0.6.0", "serde", "serde_json", - "starknet 0.12.0", + "starknet", "starknet-types-core", "thiserror 1.0.63", "tracing", @@ -2488,7 +2445,7 @@ dependencies = [ "convert_case 0.6.0", "serde", "serde_json", - "starknet 0.12.0", + "starknet", "starknet-types-core", "thiserror 1.0.63", "tracing", @@ -2503,8 +2460,8 @@ source = "git+https://github.com/cartridge-gg/cainome?tag=v0.4.11#355b88b7b80865 dependencies = [ "num-bigint", "serde", - "serde_with 3.11.0", - "starknet 0.12.0", + "serde_with", + "starknet", "thiserror 1.0.63", ] @@ -2514,7 +2471,7 @@ version = "0.1.0" source = "git+https://github.com/cartridge-gg/cainome?tag=v0.4.2#4e3924fb82b7299d56d3619aa5d7b9863f581e0a" dependencies = [ "serde", - "starknet 0.12.0", + "starknet", "thiserror 1.0.63", ] @@ -2537,7 +2494,7 @@ dependencies = [ "convert_case 0.6.0", "quote", "serde_json", - "starknet 0.12.0", + "starknet", "syn 2.0.90", "thiserror 1.0.63", ] @@ -2550,7 +2507,7 @@ dependencies = [ "convert_case 0.6.0", "quote", "serde_json", - "starknet 0.12.0", + "starknet", "syn 2.0.90", "thiserror 1.0.63", ] @@ -2568,7 +2525,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "starknet 0.12.0", + "starknet", "syn 2.0.90", "thiserror 1.0.63", ] @@ -2586,7 +2543,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "starknet 0.12.0", + "starknet", "syn 2.0.90", "thiserror 1.0.63", ] @@ -2604,7 +2561,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "starknet 0.12.0", + "starknet", "syn 2.0.90", "thiserror 1.0.63", ] @@ -2622,7 +2579,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "starknet 0.12.0", + "starknet", "syn 2.0.90", "thiserror 1.0.63", ] @@ -2954,7 +2911,7 @@ dependencies = [ "cairo-lang-sierra-to-casm", "cairo-lang-sierra-type-size", "cairo-lang-utils", - "cairo-vm 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-vm", "itertools 0.12.1", "thiserror 1.0.63", ] @@ -2976,14 +2933,14 @@ dependencies = [ "cairo-lang-sierra-to-casm", "cairo-lang-starknet", "cairo-lang-utils", - "cairo-vm 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-vm", "itertools 0.12.1", "keccak", "num-bigint", "num-integer", "num-traits 0.2.19", - "rand 0.8.5", - "sha2 0.10.8", + "rand", + "sha2", "smol_str", "starknet-types-core", "thiserror 1.0.63", @@ -3292,26 +3249,6 @@ dependencies = [ "time", ] -[[package]] -name = "cairo-proof-parser" -version = "0.1.0" -source = "git+https://github.com/cartridge-gg/cairo-proof-parser.git?rev=f175d58#f175d58b487cc32c073d1a92d6d367eff234993b" -dependencies = [ - "anyhow", - "clap", - "itertools 0.12.1", - "num-bigint", - "prefix-hex", - "regex", - "serde", - "serde-felt", - "serde_json", - "starknet 0.11.0", - "starknet-crypto 0.7.2", - "tokio", - "url", -] - [[package]] name = "cairo-vm" version = "1.0.1" @@ -3332,46 +3269,11 @@ dependencies = [ "num-integer", "num-prime", "num-traits 0.2.19", - "rand 0.8.5", - "rust_decimal", - "serde", - "serde_json", - "sha2 0.10.8", - "sha3", - "starknet-crypto 0.6.2", - "starknet-types-core", - "thiserror-no-std", - "zip", -] - -[[package]] -name = "cairo-vm" -version = "1.0.1" -source = "git+https://github.com/lambdaclass/cairo-vm.git?rev=93f1f54#93f1f54f38059af89850b1c06d4c901300f9b94d" -dependencies = [ - "anyhow", - "ark-ff 0.4.2", - "ark-std 0.4.0", - "bincode 2.0.0-rc.3", - "bitvec", - "cairo-lang-casm", - "cairo-lang-starknet", - "cairo-lang-starknet-classes", - "generic-array", - "hashbrown 0.14.5", - "hex", - "keccak", - "lazy_static", - "nom", - "num-bigint", - "num-integer", - "num-prime", - "num-traits 0.2.19", - "rand 0.8.5", + "rand", "rust_decimal", "serde", "serde_json", - "sha2 0.10.8", + "sha2", "sha3", "starknet-crypto 0.6.2", "starknet-types-core", @@ -3379,29 +3281,6 @@ dependencies = [ "zip", ] -[[package]] -name = "cairo1-playground" -version = "0.1.0" -source = "git+https://github.com/chudkowsky/cairo1-playground.git?rev=3fda965#3fda9656c76ceb2aff9cdf014b4a1b48aeba1549" -dependencies = [ - "cairo-lang-casm", - "cairo-lang-sierra", - "cairo-lang-sierra-ap-change", - "cairo-lang-sierra-to-casm", - "cairo-lang-sierra-type-size", - "cairo-lang-starknet-classes", - "cairo-lang-utils", - "cairo-vm 1.0.1 (git+https://github.com/lambdaclass/cairo-vm.git?rev=93f1f54)", - "clap", - "itertools 0.12.1", - "num-bigint", - "num-traits 0.2.19", - "serde", - "serde_json", - "starknet-types-core", - "thiserror 1.0.63", -] - [[package]] name = "camino" version = "1.1.9" @@ -3472,111 +3351,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "celestia-proto" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cde2c574760f88d5a6da8dfc55dbb79d91f4da15aa87b9e0d57d4d3a8fa5687" -dependencies = [ - "anyhow", - "celestia-tendermint-proto", - "prost 0.12.6", - "prost-build 0.12.6", - "prost-types 0.12.6", - "serde", -] - -[[package]] -name = "celestia-rpc" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d646d10aab818ffd785f841f42e16ed5875358f4e51d98a47a14ce07f093b3fc" -dependencies = [ - "async-trait", - "celestia-types", - "http 1.1.0", - "jsonrpsee 0.24.6", - "serde", - "thiserror 1.0.63", - "tracing", -] - -[[package]] -name = "celestia-tendermint" -version = "0.32.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce8c92a01145f79a0f3ac7c44a43a9b5ee58e8a4c716b56d98833a3848db1afd" -dependencies = [ - "bytes", - "celestia-tendermint-proto", - "digest 0.10.7", - "ed25519", - "ed25519-consensus", - "flex-error", - "futures", - "num-traits 0.2.19", - "once_cell", - "prost 0.12.6", - "prost-types 0.12.6", - "serde", - "serde_bytes", - "serde_json", - "serde_repr", - "sha2 0.10.8", - "signature", - "subtle", - "subtle-encoding", - "time", - "zeroize", -] - -[[package]] -name = "celestia-tendermint-proto" -version = "0.32.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a95746c5221a74d7b913a415fdbb9e7c90e1b4d818dbbff59bddc034cfce2ec" -dependencies = [ - "bytes", - "flex-error", - "num-derive 0.3.3", - "num-traits 0.2.19", - "prost 0.12.6", - "prost-types 0.12.6", - "serde", - "serde_bytes", - "subtle-encoding", - "time", -] - -[[package]] -name = "celestia-types" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368ef03ae3e0ee840d5629414d58cfe822cef0d4ab92e04f4441b39f658d87d9" -dependencies = [ - "base64 0.22.1", - "bech32", - "blockstore", - "bytes", - "celestia-proto", - "celestia-tendermint", - "celestia-tendermint-proto", - "cid", - "const_format", - "enum_dispatch", - "leopard-codec", - "libp2p-identity", - "multiaddr 0.18.1", - "multihash 0.19.1", - "nmt-rs", - "ruint", - "serde", - "serde_repr", - "sha2 0.10.8", - "thiserror 1.0.63", - "time", -] - [[package]] name = "cesu8" version = "1.1.0" @@ -3680,18 +3454,6 @@ dependencies = [ "half 2.4.1", ] -[[package]] -name = "cid" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3147d8272e8fa0ccd29ce51194dd98f79ddfb8191ba9e3409884e751798acf3a" -dependencies = [ - "core2", - "multibase", - "multihash 0.19.1", - "unsigned-varint 0.8.0", -] - [[package]] name = "cipher" version = "0.4.4" @@ -3863,18 +3625,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "common" -version = "0.1.0" -source = "git+https://github.com/cartridge-gg/http-prover?rev=f239ade#f239ade2f7ed363fbf99c9726b998fe6b0ab887b" -dependencies = [ - "ed25519-dalek", - "serde", - "serde_json", - "serde_with 3.11.0", - "starknet-types-core", -] - [[package]] name = "common-multipart-rfc7578" version = "0.6.0" @@ -3887,7 +3637,7 @@ dependencies = [ "http 0.2.12", "mime", "mime_guess", - "rand 0.8.5", + "rand", "thiserror 1.0.63", ] @@ -3989,62 +3739,6 @@ dependencies = [ "unicode-segmentation", ] -[[package]] -name = "cookie" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7efb37c3e1ccb1ff97164ad95ac1606e8ccd35b3fa0a7d99a304c7f4a428cc24" -dependencies = [ - "percent-encoding", - "time", - "version_check", -] - -[[package]] -name = "cookie" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" -dependencies = [ - "percent-encoding", - "time", - "version_check", -] - -[[package]] -name = "cookie_store" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387461abbc748185c3a6e1673d826918b450b87ff22639429c694619a83b6cf6" -dependencies = [ - "cookie 0.17.0", - "idna 0.3.0", - "log", - "publicsuffix", - "serde", - "serde_derive", - "serde_json", - "time", - "url", -] - -[[package]] -name = "cookie_store" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4934e6b7e8419148b6ef56950d277af8561060b56afd59e2aadf98b59fce6baa" -dependencies = [ - "cookie 0.18.1", - "idna 0.5.0", - "log", - "publicsuffix", - "serde", - "serde_derive", - "serde_json", - "time", - "url", -] - [[package]] name = "core-foundation" version = "0.9.4" @@ -4286,7 +3980,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", - "rand_core 0.6.4", + "rand_core", "serdect", "subtle", "zeroize", @@ -4299,7 +3993,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "rand_core 0.6.4", + "rand_core", "typenum", ] @@ -4349,19 +4043,6 @@ dependencies = [ "syn 2.0.90", ] -[[package]] -name = "curve25519-dalek-ng" -version = "4.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.6.4", - "subtle-ng", - "zeroize", -] - [[package]] name = "darling" version = "0.14.4" @@ -4836,7 +4517,7 @@ dependencies = [ "serde", "serde_json", "sozo-scarbext", - "starknet 0.12.0", + "starknet", "thiserror 1.0.63", "tokio", ] @@ -4865,7 +4546,7 @@ dependencies = [ "itertools 0.12.1", "serde", "smol_str", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "tracing", ] @@ -4887,7 +4568,7 @@ dependencies = [ "itertools 0.12.1", "serde", "smol_str", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "tracing", ] @@ -4935,7 +4616,7 @@ dependencies = [ "scarb-ui", "serde", "serde_json", - "starknet 0.12.0", + "starknet", "thiserror 1.0.63", "toml 0.8.19", "url", @@ -4955,7 +4636,7 @@ dependencies = [ "regex", "serde", "serde_json", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "strum 0.25.0", "strum_macros 0.25.3", @@ -4977,7 +4658,7 @@ dependencies = [ "regex", "serde", "serde_json", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "strum 0.25.0", "strum_macros 0.25.3", @@ -4996,7 +4677,7 @@ dependencies = [ "reqwest 0.11.27", "rpassword", "serde_json", - "starknet 0.12.0", + "starknet", "thiserror 1.0.63", "tokio", "tracing", @@ -5019,8 +4700,8 @@ dependencies = [ "regex", "serde", "serde_json", - "serde_with 3.11.0", - "starknet 0.12.0", + "serde_with", + "starknet", "starknet-crypto 0.7.2", "thiserror 1.0.63", "tokio", @@ -5089,23 +4770,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ "pkcs8", - "serde", "signature", ] -[[package]] -name = "ed25519-consensus" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" -dependencies = [ - "curve25519-dalek-ng", - "hex", - "rand_core 0.6.4", - "sha2 0.9.9", - "zeroize", -] - [[package]] name = "ed25519-dalek" version = "2.1.1" @@ -5114,9 +4781,9 @@ checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek", "ed25519", - "rand_core 0.6.4", + "rand_core", "serde", - "sha2 0.10.8", + "sha2", "subtle", "zeroize", ] @@ -5145,7 +4812,7 @@ dependencies = [ "hkdf", "pem-rfc7468", "pkcs8", - "rand_core 0.6.4", + "rand_core", "sec1", "subtle", "zeroize", @@ -5206,22 +4873,10 @@ dependencies = [ ] [[package]] -name = "enum_dispatch" -version = "0.3.13" +name = "env_filter" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" -dependencies = [ - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.90", -] - -[[package]] -name = "env_filter" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" dependencies = [ "log", "regex", @@ -5295,11 +4950,11 @@ dependencies = [ "hex", "hmac", "pbkdf2", - "rand 0.8.5", + "rand", "scrypt", "serde", "serde_json", - "sha2 0.10.8", + "sha2", "sha3", "thiserror 1.0.63", "uuid 0.8.2", @@ -5375,16 +5030,6 @@ dependencies = [ "zune-inflate", ] -[[package]] -name = "eyre" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" -dependencies = [ - "indenter", - "once_cell", -] - [[package]] name = "fast_chemail" version = "0.9.6" @@ -5441,7 +5086,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "rand_core 0.6.4", + "rand_core", "subtle", ] @@ -5482,7 +5127,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand 0.8.5", + "rand", "rustc-hex", "static_assertions", ] @@ -5504,16 +5149,6 @@ dependencies = [ "miniz_oxide 0.8.0", ] -[[package]] -name = "flex-error" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c606d892c9de11507fa0dcffc116434f94e105d0bbdc4e405b61519464c49d7b" -dependencies = [ - "eyre", - "paste", -] - [[package]] name = "flume" version = "0.11.0" @@ -5582,12 +5217,6 @@ dependencies = [ "libc", ] -[[package]] -name = "fuchsia-cprng" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" - [[package]] name = "funty" version = "2.0.0" @@ -6888,7 +6517,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand_core 0.6.4", + "rand_core", "subtle", ] @@ -7057,25 +6686,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" -[[package]] -name = "herodotus_sharp_playground" -version = "0.1.0" -source = "git+https://github.com/chudkowsky/herodotus_sharp_playground.git?rev=db64bfd#db64bfd9869aee3348046c1d49182f2deb8950ff" -dependencies = [ - "anyhow", - "cairo-proof-parser", - "clap", - "reqwest 0.12.7", - "serde", - "serde_json", - "starknet-types-core", - "thiserror 1.0.63", - "tokio", - "tracing", - "tracing-log 0.1.4", - "tracing-subscriber", -] - [[package]] name = "hex" version = "0.4.3" @@ -7113,7 +6723,7 @@ dependencies = [ "idna 0.4.0", "ipnet", "once_cell", - "rand 0.8.5", + "rand", "socket2 0.5.7", "thiserror 1.0.63", "tinyvec", @@ -7135,7 +6745,7 @@ dependencies = [ "lru-cache", "once_cell", "parking_lot 0.12.3", - "rand 0.8.5", + "rand", "resolv-conf", "smallvec", "thiserror 1.0.63", @@ -7508,16 +7118,6 @@ dependencies = [ "unicode-normalization", ] -[[package]] -name = "idna" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - [[package]] name = "idna" version = "0.4.0" @@ -7586,7 +7186,7 @@ dependencies = [ "http 0.2.12", "hyper 0.14.30", "log", - "rand 0.8.5", + "rand", "tokio", "url", "xmltree", @@ -7720,12 +7320,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9f1a0777d972970f204fdf8ef319f1f4f8459131636d7e3c96c5d59570d0fa6" -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - [[package]] name = "indexmap" version = "1.9.3" @@ -7859,7 +7453,7 @@ dependencies = [ "async-trait", "bytes", "log", - "rand 0.8.5", + "rand", "rtcp", "rtp 0.9.0", "thiserror 1.0.63", @@ -8085,20 +7679,6 @@ dependencies = [ "jiff-tzdb", ] -[[package]] -name = "jni" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" -dependencies = [ - "cesu8", - "combine 4.6.7", - "jni-sys", - "log", - "thiserror 1.0.63", - "walkdir", -] - [[package]] name = "jni" version = "0.21.1" @@ -8157,28 +7737,14 @@ version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "367a292944c07385839818bb71c8d76611138e2dedb0677d035b8da21d29c78b" dependencies = [ - "jsonrpsee-client-transport 0.16.3", - "jsonrpsee-core 0.16.3", - "jsonrpsee-http-client 0.16.3", - "jsonrpsee-proc-macros 0.16.3", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-http-client", + "jsonrpsee-proc-macros", "jsonrpsee-server", - "jsonrpsee-types 0.16.3", + "jsonrpsee-types", "jsonrpsee-wasm-client", - "jsonrpsee-ws-client 0.16.3", - "tracing", -] - -[[package]] -name = "jsonrpsee" -version = "0.24.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02f01f48e04e0d7da72280ab787c9943695699c9b32b99158ece105e8ad0afea" -dependencies = [ - "jsonrpsee-core 0.24.6", - "jsonrpsee-http-client 0.24.6", - "jsonrpsee-proc-macros 0.24.6", - "jsonrpsee-types 0.24.6", - "jsonrpsee-ws-client 0.24.6", + "jsonrpsee-ws-client", "tracing", ] @@ -8194,8 +7760,8 @@ dependencies = [ "futures-util", "gloo-net 0.2.6", "http 0.2.12", - "jsonrpsee-core 0.16.3", - "jsonrpsee-types 0.16.3", + "jsonrpsee-core", + "jsonrpsee-types", "pin-project", "rustls-native-certs 0.6.3", "soketto 0.7.1", @@ -8207,29 +7773,6 @@ dependencies = [ "webpki-roots 0.25.4", ] -[[package]] -name = "jsonrpsee-client-transport" -version = "0.24.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d80eccbd47a7b9f1e67663fd846928e941cb49c65236e297dd11c9ea3c5e3387" -dependencies = [ - "base64 0.22.1", - "futures-util", - "http 1.1.0", - "jsonrpsee-core 0.24.6", - "pin-project", - "rustls 0.23.13", - "rustls-pki-types", - "rustls-platform-verifier", - "soketto 0.8.0", - "thiserror 1.0.63", - "tokio", - "tokio-rustls 0.26.0", - "tokio-util", - "tracing", - "url", -] - [[package]] name = "jsonrpsee-core" version = "0.16.3" @@ -8246,9 +7789,9 @@ dependencies = [ "futures-util", "globset", "hyper 0.14.30", - "jsonrpsee-types 0.16.3", + "jsonrpsee-types", "parking_lot 0.12.3", - "rand 0.8.5", + "rand", "rustc-hash 1.1.0", "serde", "serde_json", @@ -8259,30 +7802,6 @@ dependencies = [ "wasm-bindgen-futures", ] -[[package]] -name = "jsonrpsee-core" -version = "0.24.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c2709a32915d816a6e8f625bf72cf74523ebe5d8829f895d6b041b1d3137818" -dependencies = [ - "async-trait", - "bytes", - "futures-timer", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "jsonrpsee-types 0.24.6", - "pin-project", - "rustc-hash 2.0.0", - "serde", - "serde_json", - "thiserror 1.0.63", - "tokio", - "tokio-stream", - "tracing", -] - [[package]] name = "jsonrpsee-http-client" version = "0.16.3" @@ -8292,8 +7811,8 @@ dependencies = [ "async-trait", "hyper 0.14.30", "hyper-rustls 0.24.2", - "jsonrpsee-core 0.16.3", - "jsonrpsee-types 0.16.3", + "jsonrpsee-core", + "jsonrpsee-types", "rustc-hash 1.1.0", "serde", "serde_json", @@ -8302,31 +7821,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "jsonrpsee-http-client" -version = "0.24.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc54db939002b030e794fbfc9d5a925aa2854889c5a2f0352b0bffa54681707e" -dependencies = [ - "async-trait", - "base64 0.22.1", - "http-body 1.0.1", - "hyper 1.4.1", - "hyper-rustls 0.27.3", - "hyper-util", - "jsonrpsee-core 0.24.6", - "jsonrpsee-types 0.24.6", - "rustls 0.23.13", - "rustls-platform-verifier", - "serde", - "serde_json", - "thiserror 1.0.63", - "tokio", - "tower 0.4.13", - "tracing", - "url", -] - [[package]] name = "jsonrpsee-proc-macros" version = "0.16.3" @@ -8340,19 +7834,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "jsonrpsee-proc-macros" -version = "0.24.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9a4b2eaba8cc928f49c4ccf4fcfa65b690a73997682da99ed08f3393b51f07" -dependencies = [ - "heck 0.5.0", - "proc-macro-crate 3.2.0", - "proc-macro2", - "quote", - "syn 2.0.90", -] - [[package]] name = "jsonrpsee-server" version = "0.16.3" @@ -8363,8 +7844,8 @@ dependencies = [ "futures-util", "http 0.2.12", "hyper 0.14.30", - "jsonrpsee-core 0.16.3", - "jsonrpsee-types 0.16.3", + "jsonrpsee-core", + "jsonrpsee-types", "serde", "serde_json", "soketto 0.7.1", @@ -8389,27 +7870,15 @@ dependencies = [ "tracing", ] -[[package]] -name = "jsonrpsee-types" -version = "0.24.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca331cd7b3fe95b33432825c2d4c9f5a43963e207fdc01ae67f9fd80ab0930f" -dependencies = [ - "http 1.1.0", - "serde", - "serde_json", - "thiserror 1.0.63", -] - [[package]] name = "jsonrpsee-wasm-client" version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18e5df77c8f625d36e4cfb583c5a674eccebe32403fcfe42f7ceff7fac9324dd" dependencies = [ - "jsonrpsee-client-transport 0.16.3", - "jsonrpsee-core 0.16.3", - "jsonrpsee-types 0.16.3", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", ] [[package]] @@ -8419,22 +7888,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e1b3975ed5d73f456478681a417128597acd6a2487855fdb7b4a3d4d195bf5e" dependencies = [ "http 0.2.12", - "jsonrpsee-client-transport 0.16.3", - "jsonrpsee-core 0.16.3", - "jsonrpsee-types 0.16.3", -] - -[[package]] -name = "jsonrpsee-ws-client" -version = "0.24.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "755ca3da1c67671f1fae01cd1a47f41dfb2233a8f19a643e587ab0a663942044" -dependencies = [ - "http 1.1.0", - "jsonrpsee-client-transport 0.24.6", - "jsonrpsee-core 0.24.6", - "jsonrpsee-types 0.24.6", - "url", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", ] [[package]] @@ -8447,7 +7903,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.8", + "sha2", ] [[package]] @@ -8470,11 +7926,11 @@ dependencies = [ "katana-primitives", "katana-rpc-types", "lazy_static", - "rand 0.8.5", + "rand", "rstest 0.18.2", "shellexpand", "spinoff", - "starknet 0.12.0", + "starknet", "strum_macros 0.25.3", "thiserror 1.0.63", "tokio", @@ -8492,7 +7948,7 @@ dependencies = [ "cairo-lang-starknet", "cairo-lang-starknet-classes", "cairo-lang-utils", - "cairo-vm 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-vm", "starknet_api", ] @@ -8508,7 +7964,7 @@ dependencies = [ "serde", "serde_json", "similar-asserts", - "starknet 0.12.0", + "starknet", "tempfile", "thiserror 1.0.63", "toml 0.8.19", @@ -8535,7 +7991,7 @@ dependencies = [ "serde", "serde_json", "shellexpand", - "starknet 0.12.0", + "starknet", "tokio", "toml 0.8.19", "tracing", @@ -8595,7 +8051,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "starknet-types-core", "tempfile", @@ -8626,7 +8082,7 @@ dependencies = [ "serde", "serde_json", "smallvec", - "starknet 0.12.0", + "starknet", "tempfile", "thiserror 1.0.63", "tracing", @@ -8655,7 +8111,7 @@ dependencies = [ "rstest_reuse", "serde_json", "similar-asserts", - "starknet 0.12.0", + "starknet", "thiserror 1.0.63", "tokio", "tracing", @@ -8669,7 +8125,7 @@ dependencies = [ "katana-rpc-types", "reqwest 0.11.27", "serde", - "starknet 0.12.0", + "starknet", "thiserror 1.0.63", "tokio", "tracing", @@ -8696,7 +8152,7 @@ dependencies = [ "dojo-utils", "futures", "hyper 0.14.30", - "jsonrpsee 0.16.3", + "jsonrpsee", "katana-chain-spec", "katana-core", "katana-db", @@ -8712,7 +8168,7 @@ dependencies = [ "katana-tasks", "serde", "serde_json", - "starknet 0.12.0", + "starknet", "strum 0.25.0", "strum_macros 0.25.3", "thiserror 1.0.63", @@ -8735,7 +8191,7 @@ dependencies = [ "regex", "serde", "serde_json", - "starknet 0.12.0", + "starknet", "tempfile", "thiserror 1.0.63", "tokio", @@ -8767,7 +8223,7 @@ dependencies = [ "katana-primitives", "katana-provider", "parking_lot 0.12.3", - "rand 0.8.5", + "rand", "thiserror 1.0.63", "tokio", "tracing", @@ -8789,14 +8245,14 @@ dependencies = [ "num-bigint", "num-traits 0.2.19", "postcard", - "rand 0.8.5", + "rand", "rstest 0.18.2", "serde", "serde_json", "serde_json_pythonic", - "serde_with 3.11.0", + "serde_with", "similar-asserts", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "starknet-types-core", "strum 0.25.0", @@ -8820,11 +8276,11 @@ dependencies = [ "katana-trie", "lazy_static", "parking_lot 0.12.3", - "rand 0.8.5", + "rand", "rstest 0.18.2", "rstest_reuse", "serde_json", - "starknet 0.12.0", + "starknet", "starknet-types-core", "tempfile", "thiserror 1.0.63", @@ -8848,7 +8304,7 @@ dependencies = [ "futures", "http 0.2.12", "indexmap 2.5.0", - "jsonrpsee 0.16.3", + "jsonrpsee", "katana-cairo", "katana-core", "katana-executor", @@ -8863,12 +8319,12 @@ dependencies = [ "katana-trie", "metrics", "num-traits 0.2.19", - "rand 0.8.5", + "rand", "rstest 0.18.2", "serde", "serde_json", "similar-asserts", - "starknet 0.12.0", + "starknet", "tempfile", "thiserror 1.0.63", "tokio", @@ -8882,11 +8338,11 @@ dependencies = [ name = "katana-rpc-api" version = "1.0.12" dependencies = [ - "jsonrpsee 0.16.3", + "jsonrpsee", "katana-core", "katana-primitives", "katana-rpc-types", - "starknet 0.12.0", + "starknet", ] [[package]] @@ -8898,7 +8354,7 @@ dependencies = [ "derive_more 0.99.18", "flate2", "futures", - "jsonrpsee 0.16.3", + "jsonrpsee", "katana-cairo", "katana-core", "katana-executor", @@ -8911,9 +8367,9 @@ dependencies = [ "serde", "serde_json", "serde_json_pythonic", - "serde_with 3.11.0", + "serde_with", "similar-asserts", - "starknet 0.12.0", + "starknet", "thiserror 1.0.63", ] @@ -8926,7 +8382,7 @@ dependencies = [ "katana-primitives", "katana-provider", "katana-rpc-types", - "starknet 0.12.0", + "starknet", ] [[package]] @@ -8937,7 +8393,7 @@ dependencies = [ "assert_fs", "katana-node-bindings", "katana-runner-macro", - "starknet 0.12.0", + "starknet", "tokio", "url", ] @@ -8964,7 +8420,7 @@ dependencies = [ "katana-primitives", "serde_json", "slot", - "starknet 0.12.0", + "starknet", "tracing", "webauthn-rs-proto", ] @@ -8986,7 +8442,7 @@ dependencies = [ "katana-rpc-types", "katana-tasks", "num-traits 0.2.19", - "starknet 0.12.0", + "starknet", "thiserror 1.0.63", "tokio", "tracing", @@ -9015,7 +8471,7 @@ dependencies = [ "katana-primitives", "serde", "slab", - "starknet 0.12.0", + "starknet", "starknet-types-core", "thiserror 1.0.63", ] @@ -9116,7 +8572,7 @@ checksum = "bbc2a4da0d9e52ccfe6306801a112e81a8fc0c76aa3e4449fefeda7fef72bb34" dependencies = [ "lambdaworks-math", "serde", - "sha2 0.10.8", + "sha2", "sha3", ] @@ -9151,17 +8607,6 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" -[[package]] -name = "leopard-codec" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee58dbc414bd23885d7da915e0457618b36d1fc950a6169ef2cb29829d1b1a1d" -dependencies = [ - "bytes", - "lazy_static", - "thiserror 1.0.63", -] - [[package]] name = "libc" version = "0.2.158" @@ -9268,7 +8713,7 @@ dependencies = [ "parking_lot 0.12.3", "pin-project", "quick-protobuf", - "rand 0.8.5", + "rand", "rw-stream-sink", "smallvec", "thiserror 1.0.63", @@ -9314,9 +8759,9 @@ dependencies = [ "prometheus-client", "quick-protobuf", "quick-protobuf-codec", - "rand 0.8.5", + "rand", "regex", - "sha2 0.10.8", + "sha2", "smallvec", "tracing", "void", @@ -9356,8 +8801,8 @@ dependencies = [ "hkdf", "multihash 0.19.1", "quick-protobuf", - "rand 0.8.5", - "sha2 0.10.8", + "rand", + "sha2", "thiserror 1.0.63", "tracing", "zeroize", @@ -9375,7 +8820,7 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-swarm", - "rand 0.8.5", + "rand", "smallvec", "socket2 0.5.7", "tokio", @@ -9416,8 +8861,8 @@ dependencies = [ "multihash 0.19.1", "once_cell", "quick-protobuf", - "rand 0.8.5", - "sha2 0.10.8", + "rand", + "sha2", "snow", "static_assertions", "thiserror 1.0.63", @@ -9437,7 +8882,7 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-swarm", - "rand 0.8.5", + "rand", "tracing", "void", "web-time", @@ -9457,7 +8902,7 @@ dependencies = [ "libp2p-tls", "parking_lot 0.12.3", "quinn", - "rand 0.8.5", + "rand", "ring 0.17.8", "rustls 0.23.13", "socket2 0.5.7", @@ -9482,7 +8927,7 @@ dependencies = [ "libp2p-swarm", "quick-protobuf", "quick-protobuf-codec", - "rand 0.8.5", + "rand", "static_assertions", "thiserror 1.0.63", "tracing", @@ -9506,7 +8951,7 @@ dependencies = [ "lru", "multistream-select", "once_cell", - "rand 0.8.5", + "rand", "smallvec", "tokio", "tracing", @@ -9591,7 +9036,7 @@ dependencies = [ "libp2p-noise", "libp2p-webrtc-utils", "multihash 0.19.1", - "rand 0.8.5", + "rand", "rcgen", "serde", "stun 0.6.0", @@ -9617,9 +9062,9 @@ dependencies = [ "libp2p-noise", "quick-protobuf", "quick-protobuf-codec", - "rand 0.8.5", + "rand", "serde", - "sha2 0.10.8", + "sha2", "thiserror 1.0.63", "tinytemplate", "tracing", @@ -10423,18 +9868,6 @@ dependencies = [ "libc", ] -[[package]] -name = "nmt-rs" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e408e823bdc9b4bb525a61b44e846239833a8f9bd86c03a43e4ca314a5497582" -dependencies = [ - "borsh", - "bytes", - "serde", - "sha2 0.10.8", -] - [[package]] name = "no-std-compat" version = "0.4.1" @@ -10524,7 +9957,7 @@ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits 0.2.19", - "rand 0.8.5", + "rand", "serde", ] @@ -10540,7 +9973,7 @@ dependencies = [ "num-integer", "num-iter", "num-traits 0.2.19", - "rand 0.8.5", + "rand", "smallvec", "zeroize", ] @@ -10561,17 +9994,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "num-derive" version = "0.4.2" @@ -10637,7 +10059,7 @@ dependencies = [ "num-integer", "num-modular", "num-traits 0.2.19", - "rand 0.8.5", + "rand", ] [[package]] @@ -10869,7 +10291,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "primeorder", - "sha2 0.10.8", + "sha2", ] [[package]] @@ -10881,7 +10303,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "primeorder", - "sha2 0.10.8", + "sha2", ] [[package]] @@ -11009,7 +10431,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" dependencies = [ "base64ct", - "rand_core 0.6.4", + "rand_core", "subtle", ] @@ -11052,7 +10474,7 @@ dependencies = [ "digest 0.10.7", "hmac", "password-hash", - "sha2 0.10.8", + "sha2", ] [[package]] @@ -11128,7 +10550,7 @@ checksum = "ac8a071862e93690b6e34e9a5fb8e33ff3734473ac0245b27232222c4906a33f" dependencies = [ "once_cell", "pest", - "sha2 0.10.8", + "sha2", ] [[package]] @@ -11158,7 +10580,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" dependencies = [ "phf_shared 0.11.2", - "rand 0.8.5", + "rand", ] [[package]] @@ -11451,15 +10873,6 @@ dependencies = [ "termtree", ] -[[package]] -name = "prefix-hex" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f1799f398371ad6957951ec446d3ff322d35c46d9db2e217b67e828b311c249" -dependencies = [ - "hex", -] - [[package]] name = "pretty_assertions" version = "1.4.1" @@ -11662,7 +11075,7 @@ dependencies = [ "bitflags 2.6.0", "lazy_static", "num-traits 0.2.19", - "rand 0.8.5", + "rand", "rand_chacha", "rand_xorshift", "regex-syntax 0.8.4", @@ -11788,34 +11201,6 @@ dependencies = [ "prost 0.13.3", ] -[[package]] -name = "prover-sdk" -version = "0.1.0" -source = "git+https://github.com/cartridge-gg/http-prover?rev=f239ade#f239ade2f7ed363fbf99c9726b998fe6b0ab887b" -dependencies = [ - "base64 0.22.1", - "common", - "ed25519-dalek", - "futures", - "prefix-hex", - "rand 0.8.5", - "reqwest 0.11.27", - "reqwest_cookie_store", - "serde", - "serde_json", - "starknet-types-core", - "thiserror 1.0.63", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "psl-types" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" - [[package]] name = "ptr_meta" version = "0.1.4" @@ -11836,16 +11221,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "publicsuffix" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96a8c1bda5ae1af7f99a2962e49df150414a43d62404644d98dd5c3a93d07457" -dependencies = [ - "idna 0.3.0", - "psl-types", -] - [[package]] name = "pulldown-cmark" version = "0.12.2" @@ -11957,7 +11332,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ "bytes", - "rand 0.8.5", + "rand", "ring 0.17.8", "rustc-hash 2.0.0", "rustls 0.23.13", @@ -12015,19 +11390,6 @@ dependencies = [ "nibble_vec", ] -[[package]] -name = "rand" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" -dependencies = [ - "fuchsia-cprng", - "libc", - "rand_core 0.3.1", - "rdrand", - "winapi", -] - [[package]] name = "rand" version = "0.8.5" @@ -12036,7 +11398,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha", - "rand_core 0.6.4", + "rand_core", ] [[package]] @@ -12046,24 +11408,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -dependencies = [ - "rand_core 0.4.2", + "rand_core", ] -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" - [[package]] name = "rand_core" version = "0.6.4" @@ -12079,7 +11426,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "rand_core 0.6.4", + "rand_core", ] [[package]] @@ -12103,12 +11450,12 @@ dependencies = [ "maybe-rayon", "new_debug_unreachable", "noop_proc_macro", - "num-derive 0.4.2", + "num-derive", "num-traits 0.2.19", "once_cell", "paste", "profiling", - "rand 0.8.5", + "rand", "rand_chacha", "simd_helpers", "system-deps", @@ -12185,15 +11532,6 @@ dependencies = [ "yasna", ] -[[package]] -name = "rdrand" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -dependencies = [ - "rand_core 0.3.1", -] - [[package]] name = "redb" version = "2.4.0" @@ -12293,15 +11631,6 @@ version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - [[package]] name = "rend" version = "0.4.2" @@ -12320,8 +11649,6 @@ dependencies = [ "async-compression", "base64 0.21.7", "bytes", - "cookie 0.17.0", - "cookie_store 0.20.0", "encoding_rs", "futures-core", "futures-util", @@ -12370,8 +11697,6 @@ checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" dependencies = [ "base64 0.22.1", "bytes", - "cookie 0.18.1", - "cookie_store 0.21.0", "futures-core", "futures-util", "http 1.1.0", @@ -12385,7 +11710,6 @@ dependencies = [ "js-sys", "log", "mime", - "mime_guess", "native-tls", "once_cell", "percent-encoding", @@ -12410,18 +11734,6 @@ dependencies = [ "windows-registry", ] -[[package]] -name = "reqwest_cookie_store" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ea5c6f30c19d766efe8d823c88f9abd1c56516648a0d4264ab2dc04cc19472" -dependencies = [ - "bytes", - "cookie_store 0.20.0", - "reqwest 0.12.7", - "url", -] - [[package]] name = "resolv-conf" version = "0.7.0" @@ -12589,7 +11901,7 @@ dependencies = [ "num-traits 0.2.19", "pkcs1", "pkcs8", - "rand_core 0.6.4", + "rand_core", "signature", "spki", "subtle", @@ -12658,7 +11970,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88530b681abe67924d42cca181d070e3ac20e0740569441a9e35a7cedd2b34a4" dependencies = [ "quote", - "rand 0.8.5", + "rand", "rustc_version 0.4.1", "syn 2.0.90", ] @@ -12706,7 +12018,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e60482acbe8afb31edf6b1413103b7bca7a65004c423b3c3993749a083994fbe" dependencies = [ "bytes", - "rand 0.8.5", + "rand", "serde", "thiserror 1.0.63", "webrtc-util 0.8.1", @@ -12719,7 +12031,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47fca9bd66ae0b1f3f649b8f5003d6176433d7293b78b0fce7e1031816bdd99d" dependencies = [ "bytes", - "rand 0.8.5", + "rand", "serde", "thiserror 1.0.63", "webrtc-util 0.8.1", @@ -12742,7 +12054,7 @@ dependencies = [ "parity-scale-codec", "primitive-types", "proptest", - "rand 0.8.5", + "rand", "rlp", "ruint-macro", "serde", @@ -12795,7 +12107,7 @@ dependencies = [ "borsh", "bytes", "num-traits 0.2.19", - "rand 0.8.5", + "rand", "rkyv", "serde", "serde_json", @@ -12996,33 +12308,6 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" -[[package]] -name = "rustls-platform-verifier" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afbb878bdfdf63a336a5e63561b1835e7a8c91524f51621db870169eac84b490" -dependencies = [ - "core-foundation 0.9.4", - "core-foundation-sys", - "jni 0.19.0", - "log", - "once_cell", - "rustls 0.23.13", - "rustls-native-certs 0.7.3", - "rustls-platform-verifier-android", - "rustls-webpki 0.102.8", - "security-framework", - "security-framework-sys", - "webpki-roots 0.26.6", - "winapi", -] - -[[package]] -name = "rustls-platform-verifier-android" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" - [[package]] name = "rustls-webpki" version = "0.101.7" @@ -13097,88 +12382,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "saya" -version = "1.0.12" -dependencies = [ - "anyhow", - "clap", - "console", - "dojo-utils", - "saya-core", - "starknet 0.12.0", - "starknet-crypto 0.7.2", - "tokio", - "tracing", - "tracing-log 0.1.4", - "tracing-subscriber", - "url", -] - -[[package]] -name = "saya-core" -version = "1.0.12" -dependencies = [ - "anyhow", - "async-trait", - "bigdecimal 0.4.5", - "cairo-proof-parser", - "cairo1-playground", - "celestia-rpc", - "celestia-types", - "dojo-utils", - "futures", - "herodotus_sharp_playground", - "itertools 0.12.1", - "katana-primitives", - "katana-provider", - "katana-rpc-types", - "prover-sdk", - "reqwest 0.11.27", - "saya-provider", - "serde", - "serde-felt", - "serde_json", - "starknet 0.12.0", - "starknet-crypto 0.7.2", - "tempdir", - "thiserror 1.0.63", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "saya-provider" -version = "1.0.12" -dependencies = [ - "alloy-primitives", - "anyhow", - "async-trait", - "auto_impl", - "convert_case 0.6.0", - "flate2", - "futures", - "jsonrpsee 0.16.3", - "katana-cairo", - "katana-db", - "katana-executor", - "katana-primitives", - "katana-provider", - "katana-rpc-api", - "katana-rpc-types", - "lazy_static", - "num-traits 0.2.19", - "serde", - "serde_json", - "serde_with 3.11.0", - "starknet 0.12.0", - "thiserror 1.0.63", - "tokio", - "tracing", - "url", -] - [[package]] name = "scarb" version = "2.9.2" @@ -13245,7 +12448,7 @@ dependencies = [ "serde-value", "serde_json", "serde_repr", - "sha2 0.10.8", + "sha2", "smallvec", "smol_str", "tar", @@ -13363,21 +12566,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "scheduler" -version = "1.0.12" -dependencies = [ - "anyhow", - "clap", - "katana-primitives", - "saya-core", - "serde", - "serde_json", - "starknet 0.12.0", - "tokio", - "url", -] - [[package]] name = "schemars" version = "0.8.21" @@ -13424,7 +12612,7 @@ dependencies = [ "hmac", "pbkdf2", "salsa20", - "sha2 0.10.8", + "sha2", ] [[package]] @@ -13443,7 +12631,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13254db766b17451aced321e7397ebf0a446ef0c8d2942b6e67a95815421093f" dependencies = [ - "rand 0.8.5", + "rand", "substring", "thiserror 1.0.63", "url", @@ -13479,7 +12667,6 @@ dependencies = [ "core-foundation 0.9.4", "core-foundation-sys", "libc", - "num-bigint", "security-framework-sys", ] @@ -13544,16 +12731,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-felt" -version = "0.1.0" -source = "git+https://github.com/cartridge-gg/cairo-proof-parser.git?rev=f175d58#f175d58b487cc32c073d1a92d6d367eff234993b" -dependencies = [ - "serde", - "starknet-crypto 0.7.2", - "starknet-ff", -] - [[package]] name = "serde-untagged" version = "0.1.6" @@ -13586,15 +12763,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "serde_bytes" -version = "0.11.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" -dependencies = [ - "serde", -] - [[package]] name = "serde_cbor_2" version = "0.12.0-dev" @@ -13692,22 +12860,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_with" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" -dependencies = [ - "base64 0.13.1", - "chrono", - "hex", - "indexmap 1.9.3", - "serde", - "serde_json", - "serde_with_macros 2.3.3", - "time", -] - [[package]] name = "serde_with" version = "3.11.0" @@ -13722,22 +12874,10 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "serde_with_macros 3.11.0", + "serde_with_macros", "time", ] -[[package]] -name = "serde_with_macros" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" -dependencies = [ - "darling 0.20.10", - "proc-macro2", - "quote", - "syn 2.0.90", -] - [[package]] name = "serde_with_macros" version = "3.11.0" @@ -13815,19 +12955,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - [[package]] name = "sha2" version = "0.10.8" @@ -13926,7 +13053,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest 0.10.7", - "rand_core 0.6.4", + "rand_core", ] [[package]] @@ -14006,7 +13133,7 @@ dependencies = [ "reqwest 0.12.7", "serde", "serde_json", - "starknet 0.12.0", + "starknet", "tempfile", "thiserror 1.0.63", "tokio", @@ -14054,10 +13181,10 @@ dependencies = [ "blake2", "chacha20poly1305", "curve25519-dalek", - "rand_core 0.6.4", + "rand_core", "ring 0.17.8", "rustc_version 0.4.1", - "sha2 0.10.8", + "sha2", "subtle", ] @@ -14093,7 +13220,7 @@ dependencies = [ "http 0.2.12", "httparse", "log", - "rand 0.8.5", + "rand", "sha-1", ] @@ -14108,7 +13235,7 @@ dependencies = [ "futures", "httparse", "log", - "rand 0.8.5", + "rand", "sha1", ] @@ -14146,7 +13273,7 @@ dependencies = [ "sozo-ops", "sozo-scarbext", "sozo-walnut", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "tabled", "thiserror 1.0.63", @@ -14178,11 +13305,11 @@ dependencies = [ "scarb", "serde", "serde_json", - "serde_with 3.11.0", + "serde_with", "sozo-scarbext", "sozo-walnut", "spinoff", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "thiserror 1.0.63", "tokio", @@ -14208,7 +13335,7 @@ name = "sozo-signers" version = "1.0.12" dependencies = [ "anyhow", - "starknet 0.12.0", + "starknet", ] [[package]] @@ -14224,7 +13351,7 @@ dependencies = [ "scarb-ui", "serde", "serde_json", - "starknet 0.12.0", + "starknet", "thiserror 1.0.63", "url", "urlencoding", @@ -14342,7 +13469,7 @@ dependencies = [ "percent-encoding", "serde", "serde_json", - "sha2 0.10.8", + "sha2", "smallvec", "sqlformat", "thiserror 1.0.63", @@ -14382,7 +13509,7 @@ dependencies = [ "quote", "serde", "serde_json", - "sha2 0.10.8", + "sha2", "sqlx-core", "sqlx-mysql", "sqlx-postgres", @@ -14423,11 +13550,11 @@ dependencies = [ "memchr", "once_cell", "percent-encoding", - "rand 0.8.5", + "rand", "rsa", "serde", "sha1", - "sha2 0.10.8", + "sha2", "smallvec", "sqlx-core", "stringprep", @@ -14464,10 +13591,10 @@ dependencies = [ "md-5", "memchr", "once_cell", - "rand 0.8.5", + "rand", "serde", "serde_json", - "sha2 0.10.8", + "sha2", "smallvec", "sqlx-core", "stringprep", @@ -14509,49 +13636,19 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" -[[package]] -name = "starknet" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e633a772f59214c296d5037c95c36b72792c9360323818da2b625c7b4ec4b49" -dependencies = [ - "starknet-accounts 0.10.0", - "starknet-contract 0.10.0", - "starknet-core 0.11.1", - "starknet-crypto 0.7.2", - "starknet-macros", - "starknet-providers 0.11.0", - "starknet-signers 0.9.0", -] - [[package]] name = "starknet" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f0c9ac3809cc7630784e8c8565fa3013af819d83c97aa2720d566016d439011" dependencies = [ - "starknet-accounts 0.11.0", - "starknet-contract 0.11.0", - "starknet-core 0.12.0", + "starknet-accounts", + "starknet-contract", + "starknet-core", "starknet-crypto 0.7.2", "starknet-macros", - "starknet-providers 0.12.0", - "starknet-signers 0.10.0", -] - -[[package]] -name = "starknet-accounts" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee8a6b588a22c7e79f5d8d4e33413387db63a8beb98be8610138541794cc0a5" -dependencies = [ - "async-trait", - "auto_impl", - "starknet-core 0.11.1", - "starknet-crypto 0.7.2", - "starknet-providers 0.11.0", - "starknet-signers 0.9.0", - "thiserror 1.0.63", + "starknet-providers", + "starknet-signers", ] [[package]] @@ -14562,25 +13659,10 @@ checksum = "0ee27ded58ade61da410fccafd57ed5429b0e79a9d62a4ae8b65818cb9d6f400" dependencies = [ "async-trait", "auto_impl", - "starknet-core 0.12.0", + "starknet-core", "starknet-crypto 0.7.2", - "starknet-providers 0.12.0", - "starknet-signers 0.10.0", - "thiserror 1.0.63", -] - -[[package]] -name = "starknet-contract" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5f91344f1e0b81873b6dc235c50ae4d084c6ea4dd4a1e3e27ad895803adb610" -dependencies = [ - "serde", - "serde_json", - "serde_with 2.3.3", - "starknet-accounts 0.10.0", - "starknet-core 0.11.1", - "starknet-providers 0.11.0", + "starknet-providers", + "starknet-signers", "thiserror 1.0.63", ] @@ -14592,32 +13674,13 @@ checksum = "bd6ee5762d24c4f06ab7e9406550925df406712e73719bd2de905c879c674a87" dependencies = [ "serde", "serde_json", - "serde_with 3.11.0", - "starknet-accounts 0.11.0", - "starknet-core 0.12.0", - "starknet-providers 0.12.0", + "serde_with", + "starknet-accounts", + "starknet-core", + "starknet-providers", "thiserror 1.0.63", ] -[[package]] -name = "starknet-core" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d506e02a4083290d13b427dfe437fd95aa8b56315c455bb2f9cdeca76620d457" -dependencies = [ - "base64 0.21.7", - "crypto-bigint", - "flate2", - "hex", - "serde", - "serde_json", - "serde_json_pythonic", - "serde_with 2.3.3", - "sha3", - "starknet-crypto 0.7.2", - "starknet-types-core", -] - [[package]] name = "starknet-core" version = "0.12.0" @@ -14631,7 +13694,7 @@ dependencies = [ "serde", "serde_json", "serde_json_pythonic", - "serde_with 3.11.0", + "serde_with", "sha3", "starknet-crypto 0.7.2", "starknet-types-core", @@ -14650,7 +13713,7 @@ dependencies = [ "num-integer", "num-traits 0.2.19", "rfc6979", - "sha2 0.10.8", + "sha2", "starknet-crypto-codegen", "starknet-curve 0.4.2", "starknet-ff", @@ -14670,7 +13733,7 @@ dependencies = [ "num-integer", "num-traits 0.2.19", "rfc6979", - "sha2 0.10.8", + "sha2", "starknet-curve 0.5.1", "starknet-types-core", "zeroize", @@ -14712,11 +13775,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7abf1b44ec5b18d87c1ae5f54590ca9d0699ef4dd5b2ffa66fc97f24613ec585" dependencies = [ "ark-ff 0.4.2", - "bigdecimal 0.3.1", "crypto-bigint", "getrandom", "hex", - "serde", ] [[package]] @@ -14725,31 +13786,10 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8986a940af916fc0a034f4e42c6ba76d94f1e97216d75447693dfd7aefaf3ef2" dependencies = [ - "starknet-core 0.12.0", + "starknet-core", "syn 2.0.90", ] -[[package]] -name = "starknet-providers" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59c85e0a0f4563ae95dfeae14ea0f0c70610efc0ec2462505c64eff5765e7b97" -dependencies = [ - "async-trait", - "auto_impl", - "ethereum-types", - "flate2", - "getrandom", - "log", - "reqwest 0.11.27", - "serde", - "serde_json", - "serde_with 2.3.3", - "starknet-core 0.11.1", - "thiserror 1.0.63", - "url", -] - [[package]] name = "starknet-providers" version = "0.12.0" @@ -14765,29 +13805,12 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "serde_with 3.11.0", - "starknet-core 0.12.0", + "serde_with", + "starknet-core", "thiserror 1.0.63", "url", ] -[[package]] -name = "starknet-signers" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17da2139119dbe3aacf1d5d4338798a5c489d17f424916ceb9d2efd83554f87" -dependencies = [ - "async-trait", - "auto_impl", - "crypto-bigint", - "eth-keystore", - "getrandom", - "rand 0.8.5", - "starknet-core 0.11.1", - "starknet-crypto 0.7.2", - "thiserror 1.0.63", -] - [[package]] name = "starknet-signers" version = "0.10.0" @@ -14799,8 +13822,8 @@ dependencies = [ "crypto-bigint", "eth-keystore", "getrandom", - "rand 0.8.5", - "starknet-core 0.12.0", + "rand", + "starknet-core", "starknet-crypto 0.7.2", "thiserror 1.0.63", ] @@ -14953,7 +13976,7 @@ dependencies = [ "crc", "lazy_static", "md-5", - "rand 0.8.5", + "rand", "ring 0.17.8", "subtle", "thiserror 1.0.63", @@ -14972,7 +13995,7 @@ dependencies = [ "crc", "lazy_static", "md-5", - "rand 0.8.5", + "rand", "ring 0.17.8", "subtle", "thiserror 1.0.63", @@ -14996,21 +14019,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "subtle-encoding" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945" -dependencies = [ - "zeroize", -] - -[[package]] -name = "subtle-ng" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" - [[package]] name = "symbolic-common" version = "12.11.1" @@ -15214,16 +14222,6 @@ version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" -[[package]] -name = "tempdir" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" -dependencies = [ - "rand 0.4.6", - "remove_dir_all", -] - [[package]] name = "tempfile" version = "3.12.0" @@ -15771,7 +14769,7 @@ dependencies = [ "clap", "dojo-utils", "serde", - "starknet 0.12.0", + "starknet", "toml 0.8.19", "torii-sqlite", "url", @@ -15794,7 +14792,7 @@ dependencies = [ "prost 0.13.3", "serde", "serde_json", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "thiserror 1.0.63", "tokio", @@ -15830,7 +14828,7 @@ dependencies = [ "serial_test", "sozo-scarbext", "sqlx", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "strum 0.25.0", "strum_macros 0.25.3", @@ -15865,14 +14863,14 @@ dependencies = [ "num-traits 0.2.19", "prost 0.12.6", "prost 0.13.3", - "rand 0.8.5", + "rand", "rayon", "scarb", "serde", "serde_json", "sozo-scarbext", "sqlx", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "strum 0.25.0", "strum_macros 0.25.3", @@ -15924,7 +14922,7 @@ dependencies = [ "slab", "sozo-scarbext", "sqlx", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "tempfile", "thiserror 1.0.63", @@ -15949,11 +14947,11 @@ dependencies = [ "libp2p-webrtc", "libp2p-webrtc-websys", "libp2p-websocket-websys", - "rand 0.8.5", + "rand", "serde", "serde_json", "sqlx", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "tempfile", "thiserror 1.0.63", @@ -15994,7 +14992,7 @@ dependencies = [ "serde", "serde_json", "sqlx", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "tempfile", "tokio", @@ -16079,7 +15077,7 @@ dependencies = [ "slab", "sozo-scarbext", "sqlx", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "tempfile", "thiserror 1.0.63", @@ -16099,7 +15097,7 @@ dependencies = [ "indexmap 2.5.0", "serde", "serde_json", - "starknet 0.12.0", + "starknet", "starknet-crypto 0.7.2", "thiserror 1.0.63", ] @@ -16116,7 +15114,7 @@ dependencies = [ "indexmap 1.9.3", "pin-project", "pin-project-lite", - "rand 0.8.5", + "rand", "slab", "tokio", "tokio-util", @@ -16361,7 +15359,7 @@ dependencies = [ "http 0.2.12", "httparse", "log", - "rand 0.8.5", + "rand", "sha1", "thiserror 1.0.63", "url", @@ -16380,7 +15378,7 @@ dependencies = [ "http 1.1.0", "httparse", "log", - "rand 0.8.5", + "rand", "sha1", "thiserror 1.0.63", "url", @@ -16398,7 +15396,7 @@ dependencies = [ "futures", "log", "md-5", - "rand 0.8.5", + "rand", "ring 0.17.8", "stun 0.5.1", "thiserror 1.0.63", @@ -16787,7 +15785,7 @@ dependencies = [ "clap", "num-traits 0.2.19", "sqlx", - "starknet 0.12.0", + "starknet", "tokio", "tracing", "tracing-subscriber", @@ -17077,7 +16075,7 @@ checksum = "db67ae75a9405634f5882791678772c94ff5f16a66535aae186e26aa0841fc8b" dependencies = [ "core-foundation 0.9.4", "home", - "jni 0.21.1", + "jni", "log", "ndk-context", "objc", @@ -17126,7 +16124,7 @@ dependencies = [ "lazy_static", "log", "pem", - "rand 0.8.5", + "rand", "rcgen", "regex", "ring 0.16.20", @@ -17136,7 +16134,7 @@ dependencies = [ "sdp", "serde", "serde_json", - "sha2 0.10.8", + "sha2", "smol_str", "stun 0.5.1", "thiserror 1.0.63", @@ -17189,15 +16187,15 @@ dependencies = [ "p256", "p384", "pem", - "rand 0.8.5", - "rand_core 0.6.4", + "rand", + "rand_core", "rcgen", "ring 0.16.20", "rustls 0.21.12", "sec1", "serde", "sha1", - "sha2 0.10.8", + "sha2", "subtle", "thiserror 1.0.63", "tokio", @@ -17216,7 +16214,7 @@ dependencies = [ "async-trait", "crc", "log", - "rand 0.8.5", + "rand", "serde", "serde_json", "stun 0.5.1", @@ -17251,7 +16249,7 @@ checksum = "280017b6b9625ef7329146332518b339c3cceff231cc6f6a9e0e6acab25ca4af" dependencies = [ "byteorder", "bytes", - "rand 0.8.5", + "rand", "rtp 0.10.0", "thiserror 1.0.63", ] @@ -17267,7 +16265,7 @@ dependencies = [ "bytes", "crc", "log", - "rand 0.8.5", + "rand", "thiserror 1.0.63", "tokio", "webrtc-util 0.8.1", @@ -17310,7 +16308,7 @@ dependencies = [ "libc", "log", "nix 0.26.4", - "rand 0.8.5", + "rand", "thiserror 1.0.63", "tokio", "winapi", @@ -17331,7 +16329,7 @@ dependencies = [ "log", "nix 0.26.4", "portable-atomic", - "rand 0.8.5", + "rand", "thiserror 1.0.63", "tokio", "winapi", @@ -17780,7 +16778,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ "curve25519-dalek", - "rand_core 0.6.4", + "rand_core", "serde", "zeroize", ] @@ -17874,7 +16872,7 @@ dependencies = [ "scarb", "sozo-ops", "sozo-scarbext", - "starknet 0.12.0", + "starknet", "tokio", ] @@ -17895,7 +16893,7 @@ dependencies = [ "nohash-hasher", "parking_lot 0.12.3", "pin-project", - "rand 0.8.5", + "rand", "static_assertions", ] @@ -17910,7 +16908,7 @@ dependencies = [ "nohash-hasher", "parking_lot 0.12.3", "pin-project", - "rand 0.8.5", + "rand", "static_assertions", "web-time", ] diff --git a/Cargo.toml b/Cargo.toml index 19bb4397e0..4ad1a0693a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,8 +4,6 @@ resolver = "2" members = [ "bin/dojo-language-server", "bin/katana", - "bin/saya", - "bin/scheduler", "bin/sozo", "bin/torii", "crates/dojo/bindgen", @@ -42,8 +40,6 @@ members = [ "crates/katana/tasks", "crates/katana/trie", "crates/metrics", - "crates/saya/core", - "crates/saya/provider", "crates/sozo/scarbext", "crates/sozo/signers", "crates/sozo/walnut", @@ -130,10 +126,6 @@ torii-server = { path = "crates/torii/server" } torii-runner = { path = "crates/torii/runner" } torii-typed-data = { path = "crates/torii/typed-data" } -# saya -saya-core = { path = "crates/saya/core" } -saya-provider = { path = "crates/saya/provider" } - # sozo sozo-ops = { path = "crates/sozo/ops" } sozo-scarbext = { path = "crates/sozo/scarbext" } diff --git a/bin/saya/Cargo.toml b/bin/saya/Cargo.toml deleted file mode 100644 index 439adc9dbe..0000000000 --- a/bin/saya/Cargo.toml +++ /dev/null @@ -1,23 +0,0 @@ -[package] -description = "Settlement service for Katana." -edition.workspace = true -license-file.workspace = true -name = "saya" -repository.workspace = true -version.workspace = true - -[dependencies] -anyhow.workspace = true -clap.workspace = true -console.workspace = true -dojo-utils.workspace = true -saya-core.workspace = true -starknet.workspace = true -tokio.workspace = true -tracing.workspace = true -tracing-log.workspace = true -tracing-subscriber.workspace = true -url.workspace = true - -[dev-dependencies] -starknet-crypto.workspace = true diff --git a/bin/saya/README.md b/bin/saya/README.md deleted file mode 100644 index 050f77c141..0000000000 --- a/bin/saya/README.md +++ /dev/null @@ -1,195 +0,0 @@ -# Saya Executable Documentation - -This documentation outlines the operation of the Saya executable, a CLI-based service designed to interact with blockchain components for state management and updates. Saya supports operations on Celestia nodes and integrates with Katana blocks to provide a streamlined blockchain interaction process. - -## Key Features - -- **Celestia Node Integration**: Allows publishing state updates to a Celestia node (WIP). -- **Katana Block Fetching**: Saya can fetch blocks from Katana, aiding in local blockchain simulations and testing. - -## Prerequisites - -Ensure you have the following set up: - -- Rust and Cargo installed on your system. -- Access to Celestia and/or Katana node URLs if needed. - -## Basic Usage Example - -Below is a command-line example that demonstrates how to run the Saya executable with necessary parameters: - -```bash -cargo run --bin saya -- \ ---rpc-url http://localhost:5050 \ ---da-chain celestia \ ---celestia-node-url http://127.0.0.1:26658 \ ---celestia-namespace mynm \ ---celestia-node-auth-token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..... -``` - -## Detailed Workflow - -1. Setup your environment: - * For now starknet foundry is required until Sozo supports deploying non-dojo contracts. Please refer to [install instructions](https://foundry-rs.github.io/starknet-foundry/getting-started/installation.html#installation-via-asdf). - If you dont have a imported sncast account: - ```bash - export STARKNET_RPC_URL="https://api.cartridge.gg/x/starknet/sepolia" - export DOJO_ACCOUNT_ADDRESS="" - export DOJO_PRIVATE_KEY="" - ``` - * Setup variables in or use environment variables ```bin/saya/scripts/0_account_setup.sh```, and run script - * `sncast` doesn't support environment variables, for now, so you may have to set the options manually. - - **During this tutorial, we will export environment variables, so you must remain in the same shell session**. - - -2. Prepare fact registry contract - Declare or use already declared `class-hash`: `0x0485857a88cacd0a706452c61cfa613802c638dc4ce09bf3d8b289c70183d293`. - Deploy or use already deployed(recommended) `contract`: `0x2cc03dd3136b634bfea2e36e9aac5f966db9576dde3fe43e3ef72e9ece1f42b`. - - ```bash - export SAYA_FACT_REGISTRY_ADDRESS="0x2cc03dd3136b634bfea2e36e9aac5f966db9576dde3fe43e3ef72e9ece1f42b" - ``` - - In the repository https://github.com/cartridge-gg/cairo-verifier run - - ```bash - fact_registry/1-declare.sh # extract `class-hash` - fact_registry/1-deploy.sh # use at - ``` - -3. Spawn world - - You must choose a different world seed as an other person trying this example will have the same world's address. To modify the world's seed, modify the `seed` parameter in the `examples/spawn-and-move/dojo_saya.toml` file. - - Then set all neccesery variables ```bin/saya/scripts/1_world_setup.sh``` in script execute this command, being at the root of the repository: - - ```bash - bash bin/saya/scripts/1_world_setup.sh - ``` - - Once the migration is done, the world address and the block number at which the world was deployed will be printed, - you can setup your environment variable like so: - ```bash - export DOJO_WORLD_ADDRESS="" - export SAYA_FORK_BLOCK_NUMBER="" - ``` - - Once those variables are exported, you can run the following command to configure the world: - ```bash - bash bin/saya/scripts/2_world_config.sh - ``` - -4. Preparing Piltover Contract - The current Piltover contract is under [Cartridge github](https://github.com/cartridge-gg/piltover) and the class hash is `0x2a7a2276cf2f00206960ea8a0ea86b1549d6514ab11f546cc71b8154b597c1d`. - - At the moment, we don't have a piltover maintained by Dojo community to receive all state updates for multiple - appchain, this is coming soon. - - In the meantime, if you need to test the piltover contract, you can deploy your own piltover contract using the following command: - ```bash - bash bin/saya/scripts/3_piltover.sh - ``` - -5. Start katana - - Start a local instance of Katana configured to work with the newly deployed contract. You should wait your world to be integrated into the **latest block** (and not the pending one). - Once the block in which the transaction that deploys the world is mined, you can start `katana` in forking mode. - - If you need to start an other terminal, you can first print the variables you need to set: - ```bash - echo $STARKNET_RPC_URL - echo $SAYA_FORK_BLOCK_NUMBER - ``` - Then start katana with the following command: - ```bash - cargo run -r --bin katana -- \ - --rpc-url $STARKNET_RPC_URL \ - --fork-block-number $SAYA_FORK_BLOCK_NUMBER - ``` - -6. Run transactions on `katana` - - Finally, modify the state of the world using specific actions and granting some permissions: - - ```bash - cargo run -r --bin sozo -- auth grant writer ns:dojo_examples,actions \ - --manifest-path examples/spawn-and-move/Scarb.toml \ - --rpc-url http://localhost:5050 \ - --wait - - cargo run -r --bin sozo -- execute actions spawn \ - --manifest-path examples/spawn-and-move/Scarb.toml \ - --rpc-url http://localhost:5050 \ - --wait - ``` - - Before running `saya`, we can check the actual value for some models on Sepolia, to then see them updated by the proof being verified and the state of the world being updated. - In the `spawn-and-move` example, the `Position` model is used to store some data associated with the player, - being the contract address of the contract that called `spawn` (hence, your account address). - By default on Sepolia, it should be set like to unknown position, being like: - - ```bash - cargo run -r --bin sozo -- model get Position \ - --manifest-path examples/spawn-and-move/Scarb.toml \ - --rpc-url http://localhost:5050 - ``` - - ```json - // Expected on Sepolia as we've executed the transaction on the Katana shard. - { - player : , - vec : { - x : 0, - y : 0 - } - } - - // Expected on Katana. - { - player : , - vec : { - x : 10, - y : 10 - } - } - ``` - -8. Run saya - - The could be `http://localhost:3618` if you have a registered key or a link to a self hosted instance of `https://github.com/cartridge-gg/http-prover`. - The is the private key produced by `keygen` installed with `cargo install --git https://github.com/cartridge-gg/http-prover keygen`. Pass the public key to server operator or the prover program. - - You can also use the service provided by cartridge by asking to pre-register your key to the service on the Cartridge discord to experiment with Saya. - - If you are on an `amd64` architecture, go ahead and run the `http-prover` locally to see how it works and run this whole pipeline locally. - If not (this includes Apple Silicon), some emulation will take place to run the prover on your machine, and this is very very slow. - - It's important that the `--start-block` of Saya is the first block produced by Katana as for now Katana is not fetching events from the forked network. To get this value, you can add one to the `SAYA_FORK_BLOCK_NUMBER` value. - **Currently saya supports only persistent mode, ephermal will be implemented in future - - ```bash - cargo run -r --bin saya -- \ - --mode persistent \ - --rpc-url http://localhost:5050 \ - --registry $SAYA_FACT_REGISTRY \ - --settlement-contract $SAYA_PILTOVER_ADDRESS \ - --world $SAYA_WORLD_ADDRESS \ - --prover-url $SAYA_PROVER_URL \ - --starknet-url $SAYA_SEPOLIA_ENDPOINT \ - --signer-key $SAYA_SEPOLIA_PRIVATE_KEY \ - --signer-address $SAYA_SEPOLIA_ACCOUNT_ADDRESS \ - --private-key $SAYA_PROVER_KEY \ - --batch-size 1 \ - --start-block $(expr $SAYA_FORK_BLOCK_NUMBER + 1) \ - --da-chain celestia \ - --celestia-node-url http://celestia-arabica.cartridge.gg \ - --celestia-namespace saya-dev \ - --celestia-node-auth-token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBbGxvdyI6WyJwdWJsaWMiLCJyZWFkIiwid3JpdGUiLCJhZG1pbiJdfQ.l26OoOmRmLhKdvvUaeqhSpt2d5eZTWkaixSZeje7XIY - ``` - - After this command, Saya will pick up the blocks with transactions, generate the proof for the state transition, and send it to the base layer world contract. - - Once the world on Sepolia is updated, you can issue again the `model get` command as seen before, and you should see the `katana` shard state reflected on Sepolia. - - Ensure to replace placeholders (`<>`) with appropriate values for your configuration and environment. This documentation provides a comprehensive overview for developers and operators to effectively utilize the Saya service in blockchain applications. diff --git a/bin/saya/programs/cairo1batcher.json b/bin/saya/programs/cairo1batcher.json deleted file mode 100644 index 2d84fc6148..0000000000 --- a/bin/saya/programs/cairo1batcher.json +++ /dev/null @@ -1 +0,0 @@ -{"version":1,"type_declarations":[{"id":{"id":0,"debug_name":"RangeCheck"},"long_id":{"generic_id":"RangeCheck","generic_args":[]},"declared_type_info":{"storable":true,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":25,"debug_name":"Uninitialized"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":0,"debug_name":"RangeCheck"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":48,"debug_name":"Const"},"long_id":{"generic_id":"Const","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}},{"Value":[1,[1718382455,1333159282,1937072672,1966289503]]}]},"declared_type_info":{"storable":false,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":47,"debug_name":"Const"},"long_id":{"generic_id":"Const","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}},{"Value":[1,[1970168947,1713398383,1970544751,1702371439,4812388]]}]},"declared_type_info":{"storable":false,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":46,"debug_name":"Const"},"long_id":{"generic_id":"Const","generic_args":[{"Type":{"id":38,"debug_name":"u32"}},{"Value":[0,[]]}]},"declared_type_info":{"storable":false,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":2,"debug_name":"Array"},"long_id":{"generic_id":"Array","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":3,"debug_name":"Snapshot>"},"long_id":{"generic_id":"Snapshot","generic_args":[{"Type":{"id":2,"debug_name":"Array"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":4,"debug_name":"core::array::Span::"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[3300335458,1649952866,1586379173,11667290,4275777335,629657412,779741659,29027239],"debug_name":"core::array::Span::"}},{"Type":{"id":3,"debug_name":"Snapshot>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":10,"debug_name":"Unit"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":true}},{"id":{"id":43,"debug_name":"core::option::Option::>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[3150627704,1153032397,3087448214,1763882495,3465342813,3042584164,1260878839,30711674],"debug_name":"core::option::Option::>"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}},{"Type":{"id":10,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":44,"debug_name":"Tuple, core::option::Option::>>"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}},{"Type":{"id":43,"debug_name":"core::option::Option::>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":13,"debug_name":"core::panics::Panic"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[2208749170,1797821712,129214108,2539384922,764199911,1378060934,2080739472,23743629],"debug_name":"core::panics::Panic"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":true}},{"id":{"id":14,"debug_name":"Tuple>"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}},{"Type":{"id":13,"debug_name":"core::panics::Panic"}},{"Type":{"id":2,"debug_name":"Array"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":45,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[2151393902,1110179061,4206242838,2858574093,474661183,2845135022,84170644,20962673],"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}},{"Type":{"id":44,"debug_name":"Tuple, core::option::Option::>>"}},{"Type":{"id":14,"debug_name":"Tuple>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":1,"debug_name":"felt252"},"long_id":{"generic_id":"felt252","generic_args":[]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":5,"debug_name":"batcher::Call"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[2625791853,2064936836,3330289355,1565718335,1125572079,2770585342,2879026428,55099976],"debug_name":"batcher::Call"}},{"Type":{"id":1,"debug_name":"felt252"}},{"Type":{"id":1,"debug_name":"felt252"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":40,"debug_name":"core::option::Option::"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[2895621376,913253303,71035836,3176508258,2281737629,3114732634,2838176454,60149786],"debug_name":"core::option::Option::"}},{"Type":{"id":5,"debug_name":"batcher::Call"}},{"Type":{"id":10,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":41,"debug_name":"Tuple, core::option::Option::>"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}},{"Type":{"id":40,"debug_name":"core::option::Option::"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":42,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[2825095520,3354913265,1578589298,1992988084,1332289123,1717914821,3578878408,58783465],"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}},{"Type":{"id":41,"debug_name":"Tuple, core::option::Option::>"}},{"Type":{"id":14,"debug_name":"Tuple>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":39,"debug_name":"NonZero"},"long_id":{"generic_id":"NonZero","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":38,"debug_name":"u32"},"long_id":{"generic_id":"u32","generic_args":[]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":33,"debug_name":"Box"},"long_id":{"generic_id":"Box","generic_args":[{"Type":{"id":5,"debug_name":"batcher::Call"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":34,"debug_name":"core::option::Option::>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[732892949,1496296606,43141077,937854453,77543249,486497238,111833425,62342774],"debug_name":"core::option::Option::>"}},{"Type":{"id":33,"debug_name":"Box"}},{"Type":{"id":10,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":36,"debug_name":"Uninitialized"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":5,"debug_name":"batcher::Call"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":6,"debug_name":"Array"},"long_id":{"generic_id":"Array","generic_args":[{"Type":{"id":5,"debug_name":"batcher::Call"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":7,"debug_name":"Snapshot>"},"long_id":{"generic_id":"Snapshot","generic_args":[{"Type":{"id":6,"debug_name":"Array"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":37,"debug_name":"Uninitialized>>"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":7,"debug_name":"Snapshot>"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":35,"debug_name":"Uninitialized>"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":2,"debug_name":"Array"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":32,"debug_name":"core::option::Option::"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[272176401,869952872,2746667304,3595774673,2182797035,1218417362,2279605826,18640256],"debug_name":"core::option::Option::"}},{"Type":{"id":1,"debug_name":"felt252"}},{"Type":{"id":10,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":8,"debug_name":"core::array::Span::"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[3535146776,1633711915,3573680563,2432849790,2489149545,975863298,604432966,48173762],"debug_name":"core::array::Span::"}},{"Type":{"id":7,"debug_name":"Snapshot>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":31,"debug_name":"core::option::Option::>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[2540319368,1257567776,2211510899,234620219,4144046013,3380065828,3846016807,31541559],"debug_name":"core::option::Option::>"}},{"Type":{"id":8,"debug_name":"core::array::Span::"}},{"Type":{"id":10,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":28,"debug_name":"core::option::Option::>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[2651521491,2702264438,3349297123,2641520905,395184660,3265031354,40356875,29156503],"debug_name":"core::option::Option::>"}},{"Type":{"id":6,"debug_name":"Array"}},{"Type":{"id":10,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":29,"debug_name":"Tuple, core::option::Option::>>"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}},{"Type":{"id":28,"debug_name":"core::option::Option::>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":30,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[3744693764,707396276,1091080131,2903631532,2192196751,3200291328,2218249911,20459305],"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}},{"Type":{"id":29,"debug_name":"Tuple, core::option::Option::>>"}},{"Type":{"id":14,"debug_name":"Tuple>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":26,"debug_name":"Box"},"long_id":{"generic_id":"Box","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":27,"debug_name":"core::option::Option::>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[1148899559,2378266466,1485259957,133414423,2674006245,2028450664,3226109961,43875671],"debug_name":"core::option::Option::>"}},{"Type":{"id":26,"debug_name":"Box"}},{"Type":{"id":10,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":23,"debug_name":"Const"},"long_id":{"generic_id":"Const","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}},{"Value":[1,[1818584110,543580521,2003984752,976909678,1953066862,20336]]}]},"declared_type_info":{"storable":false,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":17,"debug_name":"Tuple>"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}},{"Type":{"id":2,"debug_name":"Array"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":18,"debug_name":"core::panics::PanicResult::<(core::array::Array::,)>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[704622403,483171566,1759595788,2942942373,3836427357,911959852,2124004651,45932020],"debug_name":"core::panics::PanicResult::<(core::array::Array::,)>"}},{"Type":{"id":17,"debug_name":"Tuple>"}},{"Type":{"id":14,"debug_name":"Tuple>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":16,"debug_name":"batcher::ProgramOutput"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[130101611,3970475116,2464124615,2479543974,1604804411,1756796302,1622338952,11389379],"debug_name":"batcher::ProgramOutput"}},{"Type":{"id":1,"debug_name":"felt252"}},{"Type":{"id":1,"debug_name":"felt252"}},{"Type":{"id":1,"debug_name":"felt252"}},{"Type":{"id":1,"debug_name":"felt252"}},{"Type":{"id":1,"debug_name":"felt252"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":21,"debug_name":"Const"},"long_id":{"generic_id":"Const","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}},{"Value":[1,[42]]}]},"declared_type_info":{"storable":false,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":20,"debug_name":"Const"},"long_id":{"generic_id":"Const","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}},{"Value":[1,[52]]}]},"declared_type_info":{"storable":false,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":19,"debug_name":"Const"},"long_id":{"generic_id":"Const","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}},{"Value":[1,[1]]}]},"declared_type_info":{"storable":false,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":9,"debug_name":"batcher::ProgramInput"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[3159547457,537249463,1465738781,1252568823,1531272048,732913786,1913439605,56287581],"debug_name":"batcher::ProgramInput"}},{"Type":{"id":8,"debug_name":"core::array::Span::"}},{"Type":{"id":1,"debug_name":"felt252"}},{"Type":{"id":1,"debug_name":"felt252"}},{"Type":{"id":1,"debug_name":"felt252"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":11,"debug_name":"core::option::Option::"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[2971819458,2257569485,133080994,2189010706,89601730,3431785258,1581189460,20944972],"debug_name":"core::option::Option::"}},{"Type":{"id":9,"debug_name":"batcher::ProgramInput"}},{"Type":{"id":10,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":12,"debug_name":"Tuple, core::option::Option::>"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}},{"Type":{"id":11,"debug_name":"core::option::Option::"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":15,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[2124623091,183429199,4291964600,2171957582,304455107,1961777831,2435207868,11891435],"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}},{"Type":{"id":12,"debug_name":"Tuple, core::option::Option::>"}},{"Type":{"id":14,"debug_name":"Tuple>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":22,"debug_name":"Uninitialized"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}}],"libfunc_declarations":[{"id":{"id":17,"debug_name":"alloc_local"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":0,"debug_name":"RangeCheck"}}]}},{"id":{"id":18,"debug_name":"alloc_local"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]}},{"id":{"id":19,"debug_name":"finalize_locals"},"long_id":{"generic_id":"finalize_locals","generic_args":[]}},{"id":{"id":20,"debug_name":"disable_ap_tracking"},"long_id":{"generic_id":"disable_ap_tracking","generic_args":[]}},{"id":{"id":21,"debug_name":"snapshot_take>"},"long_id":{"generic_id":"snapshot_take","generic_args":[{"Type":{"id":2,"debug_name":"Array"}}]}},{"id":{"id":22,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":2,"debug_name":"Array"}}]}},{"id":{"id":9,"debug_name":"struct_construct>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":4,"debug_name":"core::array::Span::"}}]}},{"id":{"id":36,"debug_name":"store_temp"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":0,"debug_name":"RangeCheck"}}]}},{"id":{"id":37,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":4,"debug_name":"core::array::Span::"}}]}},{"id":{"id":16,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":2,"debug_name":"batcher::ProgramInputSerde::deserialize"}}]}},{"id":{"id":38,"debug_name":"store_local"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":0,"debug_name":"RangeCheck"}}]}},{"id":{"id":15,"debug_name":"enum_match, core::option::Option::)>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":15,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}}]}},{"id":{"id":23,"debug_name":"branch_align"},"long_id":{"generic_id":"branch_align","generic_args":[]}},{"id":{"id":14,"debug_name":"struct_deconstruct, core::option::Option::>>"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":12,"debug_name":"Tuple, core::option::Option::>"}}]}},{"id":{"id":24,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":4,"debug_name":"core::array::Span::"}}]}},{"id":{"id":13,"debug_name":"enum_match>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":11,"debug_name":"core::option::Option::"}}]}},{"id":{"id":4,"debug_name":"array_new"},"long_id":{"generic_id":"array_new","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]}},{"id":{"id":12,"debug_name":"struct_deconstruct"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":9,"debug_name":"batcher::ProgramInput"}}]}},{"id":{"id":25,"debug_name":"drop"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]}},{"id":{"id":39,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":8,"debug_name":"core::array::Span::"}}]}},{"id":{"id":40,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":2,"debug_name":"Array"}}]}},{"id":{"id":41,"debug_name":"store_local"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]}},{"id":{"id":11,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":1,"debug_name":"batcher::main[expr31]"}}]}},{"id":{"id":26,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":8,"debug_name":"core::array::Span::"}}]}},{"id":{"id":27,"debug_name":"const_as_immediate>"},"long_id":{"generic_id":"const_as_immediate","generic_args":[{"Type":{"id":19,"debug_name":"Const"}}]}},{"id":{"id":28,"debug_name":"dup"},"long_id":{"generic_id":"dup","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]}},{"id":{"id":10,"debug_name":"felt252_add"},"long_id":{"generic_id":"felt252_add","generic_args":[]}},{"id":{"id":29,"debug_name":"const_as_immediate>"},"long_id":{"generic_id":"const_as_immediate","generic_args":[{"Type":{"id":20,"debug_name":"Const"}}]}},{"id":{"id":30,"debug_name":"const_as_immediate>"},"long_id":{"generic_id":"const_as_immediate","generic_args":[{"Type":{"id":21,"debug_name":"Const"}}]}},{"id":{"id":8,"debug_name":"struct_construct"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":16,"debug_name":"batcher::ProgramOutput"}}]}},{"id":{"id":31,"debug_name":"snapshot_take"},"long_id":{"generic_id":"snapshot_take","generic_args":[{"Type":{"id":16,"debug_name":"batcher::ProgramOutput"}}]}},{"id":{"id":32,"debug_name":"drop"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":16,"debug_name":"batcher::ProgramOutput"}}]}},{"id":{"id":42,"debug_name":"store_temp"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":16,"debug_name":"batcher::ProgramOutput"}}]}},{"id":{"id":7,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":0,"debug_name":"batcher::ProgramOutputSerde::serialize"}}]}},{"id":{"id":6,"debug_name":"struct_construct>>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":17,"debug_name":"Tuple>"}}]}},{"id":{"id":5,"debug_name":"enum_init,)>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":18,"debug_name":"core::panics::PanicResult::<(core::array::Array::,)>"}},{"Value":[0,[]]}]}},{"id":{"id":43,"debug_name":"store_temp,)>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":18,"debug_name":"core::panics::PanicResult::<(core::array::Array::,)>"}}]}},{"id":{"id":33,"debug_name":"drop"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":10,"debug_name":"Unit"}}]}},{"id":{"id":34,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":22,"debug_name":"Uninitialized"}}]}},{"id":{"id":35,"debug_name":"const_as_immediate>"},"long_id":{"generic_id":"const_as_immediate","generic_args":[{"Type":{"id":23,"debug_name":"Const"}}]}},{"id":{"id":44,"debug_name":"store_temp"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]}},{"id":{"id":3,"debug_name":"array_append"},"long_id":{"generic_id":"array_append","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]}},{"id":{"id":2,"debug_name":"struct_construct"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":13,"debug_name":"core::panics::Panic"}}]}},{"id":{"id":1,"debug_name":"struct_construct>>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":14,"debug_name":"Tuple>"}}]}},{"id":{"id":0,"debug_name":"enum_init,)>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":18,"debug_name":"core::panics::PanicResult::<(core::array::Array::,)>"}},{"Value":[1,[1]]}]}},{"id":{"id":59,"debug_name":"struct_deconstruct>"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":4,"debug_name":"core::array::Span::"}}]}},{"id":{"id":55,"debug_name":"array_snapshot_pop_front"},"long_id":{"generic_id":"array_snapshot_pop_front","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]}},{"id":{"id":69,"debug_name":"enum_init>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":27,"debug_name":"core::option::Option::>"}},{"Value":[0,[]]}]}},{"id":{"id":75,"debug_name":"store_temp>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":3,"debug_name":"Snapshot>"}}]}},{"id":{"id":76,"debug_name":"store_temp>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":27,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":70,"debug_name":"jump"},"long_id":{"generic_id":"jump","generic_args":[]}},{"id":{"id":52,"debug_name":"struct_construct"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":10,"debug_name":"Unit"}}]}},{"id":{"id":68,"debug_name":"enum_init>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":27,"debug_name":"core::option::Option::>"}},{"Value":[1,[1]]}]}},{"id":{"id":67,"debug_name":"enum_match>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":27,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":54,"debug_name":"unbox"},"long_id":{"generic_id":"unbox","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]}},{"id":{"id":66,"debug_name":"array_new"},"long_id":{"generic_id":"array_new","generic_args":[{"Type":{"id":5,"debug_name":"batcher::Call"}}]}},{"id":{"id":71,"debug_name":"rename"},"long_id":{"generic_id":"rename","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]}},{"id":{"id":77,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":6,"debug_name":"Array"}}]}},{"id":{"id":65,"debug_name":"function_call>"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":4,"debug_name":"core::array::deserialize_array_helper::"}}]}},{"id":{"id":64,"debug_name":"enum_match, core::option::Option::>)>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":30,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}}]}},{"id":{"id":63,"debug_name":"struct_deconstruct, core::option::Option::>>>"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":29,"debug_name":"Tuple, core::option::Option::>>"}}]}},{"id":{"id":62,"debug_name":"enum_match>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":28,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":72,"debug_name":"snapshot_take>"},"long_id":{"generic_id":"snapshot_take","generic_args":[{"Type":{"id":6,"debug_name":"Array"}}]}},{"id":{"id":73,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":6,"debug_name":"Array"}}]}},{"id":{"id":61,"debug_name":"struct_construct>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":8,"debug_name":"core::array::Span::"}}]}},{"id":{"id":60,"debug_name":"enum_init>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":31,"debug_name":"core::option::Option::>"}},{"Value":[0,[]]}]}},{"id":{"id":78,"debug_name":"store_temp>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":31,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":57,"debug_name":"enum_init>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":31,"debug_name":"core::option::Option::>"}},{"Value":[1,[1]]}]}},{"id":{"id":58,"debug_name":"enum_init, core::option::Option::)>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":15,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}},{"Value":[1,[1]]}]}},{"id":{"id":79,"debug_name":"store_temp, core::option::Option::)>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":15,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}}]}},{"id":{"id":56,"debug_name":"enum_match>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":31,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":74,"debug_name":"enable_ap_tracking"},"long_id":{"generic_id":"enable_ap_tracking","generic_args":[]}},{"id":{"id":53,"debug_name":"enum_init, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":32,"debug_name":"core::option::Option::"}},{"Value":[0,[]]}]}},{"id":{"id":80,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":32,"debug_name":"core::option::Option::"}}]}},{"id":{"id":51,"debug_name":"enum_init, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":32,"debug_name":"core::option::Option::"}},{"Value":[1,[1]]}]}},{"id":{"id":50,"debug_name":"enum_match>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":32,"debug_name":"core::option::Option::"}}]}},{"id":{"id":49,"debug_name":"struct_construct"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":9,"debug_name":"batcher::ProgramInput"}}]}},{"id":{"id":48,"debug_name":"enum_init, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":11,"debug_name":"core::option::Option::"}},{"Value":[0,[]]}]}},{"id":{"id":46,"debug_name":"struct_construct, core::option::Option::>>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":12,"debug_name":"Tuple, core::option::Option::>"}}]}},{"id":{"id":45,"debug_name":"enum_init, core::option::Option::)>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":15,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}},{"Value":[0,[]]}]}},{"id":{"id":47,"debug_name":"enum_init, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":11,"debug_name":"core::option::Option::"}},{"Value":[1,[1]]}]}},{"id":{"id":89,"debug_name":"alloc_local>"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":2,"debug_name":"Array"}}]}},{"id":{"id":90,"debug_name":"alloc_local>>"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":7,"debug_name":"Snapshot>"}}]}},{"id":{"id":91,"debug_name":"alloc_local"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":5,"debug_name":"batcher::Call"}}]}},{"id":{"id":88,"debug_name":"struct_deconstruct>"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":8,"debug_name":"core::array::Span::"}}]}},{"id":{"id":87,"debug_name":"array_snapshot_pop_front"},"long_id":{"generic_id":"array_snapshot_pop_front","generic_args":[{"Type":{"id":5,"debug_name":"batcher::Call"}}]}},{"id":{"id":86,"debug_name":"enum_init>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":34,"debug_name":"core::option::Option::>"}},{"Value":[0,[]]}]}},{"id":{"id":96,"debug_name":"store_temp>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":7,"debug_name":"Snapshot>"}}]}},{"id":{"id":97,"debug_name":"store_temp>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":34,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":85,"debug_name":"enum_init>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":34,"debug_name":"core::option::Option::>"}},{"Value":[1,[1]]}]}},{"id":{"id":98,"debug_name":"store_local>>"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":7,"debug_name":"Snapshot>"}}]}},{"id":{"id":84,"debug_name":"enum_match>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":34,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":83,"debug_name":"unbox"},"long_id":{"generic_id":"unbox","generic_args":[{"Type":{"id":5,"debug_name":"batcher::Call"}}]}},{"id":{"id":99,"debug_name":"store_local"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":5,"debug_name":"batcher::Call"}}]}},{"id":{"id":92,"debug_name":"dup"},"long_id":{"generic_id":"dup","generic_args":[{"Type":{"id":5,"debug_name":"batcher::Call"}}]}},{"id":{"id":82,"debug_name":"struct_deconstruct"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":5,"debug_name":"batcher::Call"}}]}},{"id":{"id":93,"debug_name":"rename>"},"long_id":{"generic_id":"rename","generic_args":[{"Type":{"id":4,"debug_name":"core::array::Span::"}}]}},{"id":{"id":81,"debug_name":"function_call::append_span::, core::felt252Drop>>"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":5,"debug_name":"core::array::ArrayImpl::::append_span::, core::felt252Drop>"}}]}},{"id":{"id":100,"debug_name":"store_local>"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":2,"debug_name":"Array"}}]}},{"id":{"id":94,"debug_name":"drop>>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":35,"debug_name":"Uninitialized>"}}]}},{"id":{"id":95,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":36,"debug_name":"Uninitialized"}}]}},{"id":{"id":105,"debug_name":"dup"},"long_id":{"generic_id":"dup","generic_args":[{"Type":{"id":16,"debug_name":"batcher::ProgramOutput"}}]}},{"id":{"id":104,"debug_name":"struct_deconstruct"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":16,"debug_name":"batcher::ProgramOutput"}}]}},{"id":{"id":106,"debug_name":"dup>"},"long_id":{"generic_id":"dup","generic_args":[{"Type":{"id":4,"debug_name":"core::array::Span::"}}]}},{"id":{"id":103,"debug_name":"array_len"},"long_id":{"generic_id":"array_len","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]}},{"id":{"id":102,"debug_name":"u32_to_felt252"},"long_id":{"generic_id":"u32_to_felt252","generic_args":[]}},{"id":{"id":101,"debug_name":"function_call>"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":6,"debug_name":"core::array::serialize_array_helper::"}}]}},{"id":{"id":146,"debug_name":"felt252_is_zero"},"long_id":{"generic_id":"felt252_is_zero","generic_args":[]}},{"id":{"id":145,"debug_name":"enum_init>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":28,"debug_name":"core::option::Option::>"}},{"Value":[0,[]]}]}},{"id":{"id":109,"debug_name":"struct_construct, core::option::Option::>>>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":29,"debug_name":"Tuple, core::option::Option::>>"}}]}},{"id":{"id":108,"debug_name":"enum_init, core::option::Option::>)>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":30,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}},{"Value":[0,[]]}]}},{"id":{"id":148,"debug_name":"store_temp, core::option::Option::>)>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":30,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}}]}},{"id":{"id":147,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":39,"debug_name":"NonZero"}}]}},{"id":{"id":116,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":7,"debug_name":"batcher::CallSerde::deserialize"}}]}},{"id":{"id":115,"debug_name":"enum_match, core::option::Option::)>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":42,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}}]}},{"id":{"id":114,"debug_name":"struct_deconstruct, core::option::Option::>>"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":41,"debug_name":"Tuple, core::option::Option::>"}}]}},{"id":{"id":113,"debug_name":"enum_match>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":40,"debug_name":"core::option::Option::"}}]}},{"id":{"id":112,"debug_name":"array_append"},"long_id":{"generic_id":"array_append","generic_args":[{"Type":{"id":5,"debug_name":"batcher::Call"}}]}},{"id":{"id":111,"debug_name":"felt252_sub"},"long_id":{"generic_id":"felt252_sub","generic_args":[]}},{"id":{"id":110,"debug_name":"enum_init>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":28,"debug_name":"core::option::Option::>"}},{"Value":[1,[1]]}]}},{"id":{"id":107,"debug_name":"enum_init, core::option::Option::>)>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":30,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}},{"Value":[1,[1]]}]}},{"id":{"id":138,"debug_name":"drop>>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":3,"debug_name":"Snapshot>"}}]}},{"id":{"id":126,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":8,"debug_name":"core::array::SpanFelt252Serde::deserialize"}}]}},{"id":{"id":125,"debug_name":"enum_match, core::option::Option::>)>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":45,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}}]}},{"id":{"id":124,"debug_name":"struct_deconstruct, core::option::Option::>>>"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":44,"debug_name":"Tuple, core::option::Option::>>"}}]}},{"id":{"id":123,"debug_name":"enum_match>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":43,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":122,"debug_name":"struct_construct"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":5,"debug_name":"batcher::Call"}}]}},{"id":{"id":121,"debug_name":"enum_init, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":40,"debug_name":"core::option::Option::"}},{"Value":[0,[]]}]}},{"id":{"id":118,"debug_name":"struct_construct, core::option::Option::>>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":41,"debug_name":"Tuple, core::option::Option::>"}}]}},{"id":{"id":117,"debug_name":"enum_init, core::option::Option::)>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":42,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}},{"Value":[0,[]]}]}},{"id":{"id":144,"debug_name":"store_temp, core::option::Option::)>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":42,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}}]}},{"id":{"id":119,"debug_name":"enum_init, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":40,"debug_name":"core::option::Option::"}},{"Value":[1,[1]]}]}},{"id":{"id":120,"debug_name":"enum_init, core::option::Option::)>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":42,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}},{"Value":[1,[1]]}]}},{"id":{"id":135,"debug_name":"dup>>"},"long_id":{"generic_id":"dup","generic_args":[{"Type":{"id":3,"debug_name":"Snapshot>"}}]}},{"id":{"id":134,"debug_name":"u32_try_from_felt252"},"long_id":{"generic_id":"u32_try_from_felt252","generic_args":[]}},{"id":{"id":136,"debug_name":"const_as_immediate>"},"long_id":{"generic_id":"const_as_immediate","generic_args":[{"Type":{"id":46,"debug_name":"Const"}}]}},{"id":{"id":137,"debug_name":"dup"},"long_id":{"generic_id":"dup","generic_args":[{"Type":{"id":38,"debug_name":"u32"}}]}},{"id":{"id":142,"debug_name":"store_temp"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":38,"debug_name":"u32"}}]}},{"id":{"id":132,"debug_name":"array_slice"},"long_id":{"generic_id":"array_slice","generic_args":[{"Type":{"id":1,"debug_name":"felt252"}}]}},{"id":{"id":133,"debug_name":"u32_overflowing_sub"},"long_id":{"generic_id":"u32_overflowing_sub","generic_args":[]}},{"id":{"id":131,"debug_name":"enum_init>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":43,"debug_name":"core::option::Option::>"}},{"Value":[0,[]]}]}},{"id":{"id":128,"debug_name":"struct_construct, core::option::Option::>>>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":44,"debug_name":"Tuple, core::option::Option::>>"}}]}},{"id":{"id":127,"debug_name":"enum_init, core::option::Option::>)>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":45,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}},{"Value":[0,[]]}]}},{"id":{"id":143,"debug_name":"store_temp, core::option::Option::>)>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":45,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}}]}},{"id":{"id":139,"debug_name":"const_as_immediate>"},"long_id":{"generic_id":"const_as_immediate","generic_args":[{"Type":{"id":47,"debug_name":"Const"}}]}},{"id":{"id":130,"debug_name":"enum_init, core::option::Option::>)>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":45,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}},{"Value":[1,[1]]}]}},{"id":{"id":140,"debug_name":"drop"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":38,"debug_name":"u32"}}]}},{"id":{"id":141,"debug_name":"const_as_immediate>"},"long_id":{"generic_id":"const_as_immediate","generic_args":[{"Type":{"id":48,"debug_name":"Const"}}]}},{"id":{"id":129,"debug_name":"enum_init>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":43,"debug_name":"core::option::Option::>"}},{"Value":[1,[1]]}]}}],"statements":[{"Invocation":{"libfunc_id":{"id":17,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"finalize_locals"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":20,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":21,"debug_name":"snapshot_take>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null},{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":22,"debug_name":"drop>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"struct_construct>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":37,"debug_name":"store_temp>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"function_call"},"args":[{"id":0,"debug_name":null},{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":38,"debug_name":"store_local"},"args":[{"id":3,"debug_name":null},{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":15,"debug_name":"enum_match, core::option::Option::)>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]},{"target":{"Statement":68},"results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"struct_deconstruct, core::option::Option::>>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null},{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":13,"debug_name":"enum_match>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]},{"target":{"Statement":54},"results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":12,"debug_name":"struct_deconstruct"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null},{"id":4,"debug_name":null},{"id":6,"debug_name":null},{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":39,"debug_name":"store_temp>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"store_temp>"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"store_temp>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":41,"debug_name":"store_local"},"args":[{"id":5,"debug_name":null},{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":41,"debug_name":"store_local"},"args":[{"id":7,"debug_name":null},{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":11,"debug_name":"function_call"},"args":[{"id":20,"debug_name":null},{"id":19,"debug_name":null},{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null},{"id":23,"debug_name":null},{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":26,"debug_name":"drop>"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":27,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":28,"debug_name":"dup"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null},{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":10,"debug_name":"felt252_add"},"args":[{"id":27,"debug_name":null},{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":27,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":29,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":10,"debug_name":"felt252_add"},"args":[{"id":4,"debug_name":null},{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":29,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":30,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":21,"debug_name":"snapshot_take>"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null},{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":22,"debug_name":"drop>"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":21,"debug_name":"snapshot_take>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null},{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":22,"debug_name":"drop>"},"args":[{"id":35,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"struct_construct>"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"struct_construct>"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":8,"debug_name":"struct_construct"},"args":[{"id":6,"debug_name":null},{"id":28,"debug_name":null},{"id":30,"debug_name":null},{"id":31,"debug_name":null},{"id":32,"debug_name":null},{"id":37,"debug_name":null},{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":31,"debug_name":"snapshot_take"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null},{"id":41,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":32,"debug_name":"drop"},"args":[{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":42,"debug_name":"store_temp"},"args":[{"id":41,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"store_temp>"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":7,"debug_name":"function_call"},"args":[{"id":41,"debug_name":null},{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"struct_construct>>"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"enum_init,)>, 0>"},"args":[{"id":43,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":43,"debug_name":"store_temp,)>>"},"args":[{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Return":[{"id":2,"debug_name":null},{"id":44,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":33,"debug_name":"drop"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":34,"debug_name":"drop>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":34,"debug_name":"drop>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":45,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":35,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":46,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"store_temp"},"args":[{"id":46,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":46,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"array_append"},"args":[{"id":45,"debug_name":null},{"id":46,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":47,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":2,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"struct_construct>>"},"args":[{"id":48,"debug_name":null},{"id":47,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":0,"debug_name":"enum_init,)>, 1>"},"args":[{"id":49,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":43,"debug_name":"store_temp,)>>"},"args":[{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Return":[{"id":2,"debug_name":null},{"id":50,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":34,"debug_name":"drop>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":34,"debug_name":"drop>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":0,"debug_name":"enum_init,)>, 1>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":43,"debug_name":"store_temp,)>>"},"args":[{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Return":[{"id":2,"debug_name":null},{"id":51,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":20,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"struct_deconstruct>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":55,"debug_name":"array_snapshot_pop_front"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null}]},{"target":{"Statement":83},"results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":69,"debug_name":"enum_init>, 0>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":76,"debug_name":"store_temp>>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":88},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":52,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":68,"debug_name":"enum_init>, 1>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":76,"debug_name":"store_temp>>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":67,"debug_name":"enum_match>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]},{"target":{"Statement":125},"results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":54,"debug_name":"unbox"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":66,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"struct_construct>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"rename"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":37,"debug_name":"store_temp>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"store_temp>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"store_temp"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":65,"debug_name":"function_call>"},"args":[{"id":0,"debug_name":null},{"id":15,"debug_name":null},{"id":14,"debug_name":null},{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null},{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":64,"debug_name":"enum_match, core::option::Option::>)>>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]},{"target":{"Statement":120},"results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":63,"debug_name":"struct_deconstruct, core::option::Option::>>>"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null},{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"enum_match>>"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null}]},{"target":{"Statement":113},"results":[{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"snapshot_take>"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null},{"id":26,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":73,"debug_name":"drop>"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"struct_construct>"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"enum_init>, 0>"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"struct_deconstruct>"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":29,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"store_temp>>"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":132},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":57,"debug_name":"enum_init>, 1>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"struct_deconstruct>"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"store_temp>>"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":132},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":58,"debug_name":"enum_init, core::option::Option::)>, 1>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":35,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null}]}]}},{"Return":[{"id":17,"debug_name":null},{"id":35,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":33,"debug_name":"drop"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":52,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":57,"debug_name":"enum_init>, 1>"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"store_temp>>"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":56,"debug_name":"enum_match>>"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]},{"target":{"Statement":221},"results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":74,"debug_name":"enable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":55,"debug_name":"array_snapshot_pop_front"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null},{"id":41,"debug_name":null}]},{"target":{"Statement":143},"results":[{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":54,"debug_name":"unbox"},"args":[{"id":41,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"rename"},"args":[{"id":43,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":53,"debug_name":"enum_init, 0>"},"args":[{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":45,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":46,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"store_temp>"},"args":[{"id":45,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":47,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":148},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":52,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":51,"debug_name":"enum_init, 1>"},"args":[{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":46,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"store_temp>"},"args":[{"id":49,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":47,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":50,"debug_name":"enum_match>"},"args":[{"id":47,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]},{"target":{"Statement":211},"results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":55,"debug_name":"array_snapshot_pop_front"},"args":[{"id":46,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":52,"debug_name":null},{"id":53,"debug_name":null}]},{"target":{"Statement":158},"results":[{"id":54,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":54,"debug_name":"unbox"},"args":[{"id":53,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":55,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"rename"},"args":[{"id":55,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":56,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":53,"debug_name":"enum_init, 0>"},"args":[{"id":56,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":57,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":52,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"store_temp>"},"args":[{"id":57,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":59,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":163},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":52,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":60,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":51,"debug_name":"enum_init, 1>"},"args":[{"id":60,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":61,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":54,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"store_temp>"},"args":[{"id":61,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":59,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":50,"debug_name":"enum_match>"},"args":[{"id":59,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":62,"debug_name":null}]},{"target":{"Statement":200},"results":[{"id":63,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":55,"debug_name":"array_snapshot_pop_front"},"args":[{"id":58,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":64,"debug_name":null},{"id":65,"debug_name":null}]},{"target":{"Statement":173},"results":[{"id":66,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":54,"debug_name":"unbox"},"args":[{"id":65,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":67,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"rename"},"args":[{"id":67,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":68,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":53,"debug_name":"enum_init, 0>"},"args":[{"id":68,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":69,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":64,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":70,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"store_temp>"},"args":[{"id":69,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":71,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":178},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":52,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":72,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":51,"debug_name":"enum_init, 1>"},"args":[{"id":72,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":73,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":66,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":70,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"store_temp>"},"args":[{"id":73,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":71,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"struct_construct>"},"args":[{"id":70,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":74,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":50,"debug_name":"enum_match>"},"args":[{"id":71,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":75,"debug_name":null}]},{"target":{"Statement":189},"results":[{"id":76,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":20,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"struct_construct"},"args":[{"id":38,"debug_name":null},{"id":50,"debug_name":null},{"id":62,"debug_name":null},{"id":75,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":77,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":48,"debug_name":"enum_init, 0>"},"args":[{"id":77,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":78,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":46,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":74,"debug_name":null},{"id":78,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":79,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":45,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":79,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":80,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":80,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":80,"debug_name":null}]}]}},{"Return":[{"id":30,"debug_name":null},{"id":80,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":20,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":26,"debug_name":"drop>"},"args":[{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":62,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"enum_init, 1>"},"args":[{"id":76,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":81,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":46,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":74,"debug_name":null},{"id":81,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":82,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":45,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":82,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":83,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":83,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":83,"debug_name":null}]}]}},{"Return":[{"id":30,"debug_name":null},{"id":83,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":20,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":26,"debug_name":"drop>"},"args":[{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"struct_construct>"},"args":[{"id":58,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":84,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"enum_init, 1>"},"args":[{"id":63,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":85,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":46,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":84,"debug_name":null},{"id":85,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":86,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":45,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":86,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":87,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":87,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":87,"debug_name":null}]}]}},{"Return":[{"id":30,"debug_name":null},{"id":87,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":20,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":26,"debug_name":"drop>"},"args":[{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"struct_construct>"},"args":[{"id":46,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":88,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"enum_init, 1>"},"args":[{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":89,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":46,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":88,"debug_name":null},{"id":89,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":90,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":45,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":90,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":91,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":91,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":91,"debug_name":null}]}]}},{"Return":[{"id":30,"debug_name":null},{"id":91,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"struct_construct>"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":92,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"enum_init, 1>"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":93,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":46,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":92,"debug_name":null},{"id":93,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":94,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":45,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":94,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":95,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":95,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":95,"debug_name":null}]}]}},{"Return":[{"id":30,"debug_name":null},{"id":95,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"alloc_local>>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"finalize_locals"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":20,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"struct_deconstruct>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":87,"debug_name":"array_snapshot_pop_front"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null},{"id":11,"debug_name":null}]},{"target":{"Statement":241},"results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":86,"debug_name":"enum_init>, 0>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":96,"debug_name":"store_temp>>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp>>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":246},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":52,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":85,"debug_name":"enum_init>, 1>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":96,"debug_name":"store_temp>>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp>>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":98,"debug_name":"store_local>>"},"args":[{"id":6,"debug_name":null},{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"struct_construct>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":84,"debug_name":"enum_match>>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null}]},{"target":{"Statement":277},"results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":83,"debug_name":"unbox"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":99,"debug_name":"store_local"},"args":[{"id":8,"debug_name":null},{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":92,"debug_name":"dup"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null},{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":82,"debug_name":"struct_deconstruct"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null},{"id":22,"debug_name":null},{"id":23,"debug_name":null},{"id":24,"debug_name":null},{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":93,"debug_name":"rename>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"store_temp>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":37,"debug_name":"store_temp>"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":81,"debug_name":"function_call::append_span::, core::felt252Drop>>"},"args":[{"id":2,"debug_name":null},{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":82,"debug_name":"struct_deconstruct"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":27,"debug_name":null},{"id":28,"debug_name":null},{"id":29,"debug_name":null},{"id":30,"debug_name":null},{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":93,"debug_name":"rename>"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"store_temp>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":37,"debug_name":"store_temp>"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":100,"debug_name":"store_local>"},"args":[{"id":4,"debug_name":null},{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":81,"debug_name":"function_call::append_span::, core::felt252Drop>>"},"args":[{"id":1,"debug_name":null},{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":39,"debug_name":"store_temp>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"store_temp>"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"store_temp>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":11,"debug_name":"function_call"},"args":[{"id":17,"debug_name":null},{"id":33,"debug_name":null},{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null},{"id":35,"debug_name":null},{"id":36,"debug_name":null}]}]}},{"Return":[{"id":34,"debug_name":null},{"id":35,"debug_name":null},{"id":36,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":33,"debug_name":"drop"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"drop>>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":95,"debug_name":"drop>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":39,"debug_name":"store_temp>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"store_temp>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"store_temp>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Return":[{"id":17,"debug_name":null},{"id":2,"debug_name":null},{"id":1,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":20,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":105,"debug_name":"dup"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null},{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"struct_deconstruct"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null},{"id":5,"debug_name":null},{"id":6,"debug_name":null},{"id":7,"debug_name":null},{"id":8,"debug_name":null},{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"rename"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"array_append"},"args":[{"id":1,"debug_name":null},{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":105,"debug_name":"dup"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null},{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"struct_deconstruct"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null},{"id":14,"debug_name":null},{"id":15,"debug_name":null},{"id":16,"debug_name":null},{"id":17,"debug_name":null},{"id":18,"debug_name":null},{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"rename"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"array_append"},"args":[{"id":11,"debug_name":null},{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":105,"debug_name":"dup"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null},{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"struct_deconstruct"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null},{"id":24,"debug_name":null},{"id":25,"debug_name":null},{"id":26,"debug_name":null},{"id":27,"debug_name":null},{"id":28,"debug_name":null},{"id":29,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"rename"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"array_append"},"args":[{"id":21,"debug_name":null},{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":105,"debug_name":"dup"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null},{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"struct_deconstruct"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null},{"id":34,"debug_name":null},{"id":35,"debug_name":null},{"id":36,"debug_name":null},{"id":37,"debug_name":null},{"id":38,"debug_name":null},{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":35,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"rename"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"array_append"},"args":[{"id":31,"debug_name":null},{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":105,"debug_name":"dup"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null},{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"struct_deconstruct"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null},{"id":44,"debug_name":null},{"id":45,"debug_name":null},{"id":46,"debug_name":null},{"id":47,"debug_name":null},{"id":48,"debug_name":null},{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":43,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":45,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":46,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":49,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"rename"},"args":[{"id":47,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"array_append"},"args":[{"id":41,"debug_name":null},{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":105,"debug_name":"dup"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null},{"id":52,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"struct_deconstruct"},"args":[{"id":52,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":53,"debug_name":null},{"id":54,"debug_name":null},{"id":55,"debug_name":null},{"id":56,"debug_name":null},{"id":57,"debug_name":null},{"id":58,"debug_name":null},{"id":59,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":53,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":54,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":55,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":56,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":57,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":59,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":106,"debug_name":"dup>"},"args":[{"id":58,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null},{"id":60,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":93,"debug_name":"rename>"},"args":[{"id":60,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":61,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"struct_deconstruct>"},"args":[{"id":61,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":62,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":103,"debug_name":"array_len"},"args":[{"id":62,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":63,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":102,"debug_name":"u32_to_felt252"},"args":[{"id":63,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":64,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"store_temp"},"args":[{"id":64,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":64,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"array_append"},"args":[{"id":51,"debug_name":null},{"id":64,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":65,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":93,"debug_name":"rename>"},"args":[{"id":58,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":66,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":37,"debug_name":"store_temp>"},"args":[{"id":66,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":66,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"store_temp>"},"args":[{"id":65,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":65,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"function_call>"},"args":[{"id":66,"debug_name":null},{"id":65,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":67,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"struct_deconstruct"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":68,"debug_name":null},{"id":69,"debug_name":null},{"id":70,"debug_name":null},{"id":71,"debug_name":null},{"id":72,"debug_name":null},{"id":73,"debug_name":null},{"id":74,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":68,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":69,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":70,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":71,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":72,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":73,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":106,"debug_name":"dup>"},"args":[{"id":74,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":74,"debug_name":null},{"id":75,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":93,"debug_name":"rename>"},"args":[{"id":75,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":76,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"struct_deconstruct>"},"args":[{"id":76,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":77,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":103,"debug_name":"array_len"},"args":[{"id":77,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":78,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":102,"debug_name":"u32_to_felt252"},"args":[{"id":78,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":79,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"store_temp"},"args":[{"id":79,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":79,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"array_append"},"args":[{"id":67,"debug_name":null},{"id":79,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":80,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":93,"debug_name":"rename>"},"args":[{"id":74,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":81,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":37,"debug_name":"store_temp>"},"args":[{"id":81,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":81,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"store_temp>"},"args":[{"id":80,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":80,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"function_call>"},"args":[{"id":81,"debug_name":null},{"id":80,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":82,"debug_name":null}]}]}},{"Return":[{"id":82,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":20,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":28,"debug_name":"dup"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":146,"debug_name":"felt252_is_zero"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]},{"target":{"Statement":385},"results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":145,"debug_name":"enum_init>, 0>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":109,"debug_name":"struct_construct, core::option::Option::>>>"},"args":[{"id":1,"debug_name":null},{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":108,"debug_name":"enum_init, core::option::Option::>)>, 0>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":148,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":8,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":147,"debug_name":"drop>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":37,"debug_name":"store_temp>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":116,"debug_name":"function_call"},"args":[{"id":0,"debug_name":null},{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null},{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":115,"debug_name":"enum_match, core::option::Option::)>>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]},{"target":{"Statement":413},"results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":114,"debug_name":"struct_deconstruct, core::option::Option::>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null},{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":113,"debug_name":"enum_match>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]},{"target":{"Statement":404},"results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":112,"debug_name":"array_append"},"args":[{"id":2,"debug_name":null},{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":27,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":111,"debug_name":"felt252_sub"},"args":[{"id":3,"debug_name":null},{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":37,"debug_name":"store_temp>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"store_temp>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"store_temp"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":65,"debug_name":"function_call>"},"args":[{"id":9,"debug_name":null},{"id":13,"debug_name":null},{"id":17,"debug_name":null},{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null},{"id":21,"debug_name":null}]}]}},{"Return":[{"id":20,"debug_name":null},{"id":21,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":73,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":110,"debug_name":"enum_init>, 1>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":109,"debug_name":"struct_construct, core::option::Option::>>>"},"args":[{"id":13,"debug_name":null},{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":108,"debug_name":"enum_init, core::option::Option::>)>, 0>"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":148,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":24,"debug_name":null}]}]}},{"Return":[{"id":9,"debug_name":null},{"id":24,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":73,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":107,"debug_name":"enum_init, core::option::Option::>)>, 1>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":148,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Return":[{"id":9,"debug_name":null},{"id":25,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":20,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"struct_deconstruct>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":55,"debug_name":"array_snapshot_pop_front"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null}]},{"target":{"Statement":428},"results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":69,"debug_name":"enum_init>, 0>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":76,"debug_name":"store_temp>>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":433},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":52,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":68,"debug_name":"enum_init>, 1>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":76,"debug_name":"store_temp>>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":67,"debug_name":"enum_match>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]},{"target":{"Statement":444},"results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":54,"debug_name":"unbox"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"rename"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"store_temp"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"array_append"},"args":[{"id":0,"debug_name":null},{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"struct_construct>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"store_temp>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":37,"debug_name":"store_temp>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":81,"debug_name":"function_call::append_span::, core::felt252Drop>>"},"args":[{"id":15,"debug_name":null},{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Return":[{"id":17,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":33,"debug_name":"drop"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":138,"debug_name":"drop>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"store_temp>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":20,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"struct_deconstruct>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":55,"debug_name":"array_snapshot_pop_front"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null}]},{"target":{"Statement":457},"results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":69,"debug_name":"enum_init>, 0>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":76,"debug_name":"store_temp>>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":462},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":52,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":68,"debug_name":"enum_init>, 1>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":76,"debug_name":"store_temp>>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":67,"debug_name":"enum_match>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]},{"target":{"Statement":473},"results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":54,"debug_name":"unbox"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"rename"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"store_temp"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"array_append"},"args":[{"id":1,"debug_name":null},{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"struct_construct>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":37,"debug_name":"store_temp>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"store_temp>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"function_call>"},"args":[{"id":16,"debug_name":null},{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Return":[{"id":17,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":33,"debug_name":"drop"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":138,"debug_name":"drop>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"store_temp>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Return":[{"id":1,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"struct_deconstruct>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":55,"debug_name":"array_snapshot_pop_front"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null}]},{"target":{"Statement":487},"results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":54,"debug_name":"unbox"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"rename"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":53,"debug_name":"enum_init, 0>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"store_temp>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":492},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":52,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":51,"debug_name":"enum_init, 1>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"store_temp>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":50,"debug_name":"enum_match>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]},{"target":{"Statement":603},"results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":55,"debug_name":"array_snapshot_pop_front"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null},{"id":16,"debug_name":null}]},{"target":{"Statement":502},"results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":54,"debug_name":"unbox"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"rename"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":53,"debug_name":"enum_init, 0>"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"store_temp>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":507},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":52,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":51,"debug_name":"enum_init, 1>"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"store_temp>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"struct_construct>"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":50,"debug_name":"enum_match>"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null}]},{"target":{"Statement":595},"results":[{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":37,"debug_name":"store_temp>"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":126,"debug_name":"function_call"},"args":[{"id":0,"debug_name":null},{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null},{"id":29,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":125,"debug_name":"enum_match, core::option::Option::>)>>"},"args":[{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null}]},{"target":{"Statement":588},"results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":124,"debug_name":"struct_deconstruct, core::option::Option::>>>"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null},{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"enum_match>>"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null}]},{"target":{"Statement":579},"results":[{"id":35,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":37,"debug_name":"store_temp>"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":126,"debug_name":"function_call"},"args":[{"id":28,"debug_name":null},{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null},{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":125,"debug_name":"enum_match, core::option::Option::>)>>"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]},{"target":{"Statement":571},"results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":124,"debug_name":"struct_deconstruct, core::option::Option::>>>"},"args":[{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null},{"id":41,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"enum_match>>"},"args":[{"id":41,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":42,"debug_name":null}]},{"target":{"Statement":561},"results":[{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":37,"debug_name":"store_temp>"},"args":[{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":126,"debug_name":"function_call"},"args":[{"id":36,"debug_name":null},{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null},{"id":45,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":125,"debug_name":"enum_match, core::option::Option::>)>>"},"args":[{"id":45,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":46,"debug_name":null}]},{"target":{"Statement":552},"results":[{"id":47,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":124,"debug_name":"struct_deconstruct, core::option::Option::>>>"},"args":[{"id":46,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null},{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"enum_match>>"},"args":[{"id":49,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]},{"target":{"Statement":541},"results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":122,"debug_name":"struct_construct"},"args":[{"id":13,"debug_name":null},{"id":26,"debug_name":null},{"id":34,"debug_name":null},{"id":42,"debug_name":null},{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":52,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":121,"debug_name":"enum_init, 0>"},"args":[{"id":52,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":53,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":118,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":48,"debug_name":null},{"id":53,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":54,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":54,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":55,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":144,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":55,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":55,"debug_name":null}]}]}},{"Return":[{"id":44,"debug_name":null},{"id":55,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":119,"debug_name":"enum_init, 1>"},"args":[{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":56,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":118,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":48,"debug_name":null},{"id":56,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":57,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":57,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":144,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":58,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null}]}]}},{"Return":[{"id":44,"debug_name":null},{"id":58,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":120,"debug_name":"enum_init, core::option::Option::)>, 1>"},"args":[{"id":47,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":59,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":144,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":59,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":59,"debug_name":null}]}]}},{"Return":[{"id":44,"debug_name":null},{"id":59,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":119,"debug_name":"enum_init, 1>"},"args":[{"id":43,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":60,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":118,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":40,"debug_name":null},{"id":60,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":61,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":61,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":62,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":144,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":62,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":62,"debug_name":null}]}]}},{"Return":[{"id":36,"debug_name":null},{"id":62,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":120,"debug_name":"enum_init, core::option::Option::)>, 1>"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":63,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":144,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":63,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":63,"debug_name":null}]}]}},{"Return":[{"id":36,"debug_name":null},{"id":63,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":119,"debug_name":"enum_init, 1>"},"args":[{"id":35,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":64,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":118,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":32,"debug_name":null},{"id":64,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":65,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":65,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":66,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":144,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":66,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":66,"debug_name":null}]}]}},{"Return":[{"id":28,"debug_name":null},{"id":66,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":120,"debug_name":"enum_init, core::option::Option::)>, 1>"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":67,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":144,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":67,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":67,"debug_name":null}]}]}},{"Return":[{"id":28,"debug_name":null},{"id":67,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"drop"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":119,"debug_name":"enum_init, 1>"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":68,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":118,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":25,"debug_name":null},{"id":68,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":69,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":69,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":70,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":144,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":70,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":70,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":70,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"struct_construct>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":71,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":119,"debug_name":"enum_init, 1>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":72,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":118,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":71,"debug_name":null},{"id":72,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":73,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":73,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":74,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":144,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":74,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":74,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":74,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"struct_deconstruct>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":55,"debug_name":"array_snapshot_pop_front"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null}]},{"target":{"Statement":618},"results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":69,"debug_name":"enum_init>, 0>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":76,"debug_name":"store_temp>>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":623},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":52,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":68,"debug_name":"enum_init>, 1>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":76,"debug_name":"store_temp>>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":135,"debug_name":"dup>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null},{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"struct_construct>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":67,"debug_name":"enum_match>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]},{"target":{"Statement":705},"results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":54,"debug_name":"unbox"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"rename"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"store_temp"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":134,"debug_name":"u32_try_from_felt252"},"args":[{"id":0,"debug_name":null},{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null},{"id":18,"debug_name":null}]},{"target":{"Statement":696},"results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"drop>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":136,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":135,"debug_name":"dup>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null},{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":137,"debug_name":"dup"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null},{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":142,"debug_name":"store_temp"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":132,"debug_name":"array_slice"},"args":[{"id":17,"debug_name":null},{"id":21,"debug_name":null},{"id":20,"debug_name":null},{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null},{"id":24,"debug_name":null}]},{"target":{"Statement":683},"results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":135,"debug_name":"dup>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null},{"id":26,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":103,"debug_name":"array_len"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":137,"debug_name":"dup"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null},{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":142,"debug_name":"store_temp"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"store_temp>>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":133,"debug_name":"u32_overflowing_sub"},"args":[{"id":23,"debug_name":null},{"id":27,"debug_name":null},{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":29,"debug_name":null},{"id":30,"debug_name":null}]},{"target":{"Statement":668},"results":[{"id":31,"debug_name":null},{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":132,"debug_name":"array_slice"},"args":[{"id":29,"debug_name":null},{"id":7,"debug_name":null},{"id":18,"debug_name":null},{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null},{"id":34,"debug_name":null}]},{"target":{"Statement":656},"results":[{"id":35,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"struct_construct>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":131,"debug_name":"enum_init>, 0>"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"struct_construct>"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":128,"debug_name":"struct_construct, core::option::Option::>>>"},"args":[{"id":38,"debug_name":null},{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":127,"debug_name":"enum_init, core::option::Option::>)>, 0>"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":143,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Return":[{"id":33,"debug_name":null},{"id":40,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":138,"debug_name":"drop>>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":139,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"store_temp"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"array_append"},"args":[{"id":41,"debug_name":null},{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":2,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"struct_construct>>"},"args":[{"id":44,"debug_name":null},{"id":43,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":45,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":130,"debug_name":"enum_init, core::option::Option::>)>, 1>"},"args":[{"id":45,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":46,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":35,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":143,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":46,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":46,"debug_name":null}]}]}},{"Return":[{"id":35,"debug_name":null},{"id":46,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":140,"debug_name":"drop"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":138,"debug_name":"drop>>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":138,"debug_name":"drop>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":140,"debug_name":"drop"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":47,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":141,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"store_temp"},"args":[{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"array_append"},"args":[{"id":47,"debug_name":null},{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":2,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"struct_construct>>"},"args":[{"id":50,"debug_name":null},{"id":49,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":130,"debug_name":"enum_init, core::option::Option::>)>, 1>"},"args":[{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":52,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":143,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":52,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":52,"debug_name":null}]}]}},{"Return":[{"id":31,"debug_name":null},{"id":52,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":140,"debug_name":"drop"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":138,"debug_name":"drop>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":53,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":139,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":54,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"store_temp"},"args":[{"id":54,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":54,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"array_append"},"args":[{"id":53,"debug_name":null},{"id":54,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":55,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":2,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":56,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"struct_construct>>"},"args":[{"id":56,"debug_name":null},{"id":55,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":57,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":130,"debug_name":"enum_init, core::option::Option::>)>, 1>"},"args":[{"id":57,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":143,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":58,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null}]}]}},{"Return":[{"id":25,"debug_name":null},{"id":58,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":138,"debug_name":"drop>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":52,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":59,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":129,"debug_name":"enum_init>, 1>"},"args":[{"id":59,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":60,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":128,"debug_name":"struct_construct, core::option::Option::>>>"},"args":[{"id":12,"debug_name":null},{"id":60,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":61,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":127,"debug_name":"enum_init, core::option::Option::>)>, 0>"},"args":[{"id":61,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":62,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":143,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":62,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":62,"debug_name":null}]}]}},{"Return":[{"id":19,"debug_name":null},{"id":62,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":33,"debug_name":"drop"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":138,"debug_name":"drop>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":52,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":63,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":129,"debug_name":"enum_init>, 1>"},"args":[{"id":63,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":64,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":128,"debug_name":"struct_construct, core::option::Option::>>>"},"args":[{"id":12,"debug_name":null},{"id":64,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":65,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":127,"debug_name":"enum_init, core::option::Option::>)>, 0>"},"args":[{"id":65,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":66,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":143,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":66,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":66,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":66,"debug_name":null}]}],"funcs":[{"id":{"id":3,"debug_name":"batcher::main"},"signature":{"param_types":[{"id":0,"debug_name":"RangeCheck"},{"id":2,"debug_name":"Array"}],"ret_types":[{"id":0,"debug_name":"RangeCheck"},{"id":18,"debug_name":"core::panics::PanicResult::<(core::array::Array::,)>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":0,"debug_name":"RangeCheck"}},{"id":{"id":1,"debug_name":null},"ty":{"id":2,"debug_name":"Array"}}],"entry_point":0},{"id":{"id":2,"debug_name":"batcher::ProgramInputSerde::deserialize"},"signature":{"param_types":[{"id":0,"debug_name":"RangeCheck"},{"id":4,"debug_name":"core::array::Span::"}],"ret_types":[{"id":0,"debug_name":"RangeCheck"},{"id":15,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":0,"debug_name":"RangeCheck"}},{"id":{"id":1,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}}],"entry_point":75},{"id":{"id":1,"debug_name":"batcher::main[expr31]"},"signature":{"param_types":[{"id":8,"debug_name":"core::array::Span::"},{"id":2,"debug_name":"Array"},{"id":2,"debug_name":"Array"}],"ret_types":[{"id":8,"debug_name":"core::array::Span::"},{"id":2,"debug_name":"Array"},{"id":2,"debug_name":"Array"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":8,"debug_name":"core::array::Span::"}},{"id":{"id":1,"debug_name":null},"ty":{"id":2,"debug_name":"Array"}},{"id":{"id":2,"debug_name":null},"ty":{"id":2,"debug_name":"Array"}}],"entry_point":229},{"id":{"id":0,"debug_name":"batcher::ProgramOutputSerde::serialize"},"signature":{"param_types":[{"id":16,"debug_name":"batcher::ProgramOutput"},{"id":2,"debug_name":"Array"}],"ret_types":[{"id":2,"debug_name":"Array"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":16,"debug_name":"batcher::ProgramOutput"}},{"id":{"id":1,"debug_name":null},"ty":{"id":2,"debug_name":"Array"}}],"entry_point":285},{"id":{"id":4,"debug_name":"core::array::deserialize_array_helper::"},"signature":{"param_types":[{"id":0,"debug_name":"RangeCheck"},{"id":4,"debug_name":"core::array::Span::"},{"id":6,"debug_name":"Array"},{"id":1,"debug_name":"felt252"}],"ret_types":[{"id":0,"debug_name":"RangeCheck"},{"id":30,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":0,"debug_name":"RangeCheck"}},{"id":{"id":1,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}},{"id":{"id":2,"debug_name":null},"ty":{"id":6,"debug_name":"Array"}},{"id":{"id":3,"debug_name":null},"ty":{"id":1,"debug_name":"felt252"}}],"entry_point":374},{"id":{"id":5,"debug_name":"core::array::ArrayImpl::::append_span::, core::felt252Drop>"},"signature":{"param_types":[{"id":2,"debug_name":"Array"},{"id":4,"debug_name":"core::array::Span::"}],"ret_types":[{"id":2,"debug_name":"Array"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":2,"debug_name":"Array"}},{"id":{"id":1,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}}],"entry_point":420},{"id":{"id":6,"debug_name":"core::array::serialize_array_helper::"},"signature":{"param_types":[{"id":4,"debug_name":"core::array::Span::"},{"id":2,"debug_name":"Array"}],"ret_types":[{"id":2,"debug_name":"Array"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}},{"id":{"id":1,"debug_name":null},"ty":{"id":2,"debug_name":"Array"}}],"entry_point":449},{"id":{"id":7,"debug_name":"batcher::CallSerde::deserialize"},"signature":{"param_types":[{"id":0,"debug_name":"RangeCheck"},{"id":4,"debug_name":"core::array::Span::"}],"ret_types":[{"id":0,"debug_name":"RangeCheck"},{"id":42,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":0,"debug_name":"RangeCheck"}},{"id":{"id":1,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}}],"entry_point":478},{"id":{"id":8,"debug_name":"core::array::SpanFelt252Serde::deserialize"},"signature":{"param_types":[{"id":0,"debug_name":"RangeCheck"},{"id":4,"debug_name":"core::array::Span::"}],"ret_types":[{"id":0,"debug_name":"RangeCheck"},{"id":45,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":0,"debug_name":"RangeCheck"}},{"id":{"id":1,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}}],"entry_point":611}],"debug_info":{"type_names":[],"libfunc_names":[],"user_func_names":[]}} \ No newline at end of file diff --git a/bin/saya/programs/cairo1checker.json b/bin/saya/programs/cairo1checker.json deleted file mode 100644 index d13e5d48ef..0000000000 --- a/bin/saya/programs/cairo1checker.json +++ /dev/null @@ -1 +0,0 @@ -{"version":1,"type_declarations":[{"id":{"id":0,"debug_name":"felt252"},"long_id":{"generic_id":"felt252","generic_args":[]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":2,"debug_name":"Array"},"long_id":{"generic_id":"Array","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":3,"debug_name":"Snapshot>"},"long_id":{"generic_id":"Snapshot","generic_args":[{"Type":{"id":2,"debug_name":"Array"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":4,"debug_name":"core::array::Span::"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1121073044,3807148430,3090028591,44166606,1083659202,1290006902,3329965140,61429220],"debug_name":"core::array::Span::"}},{"Type":{"id":3,"debug_name":"Snapshot>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":14,"debug_name":"dojo_os::StorageUpdates"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[3670310231,2572044744,1861886744,1239152095,2990094688,1327321899,2304456714,51460106],"debug_name":"dojo_os::StorageUpdates"}},{"Type":{"id":0,"debug_name":"felt252"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":5,"debug_name":"Unit"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":true}},{"id":{"id":75,"debug_name":"core::option::Option::"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[546506583,2593065927,3800301033,4033646542,1962154607,211341177,585503142,16766430],"debug_name":"core::option::Option::"}},{"Type":{"id":14,"debug_name":"dojo_os::StorageUpdates"}},{"Type":{"id":5,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":1,"debug_name":"dojo_os::KeyValue"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[4014754406,3291444950,1154310047,1979421235,3097725027,1815679939,4178168821,31224505],"debug_name":"dojo_os::KeyValue"}},{"Type":{"id":0,"debug_name":"felt252"}},{"Type":{"id":0,"debug_name":"felt252"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":74,"debug_name":"core::option::Option::"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[136856044,2319047780,4077159835,1802124859,423089136,1696125566,3382096737,31900958],"debug_name":"core::option::Option::"}},{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}},{"Type":{"id":5,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":73,"debug_name":"Box"},"long_id":{"generic_id":"Box","generic_args":[{"Type":{"id":14,"debug_name":"dojo_os::StorageUpdates"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":10,"debug_name":"Array"},"long_id":{"generic_id":"Array","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":11,"debug_name":"Snapshot>"},"long_id":{"generic_id":"Snapshot","generic_args":[{"Type":{"id":10,"debug_name":"Array"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":18,"debug_name":"core::array::Span::"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[3300335458,1649952866,1586379173,11667290,4275777335,629657412,779741659,29027239],"debug_name":"core::array::Span::"}},{"Type":{"id":11,"debug_name":"Snapshot>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":67,"debug_name":"core::option::Option::>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[3150627704,1153032397,3087448214,1763882495,3465342813,3042584164,1260878839,30711674],"debug_name":"core::option::Option::>"}},{"Type":{"id":18,"debug_name":"core::array::Span::"}},{"Type":{"id":5,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":68,"debug_name":"Tuple, core::option::Option::>>"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}},{"Type":{"id":18,"debug_name":"core::array::Span::"}},{"Type":{"id":67,"debug_name":"core::option::Option::>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":23,"debug_name":"core::panics::Panic"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[2208749170,1797821712,129214108,2539384922,764199911,1378060934,2080739472,23743629],"debug_name":"core::panics::Panic"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":true}},{"id":{"id":24,"debug_name":"Tuple>"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}},{"Type":{"id":23,"debug_name":"core::panics::Panic"}},{"Type":{"id":10,"debug_name":"Array"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":69,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[2151393902,1110179061,4206242838,2858574093,474661183,2845135022,84170644,20962673],"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}},{"Type":{"id":68,"debug_name":"Tuple, core::option::Option::>>"}},{"Type":{"id":24,"debug_name":"Tuple>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":15,"debug_name":"Array"},"long_id":{"generic_id":"Array","generic_args":[{"Type":{"id":14,"debug_name":"dojo_os::StorageUpdates"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":16,"debug_name":"Snapshot>"},"long_id":{"generic_id":"Snapshot","generic_args":[{"Type":{"id":15,"debug_name":"Array"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":17,"debug_name":"core::array::Span::"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[2505659599,3368250351,851135870,373521560,4233560587,4070463777,1694403402,54550421],"debug_name":"core::array::Span::"}},{"Type":{"id":16,"debug_name":"Snapshot>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":66,"debug_name":"core::option::Option::>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[708918690,3351065953,2331652755,2408774848,526634916,673375692,1456403417,40237776],"debug_name":"core::option::Option::>"}},{"Type":{"id":17,"debug_name":"core::array::Span::"}},{"Type":{"id":5,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":65,"debug_name":"core::option::Option::>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[1127497966,1170532002,2876057341,464010258,1074984677,2879890948,1505383269,59746908],"debug_name":"core::option::Option::>"}},{"Type":{"id":15,"debug_name":"Array"}},{"Type":{"id":5,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":64,"debug_name":"core::option::Option::>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[1159191208,2247309466,1553979720,772843375,673163748,4093801470,3907927554,9666651],"debug_name":"core::option::Option::>"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}},{"Type":{"id":5,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":63,"debug_name":"core::option::Option::>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[2588193705,182070448,1775974173,1330273225,3437236693,1162840534,1068725584,49996573],"debug_name":"core::option::Option::>"}},{"Type":{"id":2,"debug_name":"Array"}},{"Type":{"id":5,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":71,"debug_name":"Uninitialized>"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":17,"debug_name":"core::array::Span::"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":70,"debug_name":"Uninitialized>"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":4,"debug_name":"core::array::Span::"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":72,"debug_name":"Uninitialized"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":62,"debug_name":"Const"},"long_id":{"generic_id":"Const","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}},{"Value":[1,[1718382455,1333159282,1633969184,1966289503]]}]},"declared_type_info":{"storable":false,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":61,"debug_name":"Uninitialized>"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":18,"debug_name":"core::array::Span::"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":60,"debug_name":"Uninitialized>"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":2,"debug_name":"Array"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":27,"debug_name":"u32"},"long_id":{"generic_id":"u32","generic_args":[]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":31,"debug_name":"core::pedersen::HashState"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[2327370914,1444546486,18181554,1494811133,2938099708,1984801804,1433588967,18247651],"debug_name":"core::pedersen::HashState"}},{"Type":{"id":0,"debug_name":"felt252"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":58,"debug_name":"Tuple"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}},{"Type":{"id":27,"debug_name":"u32"}},{"Type":{"id":31,"debug_name":"core::pedersen::HashState"}},{"Type":{"id":5,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":59,"debug_name":"core::panics::PanicResult::<(core::integer::u32, core::pedersen::HashState, ())>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[2024390680,3309564455,2149442024,4184739032,3510437838,316876990,3907853892,50301742],"debug_name":"core::panics::PanicResult::<(core::integer::u32, core::pedersen::HashState, ())>"}},{"Type":{"id":58,"debug_name":"Tuple"}},{"Type":{"id":24,"debug_name":"Tuple>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":57,"debug_name":"Const"},"long_id":{"generic_id":"Const","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}},{"Value":[1,[1]]}]},"declared_type_info":{"storable":false,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":19,"debug_name":"dojo_os::ProgramInput"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[455036844,3182791209,965763683,1057047090,3089180850,834903351,737468663,7639728],"debug_name":"dojo_os::ProgramInput"}},{"Type":{"id":0,"debug_name":"felt252"}},{"Type":{"id":0,"debug_name":"felt252"}},{"Type":{"id":0,"debug_name":"felt252"}},{"Type":{"id":0,"debug_name":"felt252"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}},{"Type":{"id":17,"debug_name":"core::array::Span::"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}},{"Type":{"id":18,"debug_name":"core::array::Span::"}},{"Type":{"id":18,"debug_name":"core::array::Span::"}},{"Type":{"id":4,"debug_name":"core::array::Span::"}},{"Type":{"id":18,"debug_name":"core::array::Span::"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":54,"debug_name":"core::option::Option::"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[505384754,2626779484,3198693345,1815501033,3826757764,2354938729,3177285357,19765637],"debug_name":"core::option::Option::"}},{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}},{"Type":{"id":5,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":55,"debug_name":"Tuple, core::option::Option::>"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}},{"Type":{"id":18,"debug_name":"core::array::Span::"}},{"Type":{"id":54,"debug_name":"core::option::Option::"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":56,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[2603694984,116950188,3731004036,3709933158,3415110813,2987152322,2401218281,24661302],"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}},{"Type":{"id":55,"debug_name":"Tuple, core::option::Option::>"}},{"Type":{"id":24,"debug_name":"Tuple>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":52,"debug_name":"Uninitialized"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":53,"debug_name":"Uninitialized>>"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":3,"debug_name":"Snapshot>"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":51,"debug_name":"NonZero"},"long_id":{"generic_id":"NonZero","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":49,"debug_name":"Box"},"long_id":{"generic_id":"Box","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":50,"debug_name":"core::option::Option::>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[3553464590,1619054049,136189688,1514243507,1327346582,3387736664,1369481581,41428419],"debug_name":"core::option::Option::>"}},{"Type":{"id":49,"debug_name":"Box"}},{"Type":{"id":5,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":48,"debug_name":"Const"},"long_id":{"generic_id":"Const","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}},{"Value":[1,[1818584110,543580521,2003984752,976909678,1953066862,20336]]}]},"declared_type_info":{"storable":false,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":46,"debug_name":"Const"},"long_id":{"generic_id":"Const","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}},{"Value":[1,[1718382455,1333159282,1937072672,1966289503]]}]},"declared_type_info":{"storable":false,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":45,"debug_name":"Const"},"long_id":{"generic_id":"Const","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}},{"Value":[1,[1970168947,1713398383,1970544751,1702371439,4812388]]}]},"declared_type_info":{"storable":false,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":35,"debug_name":"Tuple>"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}},{"Type":{"id":10,"debug_name":"Array"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":36,"debug_name":"core::panics::PanicResult::<(core::array::Array::,)>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[704622403,483171566,1759595788,2942942373,3836427357,911959852,2124004651,45932020],"debug_name":"core::panics::PanicResult::<(core::array::Array::,)>"}},{"Type":{"id":35,"debug_name":"Tuple>"}},{"Type":{"id":24,"debug_name":"Tuple>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":34,"debug_name":"dojo_os::ProgramOutput"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[21629750,551718496,552802623,2282998262,3285218287,3420345169,3288937466,46602648],"debug_name":"dojo_os::ProgramOutput"}},{"Type":{"id":0,"debug_name":"felt252"}},{"Type":{"id":0,"debug_name":"felt252"}},{"Type":{"id":0,"debug_name":"felt252"}},{"Type":{"id":0,"debug_name":"felt252"}},{"Type":{"id":0,"debug_name":"felt252"}},{"Type":{"id":0,"debug_name":"felt252"}},{"Type":{"id":18,"debug_name":"core::array::Span::"}},{"Type":{"id":18,"debug_name":"core::array::Span::"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":32,"debug_name":"Tuple"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}},{"Type":{"id":31,"debug_name":"core::pedersen::HashState"}},{"Type":{"id":27,"debug_name":"u32"}},{"Type":{"id":5,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":33,"debug_name":"core::panics::PanicResult::<(core::pedersen::HashState, core::integer::u32, ())>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[52253450,3728952179,3906130982,1798356319,367878739,4128768367,3696300693,2972714],"debug_name":"core::panics::PanicResult::<(core::pedersen::HashState, core::integer::u32, ())>"}},{"Type":{"id":32,"debug_name":"Tuple"}},{"Type":{"id":24,"debug_name":"Tuple>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":39,"debug_name":"Const"},"long_id":{"generic_id":"Const","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}},{"Value":[0,[]]}]},"declared_type_info":{"storable":false,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":29,"debug_name":"Tuple"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}},{"Type":{"id":0,"debug_name":"felt252"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":30,"debug_name":"core::panics::PanicResult::<(core::felt252,)>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[3781419609,1294779531,2850182087,4225787322,3600103873,2077540448,3810641450,1056827],"debug_name":"core::panics::PanicResult::<(core::felt252,)>"}},{"Type":{"id":29,"debug_name":"Tuple"}},{"Type":{"id":24,"debug_name":"Tuple>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":38,"debug_name":"Const"},"long_id":{"generic_id":"Const","generic_args":[{"Type":{"id":27,"debug_name":"u32"}},{"Value":[1,[1]]}]},"declared_type_info":{"storable":false,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":28,"debug_name":"Box"},"long_id":{"generic_id":"Box","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":37,"debug_name":"Const"},"long_id":{"generic_id":"Const","generic_args":[{"Type":{"id":27,"debug_name":"u32"}},{"Value":[0,[]]}]},"declared_type_info":{"storable":false,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":20,"debug_name":"Array"},"long_id":{"generic_id":"Array","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":26,"debug_name":"Snapshot>"},"long_id":{"generic_id":"Snapshot","generic_args":[{"Type":{"id":20,"debug_name":"Array"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":21,"debug_name":"core::option::Option::>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[1698368909,1535631718,4025485978,3175514840,3211008278,1338493557,2444455970,5300416],"debug_name":"core::option::Option::>"}},{"Type":{"id":20,"debug_name":"Array"}},{"Type":{"id":5,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":22,"debug_name":"Tuple, core::option::Option::>>"},"long_id":{"generic_id":"Struct","generic_args":[{"UserType":{"id":[1380714691,777545161,640624565,3564344830,2506258596,2515665124,462026948,49159723],"debug_name":"Tuple"}},{"Type":{"id":18,"debug_name":"core::array::Span::"}},{"Type":{"id":21,"debug_name":"core::option::Option::>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":25,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[1023834550,1751483181,3652760430,880592701,1049625899,3220204553,4031495037,60795928],"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}},{"Type":{"id":22,"debug_name":"Tuple, core::option::Option::>>"}},{"Type":{"id":24,"debug_name":"Tuple>"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":12,"debug_name":"Box"},"long_id":{"generic_id":"Box","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":13,"debug_name":"core::option::Option::>"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[1148899559,2378266466,1485259957,133414423,2674006245,2028450664,3226109961,43875671],"debug_name":"core::option::Option::>"}},{"Type":{"id":12,"debug_name":"Box"}},{"Type":{"id":5,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}},{"id":{"id":47,"debug_name":"Uninitialized>"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":20,"debug_name":"Array"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":40,"debug_name":"Uninitialized>"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":10,"debug_name":"Array"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":44,"debug_name":"Uninitialized"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":43,"debug_name":"Uninitialized>"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":29,"debug_name":"Tuple"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":9,"debug_name":"Pedersen"},"long_id":{"generic_id":"Pedersen","generic_args":[]},"declared_type_info":{"storable":true,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":42,"debug_name":"Uninitialized"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":9,"debug_name":"Pedersen"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":8,"debug_name":"RangeCheck"},"long_id":{"generic_id":"RangeCheck","generic_args":[]},"declared_type_info":{"storable":true,"droppable":false,"duplicatable":false,"zero_sized":false}},{"id":{"id":41,"debug_name":"Uninitialized"},"long_id":{"generic_id":"Uninitialized","generic_args":[{"Type":{"id":8,"debug_name":"RangeCheck"}}]},"declared_type_info":{"storable":false,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":6,"debug_name":"core::option::Option::"},"long_id":{"generic_id":"Enum","generic_args":[{"UserType":{"id":[272176401,869952872,2746667304,3595774673,2182797035,1218417362,2279605826,18640256],"debug_name":"core::option::Option::"}},{"Type":{"id":0,"debug_name":"felt252"}},{"Type":{"id":5,"debug_name":"Unit"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}}],"libfunc_declarations":[{"id":{"id":1,"debug_name":"disable_ap_tracking"},"long_id":{"generic_id":"disable_ap_tracking","generic_args":[]}},{"id":{"id":2,"debug_name":"snapshot_take"},"long_id":{"generic_id":"snapshot_take","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]}},{"id":{"id":3,"debug_name":"drop"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]}},{"id":{"id":5,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":4,"debug_name":"core::array::Span::"}}]}},{"id":{"id":6,"debug_name":"store_temp"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]}},{"id":{"id":0,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":0,"debug_name":"dojo_os::find[expr20]"}}]}},{"id":{"id":4,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":4,"debug_name":"core::array::Span::"}}]}},{"id":{"id":7,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":2,"debug_name":"dojo_os::find_last[expr20]"}}]}},{"id":{"id":10,"debug_name":"array_new"},"long_id":{"generic_id":"array_new","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]}},{"id":{"id":14,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":2,"debug_name":"Array"}}]}},{"id":{"id":9,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":4,"debug_name":"dojo_os::deduplicate_da[expr36]"}}]}},{"id":{"id":12,"debug_name":"snapshot_take>"},"long_id":{"generic_id":"snapshot_take","generic_args":[{"Type":{"id":2,"debug_name":"Array"}}]}},{"id":{"id":13,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":2,"debug_name":"Array"}}]}},{"id":{"id":8,"debug_name":"struct_construct>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":4,"debug_name":"core::array::Span::"}}]}},{"id":{"id":50,"debug_name":"alloc_local"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":8,"debug_name":"RangeCheck"}}]}},{"id":{"id":51,"debug_name":"alloc_local"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":9,"debug_name":"Pedersen"}}]}},{"id":{"id":52,"debug_name":"alloc_local>"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":29,"debug_name":"Tuple"}}]}},{"id":{"id":53,"debug_name":"alloc_local"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]}},{"id":{"id":54,"debug_name":"alloc_local>"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":10,"debug_name":"Array"}}]}},{"id":{"id":55,"debug_name":"alloc_local>"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":20,"debug_name":"Array"}}]}},{"id":{"id":56,"debug_name":"finalize_locals"},"long_id":{"generic_id":"finalize_locals","generic_args":[]}},{"id":{"id":57,"debug_name":"snapshot_take>"},"long_id":{"generic_id":"snapshot_take","generic_args":[{"Type":{"id":10,"debug_name":"Array"}}]}},{"id":{"id":58,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":10,"debug_name":"Array"}}]}},{"id":{"id":49,"debug_name":"array_snapshot_pop_front"},"long_id":{"generic_id":"array_snapshot_pop_front","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]}},{"id":{"id":59,"debug_name":"branch_align"},"long_id":{"generic_id":"branch_align","generic_args":[]}},{"id":{"id":48,"debug_name":"enum_init>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":13,"debug_name":"core::option::Option::>"}},{"Value":[0,[]]}]}},{"id":{"id":88,"debug_name":"store_temp>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":11,"debug_name":"Snapshot>"}}]}},{"id":{"id":89,"debug_name":"store_temp>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":13,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":60,"debug_name":"jump"},"long_id":{"generic_id":"jump","generic_args":[]}},{"id":{"id":47,"debug_name":"struct_construct"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":5,"debug_name":"Unit"}}]}},{"id":{"id":46,"debug_name":"enum_init>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":13,"debug_name":"core::option::Option::>"}},{"Value":[1,[1]]}]}},{"id":{"id":45,"debug_name":"enum_match>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":13,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":44,"debug_name":"unbox"},"long_id":{"generic_id":"unbox","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]}},{"id":{"id":43,"debug_name":"array_new"},"long_id":{"generic_id":"array_new","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]}},{"id":{"id":24,"debug_name":"struct_construct>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":18,"debug_name":"core::array::Span::"}}]}},{"id":{"id":61,"debug_name":"rename"},"long_id":{"generic_id":"rename","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]}},{"id":{"id":90,"debug_name":"store_temp"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":8,"debug_name":"RangeCheck"}}]}},{"id":{"id":91,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":18,"debug_name":"core::array::Span::"}}]}},{"id":{"id":92,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":20,"debug_name":"Array"}}]}},{"id":{"id":42,"debug_name":"function_call>"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":10,"debug_name":"core::array::deserialize_array_helper::"}}]}},{"id":{"id":41,"debug_name":"enum_match, core::option::Option::>)>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":25,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}}]}},{"id":{"id":40,"debug_name":"struct_deconstruct, core::option::Option::>>>"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":22,"debug_name":"Tuple, core::option::Option::>>"}}]}},{"id":{"id":62,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":18,"debug_name":"core::array::Span::"}}]}},{"id":{"id":39,"debug_name":"enum_match>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":21,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":93,"debug_name":"store_local>"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":20,"debug_name":"Array"}}]}},{"id":{"id":63,"debug_name":"snapshot_take>"},"long_id":{"generic_id":"snapshot_take","generic_args":[{"Type":{"id":20,"debug_name":"Array"}}]}},{"id":{"id":64,"debug_name":"const_as_immediate>"},"long_id":{"generic_id":"const_as_immediate","generic_args":[{"Type":{"id":37,"debug_name":"Const"}}]}},{"id":{"id":94,"debug_name":"store_temp"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":27,"debug_name":"u32"}}]}},{"id":{"id":36,"debug_name":"array_get"},"long_id":{"generic_id":"array_get","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]}},{"id":{"id":95,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":28,"debug_name":"Box"}}]}},{"id":{"id":35,"debug_name":"unbox"},"long_id":{"generic_id":"unbox","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]}},{"id":{"id":38,"debug_name":"array_len"},"long_id":{"generic_id":"array_len","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]}},{"id":{"id":65,"debug_name":"const_as_immediate>"},"long_id":{"generic_id":"const_as_immediate","generic_args":[{"Type":{"id":38,"debug_name":"Const"}}]}},{"id":{"id":96,"debug_name":"store_local"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]}},{"id":{"id":37,"debug_name":"u32_overflowing_sub"},"long_id":{"generic_id":"u32_overflowing_sub","generic_args":[]}},{"id":{"id":19,"debug_name":"array_new"},"long_id":{"generic_id":"array_new","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]}},{"id":{"id":66,"debug_name":"dup"},"long_id":{"generic_id":"dup","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]}},{"id":{"id":67,"debug_name":"rename"},"long_id":{"generic_id":"rename","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]}},{"id":{"id":97,"debug_name":"store_temp"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":9,"debug_name":"Pedersen"}}]}},{"id":{"id":98,"debug_name":"store_temp"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]}},{"id":{"id":34,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":9,"debug_name":"dojo_os::ProgramInputImpl::hash_new_state"}}]}},{"id":{"id":99,"debug_name":"store_local"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":8,"debug_name":"RangeCheck"}}]}},{"id":{"id":100,"debug_name":"store_local"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":9,"debug_name":"Pedersen"}}]}},{"id":{"id":33,"debug_name":"enum_match>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":30,"debug_name":"core::panics::PanicResult::<(core::felt252,)>"}}]}},{"id":{"id":101,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":10,"debug_name":"Array"}}]}},{"id":{"id":102,"debug_name":"store_local>"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":29,"debug_name":"Tuple"}}]}},{"id":{"id":32,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":8,"debug_name":"dojo_os::main[expr78]"}}]}},{"id":{"id":68,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":20,"debug_name":"Array"}}]}},{"id":{"id":103,"debug_name":"store_local>"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":10,"debug_name":"Array"}}]}},{"id":{"id":69,"debug_name":"const_as_immediate>"},"long_id":{"generic_id":"const_as_immediate","generic_args":[{"Type":{"id":39,"debug_name":"Const"}}]}},{"id":{"id":31,"debug_name":"struct_construct"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":31,"debug_name":"core::pedersen::HashState"}}]}},{"id":{"id":104,"debug_name":"store_temp"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":31,"debug_name":"core::pedersen::HashState"}}]}},{"id":{"id":30,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":7,"debug_name":"dojo_os::ProgramInputImpl::hash_world_da[expr33]"}}]}},{"id":{"id":29,"debug_name":"enum_match>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":33,"debug_name":"core::panics::PanicResult::<(core::pedersen::HashState, core::integer::u32, ())>"}}]}},{"id":{"id":28,"debug_name":"struct_deconstruct"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]}},{"id":{"id":70,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":17,"debug_name":"core::array::Span::"}}]}},{"id":{"id":27,"debug_name":"struct_deconstruct>"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":29,"debug_name":"Tuple"}}]}},{"id":{"id":26,"debug_name":"struct_deconstruct>"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":32,"debug_name":"Tuple"}}]}},{"id":{"id":71,"debug_name":"drop"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":27,"debug_name":"u32"}}]}},{"id":{"id":72,"debug_name":"drop"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":5,"debug_name":"Unit"}}]}},{"id":{"id":25,"debug_name":"struct_deconstruct"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":31,"debug_name":"core::pedersen::HashState"}}]}},{"id":{"id":23,"debug_name":"struct_construct"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":34,"debug_name":"dojo_os::ProgramOutput"}}]}},{"id":{"id":73,"debug_name":"snapshot_take"},"long_id":{"generic_id":"snapshot_take","generic_args":[{"Type":{"id":34,"debug_name":"dojo_os::ProgramOutput"}}]}},{"id":{"id":74,"debug_name":"drop"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":34,"debug_name":"dojo_os::ProgramOutput"}}]}},{"id":{"id":105,"debug_name":"store_temp"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":34,"debug_name":"dojo_os::ProgramOutput"}}]}},{"id":{"id":22,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":6,"debug_name":"dojo_os::ProgramOutputSerde::serialize"}}]}},{"id":{"id":21,"debug_name":"struct_construct>>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":35,"debug_name":"Tuple>"}}]}},{"id":{"id":20,"debug_name":"enum_init,)>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":36,"debug_name":"core::panics::PanicResult::<(core::array::Array::,)>"}},{"Value":[0,[]]}]}},{"id":{"id":106,"debug_name":"store_temp,)>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":36,"debug_name":"core::panics::PanicResult::<(core::array::Array::,)>"}}]}},{"id":{"id":75,"debug_name":"drop"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]}},{"id":{"id":76,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":29,"debug_name":"Tuple"}}]}},{"id":{"id":15,"debug_name":"enum_init,)>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":36,"debug_name":"core::panics::PanicResult::<(core::array::Array::,)>"}},{"Value":[1,[1]]}]}},{"id":{"id":77,"debug_name":"drop>>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":40,"debug_name":"Uninitialized>"}}]}},{"id":{"id":78,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":41,"debug_name":"Uninitialized"}}]}},{"id":{"id":79,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":42,"debug_name":"Uninitialized"}}]}},{"id":{"id":80,"debug_name":"drop>>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":43,"debug_name":"Uninitialized>"}}]}},{"id":{"id":81,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":44,"debug_name":"Uninitialized"}}]}},{"id":{"id":82,"debug_name":"const_as_immediate>"},"long_id":{"generic_id":"const_as_immediate","generic_args":[{"Type":{"id":45,"debug_name":"Const"}}]}},{"id":{"id":18,"debug_name":"array_append"},"long_id":{"generic_id":"array_append","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]}},{"id":{"id":17,"debug_name":"struct_construct"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":23,"debug_name":"core::panics::Panic"}}]}},{"id":{"id":16,"debug_name":"struct_construct>>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":24,"debug_name":"Tuple>"}}]}},{"id":{"id":83,"debug_name":"drop>>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":26,"debug_name":"Snapshot>"}}]}},{"id":{"id":84,"debug_name":"const_as_immediate>"},"long_id":{"generic_id":"const_as_immediate","generic_args":[{"Type":{"id":46,"debug_name":"Const"}}]}},{"id":{"id":85,"debug_name":"drop>>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":47,"debug_name":"Uninitialized>"}}]}},{"id":{"id":86,"debug_name":"drop>>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":11,"debug_name":"Snapshot>"}}]}},{"id":{"id":87,"debug_name":"const_as_immediate>"},"long_id":{"generic_id":"const_as_immediate","generic_args":[{"Type":{"id":48,"debug_name":"Const"}}]}},{"id":{"id":117,"debug_name":"struct_deconstruct>"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":4,"debug_name":"core::array::Span::"}}]}},{"id":{"id":116,"debug_name":"array_snapshot_pop_front"},"long_id":{"generic_id":"array_snapshot_pop_front","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]}},{"id":{"id":115,"debug_name":"enum_init>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":50,"debug_name":"core::option::Option::>"}},{"Value":[0,[]]}]}},{"id":{"id":121,"debug_name":"store_temp>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":3,"debug_name":"Snapshot>"}}]}},{"id":{"id":122,"debug_name":"store_temp>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":50,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":114,"debug_name":"enum_init>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":50,"debug_name":"core::option::Option::>"}},{"Value":[1,[1]]}]}},{"id":{"id":113,"debug_name":"enum_match>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":50,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":112,"debug_name":"unbox"},"long_id":{"generic_id":"unbox","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]}},{"id":{"id":118,"debug_name":"rename"},"long_id":{"generic_id":"rename","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]}},{"id":{"id":111,"debug_name":"struct_deconstruct"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]}},{"id":{"id":119,"debug_name":"dup"},"long_id":{"generic_id":"dup","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]}},{"id":{"id":110,"debug_name":"felt252_sub"},"long_id":{"generic_id":"felt252_sub","generic_args":[]}},{"id":{"id":109,"debug_name":"felt252_is_zero"},"long_id":{"generic_id":"felt252_is_zero","generic_args":[]}},{"id":{"id":108,"debug_name":"enum_init, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":6,"debug_name":"core::option::Option::"}},{"Value":[0,[]]}]}},{"id":{"id":123,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":6,"debug_name":"core::option::Option::"}}]}},{"id":{"id":120,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":51,"debug_name":"NonZero"}}]}},{"id":{"id":107,"debug_name":"enum_init, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":6,"debug_name":"core::option::Option::"}},{"Value":[1,[1]]}]}},{"id":{"id":124,"debug_name":"array_snapshot_pop_back"},"long_id":{"generic_id":"array_snapshot_pop_back","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]}},{"id":{"id":128,"debug_name":"alloc_local>>"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":3,"debug_name":"Snapshot>"}}]}},{"id":{"id":129,"debug_name":"alloc_local"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]}},{"id":{"id":133,"debug_name":"store_local>>"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":3,"debug_name":"Snapshot>"}}]}},{"id":{"id":134,"debug_name":"store_local"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]}},{"id":{"id":130,"debug_name":"dup"},"long_id":{"generic_id":"dup","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]}},{"id":{"id":127,"debug_name":"enum_match>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":6,"debug_name":"core::option::Option::"}}]}},{"id":{"id":131,"debug_name":"drop"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]}},{"id":{"id":135,"debug_name":"dup>"},"long_id":{"generic_id":"dup","generic_args":[{"Type":{"id":4,"debug_name":"core::array::Span::"}}]}},{"id":{"id":126,"debug_name":"struct_construct"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]}},{"id":{"id":136,"debug_name":"store_temp"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]}},{"id":{"id":125,"debug_name":"array_append"},"long_id":{"generic_id":"array_append","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]}},{"id":{"id":132,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":52,"debug_name":"Uninitialized"}}]}},{"id":{"id":146,"debug_name":"enum_init>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":21,"debug_name":"core::option::Option::>"}},{"Value":[0,[]]}]}},{"id":{"id":139,"debug_name":"struct_construct, core::option::Option::>>>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":22,"debug_name":"Tuple, core::option::Option::>>"}}]}},{"id":{"id":138,"debug_name":"enum_init, core::option::Option::>)>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":25,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}},{"Value":[0,[]]}]}},{"id":{"id":148,"debug_name":"store_temp, core::option::Option::>)>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":25,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}}]}},{"id":{"id":145,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":12,"debug_name":"dojo_os::ProgramInputSerde::deserialize"}}]}},{"id":{"id":144,"debug_name":"enum_match, core::option::Option::)>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":56,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}}]}},{"id":{"id":143,"debug_name":"struct_deconstruct, core::option::Option::>>"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":55,"debug_name":"Tuple, core::option::Option::>"}}]}},{"id":{"id":142,"debug_name":"enum_match>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":54,"debug_name":"core::option::Option::"}}]}},{"id":{"id":141,"debug_name":"array_append"},"long_id":{"generic_id":"array_append","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]}},{"id":{"id":147,"debug_name":"const_as_immediate>"},"long_id":{"generic_id":"const_as_immediate","generic_args":[{"Type":{"id":57,"debug_name":"Const"}}]}},{"id":{"id":140,"debug_name":"enum_init>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":21,"debug_name":"core::option::Option::>"}},{"Value":[1,[1]]}]}},{"id":{"id":137,"debug_name":"enum_init, core::option::Option::>)>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":25,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}},{"Value":[1,[1]]}]}},{"id":{"id":156,"debug_name":"pedersen"},"long_id":{"generic_id":"pedersen","generic_args":[]}},{"id":{"id":154,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":13,"debug_name":"dojo_os::ProgramInputImpl::hash_dict[expr35]"}}]}},{"id":{"id":153,"debug_name":"enum_match>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":59,"debug_name":"core::panics::PanicResult::<(core::integer::u32, core::pedersen::HashState, ())>"}}]}},{"id":{"id":152,"debug_name":"struct_deconstruct>"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":58,"debug_name":"Tuple"}}]}},{"id":{"id":157,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":17,"debug_name":"core::array::Span::"}}]}},{"id":{"id":155,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":14,"debug_name":"dojo_os::ProgramInputImpl::hash_storage_updates[expr62]"}}]}},{"id":{"id":151,"debug_name":"struct_construct>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":29,"debug_name":"Tuple"}}]}},{"id":{"id":150,"debug_name":"enum_init, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":30,"debug_name":"core::panics::PanicResult::<(core::felt252,)>"}},{"Value":[0,[]]}]}},{"id":{"id":158,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":30,"debug_name":"core::panics::PanicResult::<(core::felt252,)>"}}]}},{"id":{"id":149,"debug_name":"enum_init, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":30,"debug_name":"core::panics::PanicResult::<(core::felt252,)>"}},{"Value":[1,[1]]}]}},{"id":{"id":164,"debug_name":"alloc_local>"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":2,"debug_name":"Array"}}]}},{"id":{"id":165,"debug_name":"alloc_local>"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":18,"debug_name":"core::array::Span::"}}]}},{"id":{"id":163,"debug_name":"array_pop_front"},"long_id":{"generic_id":"array_pop_front","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]}},{"id":{"id":162,"debug_name":"enum_init, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":54,"debug_name":"core::option::Option::"}},{"Value":[0,[]]}]}},{"id":{"id":168,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":54,"debug_name":"core::option::Option::"}}]}},{"id":{"id":161,"debug_name":"enum_init, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":54,"debug_name":"core::option::Option::"}},{"Value":[1,[1]]}]}},{"id":{"id":169,"debug_name":"store_local>"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":18,"debug_name":"core::array::Span::"}}]}},{"id":{"id":160,"debug_name":"function_call::append_span::, dojo_os::KeyValueDrop>>"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":16,"debug_name":"core::array::ArrayImpl::::append_span::, dojo_os::KeyValueDrop>"}}]}},{"id":{"id":170,"debug_name":"store_local>"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":2,"debug_name":"Array"}}]}},{"id":{"id":159,"debug_name":"function_call::append_span::, core::felt252Drop>>"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":15,"debug_name":"core::array::ArrayImpl::::append_span::, core::felt252Drop>"}}]}},{"id":{"id":166,"debug_name":"drop>>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":60,"debug_name":"Uninitialized>"}}]}},{"id":{"id":167,"debug_name":"drop>>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":61,"debug_name":"Uninitialized>"}}]}},{"id":{"id":177,"debug_name":"array_len"},"long_id":{"generic_id":"array_len","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]}},{"id":{"id":178,"debug_name":"dup"},"long_id":{"generic_id":"dup","generic_args":[{"Type":{"id":27,"debug_name":"u32"}}]}},{"id":{"id":176,"debug_name":"u32_eq"},"long_id":{"generic_id":"u32_eq","generic_args":[]}},{"id":{"id":175,"debug_name":"array_get"},"long_id":{"generic_id":"array_get","generic_args":[{"Type":{"id":1,"debug_name":"dojo_os::KeyValue"}}]}},{"id":{"id":181,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":49,"debug_name":"Box"}}]}},{"id":{"id":174,"debug_name":"u32_overflowing_add"},"long_id":{"generic_id":"u32_overflowing_add","generic_args":[]}},{"id":{"id":179,"debug_name":"const_as_immediate>"},"long_id":{"generic_id":"const_as_immediate","generic_args":[{"Type":{"id":62,"debug_name":"Const"}}]}},{"id":{"id":173,"debug_name":"enum_init, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":33,"debug_name":"core::panics::PanicResult::<(core::pedersen::HashState, core::integer::u32, ())>"}},{"Value":[1,[1]]}]}},{"id":{"id":182,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":33,"debug_name":"core::panics::PanicResult::<(core::pedersen::HashState, core::integer::u32, ())>"}}]}},{"id":{"id":180,"debug_name":"drop"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":31,"debug_name":"core::pedersen::HashState"}}]}},{"id":{"id":172,"debug_name":"struct_construct>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":32,"debug_name":"Tuple"}}]}},{"id":{"id":171,"debug_name":"enum_init, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":33,"debug_name":"core::panics::PanicResult::<(core::pedersen::HashState, core::integer::u32, ())>"}},{"Value":[0,[]]}]}},{"id":{"id":188,"debug_name":"dup"},"long_id":{"generic_id":"dup","generic_args":[{"Type":{"id":34,"debug_name":"dojo_os::ProgramOutput"}}]}},{"id":{"id":187,"debug_name":"struct_deconstruct"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":34,"debug_name":"dojo_os::ProgramOutput"}}]}},{"id":{"id":189,"debug_name":"dup>"},"long_id":{"generic_id":"dup","generic_args":[{"Type":{"id":18,"debug_name":"core::array::Span::"}}]}},{"id":{"id":190,"debug_name":"rename>"},"long_id":{"generic_id":"rename","generic_args":[{"Type":{"id":18,"debug_name":"core::array::Span::"}}]}},{"id":{"id":186,"debug_name":"struct_deconstruct>"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":18,"debug_name":"core::array::Span::"}}]}},{"id":{"id":185,"debug_name":"array_len"},"long_id":{"generic_id":"array_len","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]}},{"id":{"id":184,"debug_name":"u32_to_felt252"},"long_id":{"generic_id":"u32_to_felt252","generic_args":[]}},{"id":{"id":183,"debug_name":"function_call>"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":17,"debug_name":"core::array::serialize_array_helper::"}}]}},{"id":{"id":220,"debug_name":"alloc_local"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]}},{"id":{"id":221,"debug_name":"alloc_local>"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":4,"debug_name":"core::array::Span::"}}]}},{"id":{"id":222,"debug_name":"alloc_local>"},"long_id":{"generic_id":"alloc_local","generic_args":[{"Type":{"id":17,"debug_name":"core::array::Span::"}}]}},{"id":{"id":228,"debug_name":"store_local"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]}},{"id":{"id":212,"debug_name":"function_call>"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":19,"debug_name":"core::array::deserialize_array_helper::"}}]}},{"id":{"id":211,"debug_name":"enum_match>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":63,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":210,"debug_name":"enum_init>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":64,"debug_name":"core::option::Option::>"}},{"Value":[0,[]]}]}},{"id":{"id":229,"debug_name":"store_temp>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":64,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":209,"debug_name":"enum_init>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":64,"debug_name":"core::option::Option::>"}},{"Value":[1,[1]]}]}},{"id":{"id":208,"debug_name":"enum_match>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":64,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":230,"debug_name":"store_local>"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":4,"debug_name":"core::array::Span::"}}]}},{"id":{"id":219,"debug_name":"array_new"},"long_id":{"generic_id":"array_new","generic_args":[{"Type":{"id":14,"debug_name":"dojo_os::StorageUpdates"}}]}},{"id":{"id":231,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":15,"debug_name":"Array"}}]}},{"id":{"id":218,"debug_name":"function_call>"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":20,"debug_name":"core::array::deserialize_array_helper::"}}]}},{"id":{"id":217,"debug_name":"enum_match>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":65,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":223,"debug_name":"snapshot_take>"},"long_id":{"generic_id":"snapshot_take","generic_args":[{"Type":{"id":15,"debug_name":"Array"}}]}},{"id":{"id":224,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":15,"debug_name":"Array"}}]}},{"id":{"id":216,"debug_name":"struct_construct>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":17,"debug_name":"core::array::Span::"}}]}},{"id":{"id":215,"debug_name":"enum_init>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":66,"debug_name":"core::option::Option::>"}},{"Value":[0,[]]}]}},{"id":{"id":232,"debug_name":"store_temp>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":66,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":214,"debug_name":"enum_init>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":66,"debug_name":"core::option::Option::>"}},{"Value":[1,[1]]}]}},{"id":{"id":213,"debug_name":"enum_match>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":66,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":233,"debug_name":"store_local>"},"long_id":{"generic_id":"store_local","generic_args":[{"Type":{"id":17,"debug_name":"core::array::Span::"}}]}},{"id":{"id":198,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":18,"debug_name":"core::array::SpanFelt252Serde::deserialize"}}]}},{"id":{"id":197,"debug_name":"enum_match, core::option::Option::>)>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":69,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}}]}},{"id":{"id":196,"debug_name":"struct_deconstruct, core::option::Option::>>>"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":68,"debug_name":"Tuple, core::option::Option::>>"}}]}},{"id":{"id":195,"debug_name":"enum_match>>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":67,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":194,"debug_name":"struct_construct"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":19,"debug_name":"dojo_os::ProgramInput"}}]}},{"id":{"id":192,"debug_name":"struct_construct, core::option::Option::>>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":55,"debug_name":"Tuple, core::option::Option::>"}}]}},{"id":{"id":191,"debug_name":"enum_init, core::option::Option::)>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":56,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}},{"Value":[0,[]]}]}},{"id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":56,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}}]}},{"id":{"id":193,"debug_name":"enum_init, core::option::Option::)>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":56,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}},{"Value":[1,[1]]}]}},{"id":{"id":225,"debug_name":"drop>>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":70,"debug_name":"Uninitialized>"}}]}},{"id":{"id":226,"debug_name":"drop>>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":71,"debug_name":"Uninitialized>"}}]}},{"id":{"id":227,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":72,"debug_name":"Uninitialized"}}]}},{"id":{"id":237,"debug_name":"enum_init, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":59,"debug_name":"core::panics::PanicResult::<(core::integer::u32, core::pedersen::HashState, ())>"}},{"Value":[1,[1]]}]}},{"id":{"id":238,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":59,"debug_name":"core::panics::PanicResult::<(core::integer::u32, core::pedersen::HashState, ())>"}}]}},{"id":{"id":236,"debug_name":"struct_construct>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":58,"debug_name":"Tuple"}}]}},{"id":{"id":235,"debug_name":"enum_init, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":59,"debug_name":"core::panics::PanicResult::<(core::integer::u32, core::pedersen::HashState, ())>"}},{"Value":[0,[]]}]}},{"id":{"id":245,"debug_name":"dup>"},"long_id":{"generic_id":"dup","generic_args":[{"Type":{"id":17,"debug_name":"core::array::Span::"}}]}},{"id":{"id":243,"debug_name":"struct_deconstruct>"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":17,"debug_name":"core::array::Span::"}}]}},{"id":{"id":244,"debug_name":"array_len"},"long_id":{"generic_id":"array_len","generic_args":[{"Type":{"id":14,"debug_name":"dojo_os::StorageUpdates"}}]}},{"id":{"id":242,"debug_name":"array_get"},"long_id":{"generic_id":"array_get","generic_args":[{"Type":{"id":14,"debug_name":"dojo_os::StorageUpdates"}}]}},{"id":{"id":248,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":73,"debug_name":"Box"}}]}},{"id":{"id":241,"debug_name":"unbox"},"long_id":{"generic_id":"unbox","generic_args":[{"Type":{"id":14,"debug_name":"dojo_os::StorageUpdates"}}]}},{"id":{"id":246,"debug_name":"rename"},"long_id":{"generic_id":"rename","generic_args":[{"Type":{"id":14,"debug_name":"dojo_os::StorageUpdates"}}]}},{"id":{"id":240,"debug_name":"struct_deconstruct"},"long_id":{"generic_id":"struct_deconstruct","generic_args":[{"Type":{"id":14,"debug_name":"dojo_os::StorageUpdates"}}]}},{"id":{"id":239,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":21,"debug_name":"dojo_os::ProgramInputImpl::hash_storage_updates[expr57]"}}]}},{"id":{"id":247,"debug_name":"drop>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":58,"debug_name":"Tuple"}}]}},{"id":{"id":249,"debug_name":"drop>>"},"long_id":{"generic_id":"drop","generic_args":[{"Type":{"id":3,"debug_name":"Snapshot>"}}]}},{"id":{"id":254,"debug_name":"enum_init>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":63,"debug_name":"core::option::Option::>"}},{"Value":[0,[]]}]}},{"id":{"id":256,"debug_name":"store_temp>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":63,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":255,"debug_name":"enable_ap_tracking"},"long_id":{"generic_id":"enable_ap_tracking","generic_args":[]}},{"id":{"id":253,"debug_name":"enum_init, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":74,"debug_name":"core::option::Option::"}},{"Value":[0,[]]}]}},{"id":{"id":257,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":74,"debug_name":"core::option::Option::"}}]}},{"id":{"id":252,"debug_name":"enum_init, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":74,"debug_name":"core::option::Option::"}},{"Value":[1,[1]]}]}},{"id":{"id":251,"debug_name":"enum_match>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":74,"debug_name":"core::option::Option::"}}]}},{"id":{"id":250,"debug_name":"enum_init>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":63,"debug_name":"core::option::Option::>"}},{"Value":[1,[1]]}]}},{"id":{"id":262,"debug_name":"enum_init>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":65,"debug_name":"core::option::Option::>"}},{"Value":[0,[]]}]}},{"id":{"id":263,"debug_name":"store_temp>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":65,"debug_name":"core::option::Option::>"}}]}},{"id":{"id":261,"debug_name":"function_call"},"long_id":{"generic_id":"function_call","generic_args":[{"UserFunc":{"id":22,"debug_name":"dojo_os::StorageUpdatesSerde::deserialize"}}]}},{"id":{"id":260,"debug_name":"enum_match>"},"long_id":{"generic_id":"enum_match","generic_args":[{"Type":{"id":75,"debug_name":"core::option::Option::"}}]}},{"id":{"id":259,"debug_name":"array_append"},"long_id":{"generic_id":"array_append","generic_args":[{"Type":{"id":14,"debug_name":"dojo_os::StorageUpdates"}}]}},{"id":{"id":258,"debug_name":"enum_init>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":65,"debug_name":"core::option::Option::>"}},{"Value":[1,[1]]}]}},{"id":{"id":206,"debug_name":"dup>>"},"long_id":{"generic_id":"dup","generic_args":[{"Type":{"id":11,"debug_name":"Snapshot>"}}]}},{"id":{"id":205,"debug_name":"u32_try_from_felt252"},"long_id":{"generic_id":"u32_try_from_felt252","generic_args":[]}},{"id":{"id":204,"debug_name":"array_slice"},"long_id":{"generic_id":"array_slice","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]}},{"id":{"id":203,"debug_name":"enum_init>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":67,"debug_name":"core::option::Option::>"}},{"Value":[0,[]]}]}},{"id":{"id":200,"debug_name":"struct_construct, core::option::Option::>>>"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":68,"debug_name":"Tuple, core::option::Option::>>"}}]}},{"id":{"id":199,"debug_name":"enum_init, core::option::Option::>)>, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":69,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}},{"Value":[0,[]]}]}},{"id":{"id":207,"debug_name":"store_temp, core::option::Option::>)>>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":69,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}}]}},{"id":{"id":202,"debug_name":"enum_init, core::option::Option::>)>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":69,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}},{"Value":[1,[1]]}]}},{"id":{"id":201,"debug_name":"enum_init>, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":67,"debug_name":"core::option::Option::>"}},{"Value":[1,[1]]}]}},{"id":{"id":266,"debug_name":"struct_construct"},"long_id":{"generic_id":"struct_construct","generic_args":[{"Type":{"id":14,"debug_name":"dojo_os::StorageUpdates"}}]}},{"id":{"id":265,"debug_name":"enum_init, 0>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":75,"debug_name":"core::option::Option::"}},{"Value":[0,[]]}]}},{"id":{"id":267,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":75,"debug_name":"core::option::Option::"}}]}},{"id":{"id":264,"debug_name":"enum_init, 1>"},"long_id":{"generic_id":"enum_init","generic_args":[{"Type":{"id":75,"debug_name":"core::option::Option::"}},{"Value":[1,[1]]}]}}],"statements":[{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":2,"debug_name":"snapshot_take"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":0,"debug_name":"function_call"},"args":[{"id":0,"debug_name":null},{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null},{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Return":[{"id":5,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":2,"debug_name":"snapshot_take"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":7,"debug_name":"function_call"},"args":[{"id":0,"debug_name":null},{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null},{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Return":[{"id":5,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":10,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"function_call"},"args":[{"id":0,"debug_name":null},{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":12,"debug_name":"snapshot_take>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null},{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":13,"debug_name":"drop>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":8,"debug_name":"struct_construct>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Return":[{"id":6,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":50,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":51,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":52,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":53,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":54,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":53,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":54,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":54,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":50,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":51,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":55,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":56,"debug_name":"finalize_locals"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":57,"debug_name":"snapshot_take>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null},{"id":26,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":58,"debug_name":"drop>"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":27,"debug_name":null},{"id":28,"debug_name":null}]},{"target":{"Statement":47},"results":[{"id":29,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":48,"debug_name":"enum_init>, 0>"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":52},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":46,"debug_name":"enum_init>, 1>"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":45,"debug_name":"enum_match>>"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null}]},{"target":{"Statement":350},"results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":35,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":43,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":92,"debug_name":"store_temp>"},"args":[{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":42,"debug_name":"function_call>"},"args":[{"id":0,"debug_name":null},{"id":39,"debug_name":null},{"id":38,"debug_name":null},{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null},{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":41,"debug_name":"enum_match, core::option::Option::>)>>"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null}]},{"target":{"Statement":333},"results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":40,"debug_name":"struct_deconstruct, core::option::Option::>>>"},"args":[{"id":43,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":45,"debug_name":null},{"id":46,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":45,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":39,"debug_name":"enum_match>>"},"args":[{"id":46,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null}]},{"target":{"Statement":318},"results":[{"id":47,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":93,"debug_name":"store_local>"},"args":[{"id":24,"debug_name":null},{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":63,"debug_name":"snapshot_take>"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null},{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":64,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"array_get"},"args":[{"id":41,"debug_name":null},{"id":49,"debug_name":null},{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null},{"id":52,"debug_name":null}]},{"target":{"Statement":295},"results":[{"id":53,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":95,"debug_name":"store_temp>"},"args":[{"id":52,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":52,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":35,"debug_name":"unbox"},"args":[{"id":52,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":63,"debug_name":"snapshot_take>"},"args":[{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":54,"debug_name":null},{"id":55,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":63,"debug_name":"snapshot_take>"},"args":[{"id":54,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":56,"debug_name":null},{"id":57,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":38,"debug_name":"array_len"},"args":[{"id":57,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":65,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":59,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":58,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":59,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":59,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":96,"debug_name":"store_local"},"args":[{"id":10,"debug_name":null},{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":37,"debug_name":"u32_overflowing_sub"},"args":[{"id":51,"debug_name":null},{"id":58,"debug_name":null},{"id":59,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":60,"debug_name":null},{"id":61,"debug_name":null}]},{"target":{"Statement":270},"results":[{"id":62,"debug_name":null},{"id":63,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":36,"debug_name":"array_get"},"args":[{"id":60,"debug_name":null},{"id":55,"debug_name":null},{"id":61,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":64,"debug_name":null},{"id":65,"debug_name":null}]},{"target":{"Statement":247},"results":[{"id":66,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":95,"debug_name":"store_temp>"},"args":[{"id":65,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":65,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":35,"debug_name":"unbox"},"args":[{"id":65,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":67,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":58,"debug_name":"drop>"},"args":[{"id":67,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":68,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":58,"debug_name":"drop>"},"args":[{"id":68,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":96,"debug_name":"store_local"},"args":[{"id":14,"debug_name":null},{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":66,"debug_name":"dup"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null},{"id":69,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":67,"debug_name":"rename"},"args":[{"id":69,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":70,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":64,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":64,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":98,"debug_name":"store_temp"},"args":[{"id":70,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":70,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":34,"debug_name":"function_call"},"args":[{"id":64,"debug_name":null},{"id":1,"debug_name":null},{"id":70,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null},{"id":21,"debug_name":null},{"id":71,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":99,"debug_name":"store_local"},"args":[{"id":20,"debug_name":null},{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":100,"debug_name":"store_local"},"args":[{"id":22,"debug_name":null},{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":33,"debug_name":"enum_match>"},"args":[{"id":71,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]},{"target":{"Statement":232},"results":[{"id":72,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":10,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":73,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":74,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":75,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":92,"debug_name":"store_temp>"},"args":[{"id":56,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":56,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"store_temp>"},"args":[{"id":74,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":74,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":73,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":73,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"store_temp>"},"args":[{"id":75,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":75,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":102,"debug_name":"store_local>"},"args":[{"id":8,"debug_name":null},{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":32,"debug_name":"function_call"},"args":[{"id":56,"debug_name":null},{"id":74,"debug_name":null},{"id":73,"debug_name":null},{"id":75,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":76,"debug_name":null},{"id":77,"debug_name":null},{"id":17,"debug_name":null},{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":68,"debug_name":"drop>"},"args":[{"id":76,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":10,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":78,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":12,"debug_name":"snapshot_take>"},"args":[{"id":77,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":79,"debug_name":null},{"id":80,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":13,"debug_name":"drop>"},"args":[{"id":79,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":8,"debug_name":"struct_construct>"},"args":[{"id":80,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":81,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":81,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":81,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":78,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":78,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":103,"debug_name":"store_local>"},"args":[{"id":18,"debug_name":null},{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":103,"debug_name":"store_local>"},"args":[{"id":16,"debug_name":null},{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"function_call"},"args":[{"id":81,"debug_name":null},{"id":78,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":82,"debug_name":null},{"id":83,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":82,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":12,"debug_name":"snapshot_take>"},"args":[{"id":83,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":84,"debug_name":null},{"id":85,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":13,"debug_name":"drop>"},"args":[{"id":84,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":69,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":86,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":64,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":87,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":8,"debug_name":"struct_construct>"},"args":[{"id":85,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":88,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":31,"debug_name":"struct_construct"},"args":[{"id":86,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":89,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":88,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":88,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"store_temp"},"args":[{"id":89,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":89,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":87,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":87,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":103,"debug_name":"store_local>"},"args":[{"id":12,"debug_name":null},{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":30,"debug_name":"function_call"},"args":[{"id":19,"debug_name":null},{"id":21,"debug_name":null},{"id":88,"debug_name":null},{"id":89,"debug_name":null},{"id":87,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":5,"debug_name":null},{"id":90,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":99,"debug_name":"store_local"},"args":[{"id":4,"debug_name":null},{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":100,"debug_name":"store_local"},"args":[{"id":6,"debug_name":null},{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":29,"debug_name":"enum_match>"},"args":[{"id":90,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":91,"debug_name":null}]},{"target":{"Statement":220},"results":[{"id":92,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":66,"debug_name":"dup"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null},{"id":93,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":28,"debug_name":"struct_deconstruct"},"args":[{"id":93,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":94,"debug_name":null},{"id":95,"debug_name":null},{"id":96,"debug_name":null},{"id":97,"debug_name":null},{"id":98,"debug_name":null},{"id":99,"debug_name":null},{"id":100,"debug_name":null},{"id":101,"debug_name":null},{"id":102,"debug_name":null},{"id":103,"debug_name":null},{"id":104,"debug_name":null},{"id":105,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":95,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":96,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":97,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":98,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":99,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":100,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":101,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":102,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":103,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":104,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":105,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":94,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":106,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":66,"debug_name":"dup"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null},{"id":107,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":28,"debug_name":"struct_deconstruct"},"args":[{"id":107,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":108,"debug_name":null},{"id":109,"debug_name":null},{"id":110,"debug_name":null},{"id":111,"debug_name":null},{"id":112,"debug_name":null},{"id":113,"debug_name":null},{"id":114,"debug_name":null},{"id":115,"debug_name":null},{"id":116,"debug_name":null},{"id":117,"debug_name":null},{"id":118,"debug_name":null},{"id":119,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":108,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":110,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":111,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":112,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":113,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":114,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":115,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":116,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":117,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":118,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":119,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":109,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":120,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":28,"debug_name":"struct_deconstruct"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":121,"debug_name":null},{"id":122,"debug_name":null},{"id":123,"debug_name":null},{"id":124,"debug_name":null},{"id":125,"debug_name":null},{"id":126,"debug_name":null},{"id":127,"debug_name":null},{"id":128,"debug_name":null},{"id":129,"debug_name":null},{"id":130,"debug_name":null},{"id":131,"debug_name":null},{"id":132,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":121,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":122,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":124,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":125,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":126,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":127,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":128,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":129,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":130,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":131,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":132,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":123,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":133,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":28,"debug_name":"struct_deconstruct"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":134,"debug_name":null},{"id":135,"debug_name":null},{"id":136,"debug_name":null},{"id":137,"debug_name":null},{"id":138,"debug_name":null},{"id":139,"debug_name":null},{"id":140,"debug_name":null},{"id":141,"debug_name":null},{"id":142,"debug_name":null},{"id":143,"debug_name":null},{"id":144,"debug_name":null},{"id":145,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":134,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":135,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":136,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":138,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":139,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":140,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":141,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":142,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":143,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":144,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":145,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":137,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":146,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":27,"debug_name":"struct_deconstruct>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":147,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":26,"debug_name":"struct_deconstruct>"},"args":[{"id":91,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":148,"debug_name":null},{"id":149,"debug_name":null},{"id":150,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":149,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":150,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"struct_deconstruct"},"args":[{"id":148,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":151,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":57,"debug_name":"snapshot_take>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":152,"debug_name":null},{"id":153,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":58,"debug_name":"drop>"},"args":[{"id":152,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":57,"debug_name":"snapshot_take>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":154,"debug_name":null},{"id":155,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":58,"debug_name":"drop>"},"args":[{"id":154,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":153,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":156,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":155,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":157,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":23,"debug_name":"struct_construct"},"args":[{"id":106,"debug_name":null},{"id":147,"debug_name":null},{"id":120,"debug_name":null},{"id":133,"debug_name":null},{"id":146,"debug_name":null},{"id":151,"debug_name":null},{"id":156,"debug_name":null},{"id":157,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":158,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":73,"debug_name":"snapshot_take"},"args":[{"id":158,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":159,"debug_name":null},{"id":160,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":74,"debug_name":"drop"},"args":[{"id":159,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":105,"debug_name":"store_temp"},"args":[{"id":160,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":160,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"store_temp>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":22,"debug_name":"function_call"},"args":[{"id":160,"debug_name":null},{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":161,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":21,"debug_name":"struct_construct>>"},"args":[{"id":161,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":162,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":20,"debug_name":"enum_init,)>, 0>"},"args":[{"id":162,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":163,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":106,"debug_name":"store_temp,)>>"},"args":[{"id":163,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":163,"debug_name":null}]}]}},{"Return":[{"id":3,"debug_name":null},{"id":5,"debug_name":null},{"id":163,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":58,"debug_name":"drop>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"drop"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":58,"debug_name":"drop>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":58,"debug_name":"drop>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":76,"debug_name":"drop>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"drop"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":15,"debug_name":"enum_init,)>, 1>"},"args":[{"id":92,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":164,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":106,"debug_name":"store_temp,)>>"},"args":[{"id":164,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":164,"debug_name":null}]}]}},{"Return":[{"id":3,"debug_name":null},{"id":5,"debug_name":null},{"id":164,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":68,"debug_name":"drop>"},"args":[{"id":56,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"drop"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"drop"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"drop>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"drop>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":15,"debug_name":"enum_init,)>, 1>"},"args":[{"id":72,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":165,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":106,"debug_name":"store_temp,)>>"},"args":[{"id":165,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":165,"debug_name":null}]}]}},{"Return":[{"id":19,"debug_name":null},{"id":21,"debug_name":null},{"id":165,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":68,"debug_name":"drop>"},"args":[{"id":56,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"drop"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"drop>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"drop>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"drop>"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":81,"debug_name":"drop>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":166,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":82,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":167,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":167,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":167,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":166,"debug_name":null},{"id":167,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":168,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":169,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":169,"debug_name":null},{"id":168,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":170,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":15,"debug_name":"enum_init,)>, 1>"},"args":[{"id":170,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":171,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":66,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":66,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":106,"debug_name":"store_temp,)>>"},"args":[{"id":171,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":171,"debug_name":null}]}]}},{"Return":[{"id":66,"debug_name":null},{"id":1,"debug_name":null},{"id":171,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":63,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":68,"debug_name":"drop>"},"args":[{"id":56,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":75,"debug_name":"drop"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"drop>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"drop>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"drop>"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":81,"debug_name":"drop>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":83,"debug_name":"drop>>"},"args":[{"id":55,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":172,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":84,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":173,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":173,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":173,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":172,"debug_name":null},{"id":173,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":174,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":175,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":175,"debug_name":null},{"id":174,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":176,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":15,"debug_name":"enum_init,)>, 1>"},"args":[{"id":176,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":177,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":62,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":62,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":106,"debug_name":"store_temp,)>>"},"args":[{"id":177,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":177,"debug_name":null}]}]}},{"Return":[{"id":62,"debug_name":null},{"id":1,"debug_name":null},{"id":177,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":81,"debug_name":"drop>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":68,"debug_name":"drop>"},"args":[{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"drop>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"drop>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"drop>"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":81,"debug_name":"drop>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":178,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":82,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":179,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":179,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":179,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":178,"debug_name":null},{"id":179,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":180,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":181,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":181,"debug_name":null},{"id":180,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":182,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":15,"debug_name":"enum_init,)>, 1>"},"args":[{"id":182,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":183,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":53,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":53,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":106,"debug_name":"store_temp,)>>"},"args":[{"id":183,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":183,"debug_name":null}]}]}},{"Return":[{"id":53,"debug_name":null},{"id":1,"debug_name":null},{"id":183,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":47,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":81,"debug_name":"drop>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"drop>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"drop>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"drop>"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":81,"debug_name":"drop>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":85,"debug_name":"drop>>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":41,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":184,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":365},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":81,"debug_name":"drop>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"drop>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"drop>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"drop>"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":81,"debug_name":"drop>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":85,"debug_name":"drop>>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":15,"debug_name":"enum_init,)>, 1>"},"args":[{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":185,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":41,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":106,"debug_name":"store_temp,)>>"},"args":[{"id":185,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":185,"debug_name":null}]}]}},{"Return":[{"id":41,"debug_name":null},{"id":1,"debug_name":null},{"id":185,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":81,"debug_name":"drop>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":85,"debug_name":"drop>>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":80,"debug_name":"drop>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"drop>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":79,"debug_name":"drop>"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":81,"debug_name":"drop>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":86,"debug_name":"drop>>"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":184,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":186,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":87,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":187,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":187,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":187,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":186,"debug_name":null},{"id":187,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":188,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":189,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":189,"debug_name":null},{"id":188,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":190,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":15,"debug_name":"enum_init,)>, 1>"},"args":[{"id":190,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":191,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":184,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":184,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":106,"debug_name":"store_temp,)>>"},"args":[{"id":191,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":191,"debug_name":null}]}]}},{"Return":[{"id":184,"debug_name":null},{"id":1,"debug_name":null},{"id":191,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"struct_deconstruct>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":116,"debug_name":"array_snapshot_pop_front"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null}]},{"target":{"Statement":384},"results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":115,"debug_name":"enum_init>, 0>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":121,"debug_name":"store_temp>>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":122,"debug_name":"store_temp>>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":389},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":114,"debug_name":"enum_init>, 1>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":121,"debug_name":"store_temp>>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":122,"debug_name":"store_temp>>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":8,"debug_name":"struct_construct>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":113,"debug_name":"enum_match>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]},{"target":{"Statement":415},"results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":112,"debug_name":"unbox"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":118,"debug_name":"rename"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":111,"debug_name":"struct_deconstruct"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null},{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":119,"debug_name":"dup"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null},{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":110,"debug_name":"felt252_sub"},"args":[{"id":16,"debug_name":null},{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":109,"debug_name":"felt252_is_zero"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]},{"target":{"Statement":408},"results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":108,"debug_name":"enum_init, 0>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Return":[{"id":11,"debug_name":null},{"id":22,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":120,"debug_name":"drop>"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":0,"debug_name":"function_call"},"args":[{"id":11,"debug_name":null},{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null},{"id":24,"debug_name":null}]}]}},{"Return":[{"id":23,"debug_name":null},{"id":24,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":107,"debug_name":"enum_init, 1>"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null}]}]}},{"Return":[{"id":11,"debug_name":null},{"id":26,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"struct_deconstruct>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":124,"debug_name":"array_snapshot_pop_back"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null}]},{"target":{"Statement":431},"results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":115,"debug_name":"enum_init>, 0>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":121,"debug_name":"store_temp>>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":122,"debug_name":"store_temp>>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":436},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":114,"debug_name":"enum_init>, 1>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":121,"debug_name":"store_temp>>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":122,"debug_name":"store_temp>>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":8,"debug_name":"struct_construct>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":113,"debug_name":"enum_match>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]},{"target":{"Statement":462},"results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":112,"debug_name":"unbox"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":118,"debug_name":"rename"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":111,"debug_name":"struct_deconstruct"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null},{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":119,"debug_name":"dup"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null},{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":110,"debug_name":"felt252_sub"},"args":[{"id":16,"debug_name":null},{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":109,"debug_name":"felt252_is_zero"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]},{"target":{"Statement":455},"results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":108,"debug_name":"enum_init, 0>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Return":[{"id":11,"debug_name":null},{"id":22,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":120,"debug_name":"drop>"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":7,"debug_name":"function_call"},"args":[{"id":11,"debug_name":null},{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null},{"id":24,"debug_name":null}]}]}},{"Return":[{"id":23,"debug_name":null},{"id":24,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":107,"debug_name":"enum_init, 1>"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null}]}]}},{"Return":[{"id":11,"debug_name":null},{"id":26,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":128,"debug_name":"alloc_local>>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":129,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":56,"debug_name":"finalize_locals"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"struct_deconstruct>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":116,"debug_name":"array_snapshot_pop_front"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null},{"id":8,"debug_name":null}]},{"target":{"Statement":481},"results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":115,"debug_name":"enum_init>, 0>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":121,"debug_name":"store_temp>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":122,"debug_name":"store_temp>>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":486},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":114,"debug_name":"enum_init>, 1>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":121,"debug_name":"store_temp>>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":122,"debug_name":"store_temp>>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":133,"debug_name":"store_local>>"},"args":[{"id":3,"debug_name":null},{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":8,"debug_name":"struct_construct>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":113,"debug_name":"enum_match>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]},{"target":{"Statement":546},"results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":112,"debug_name":"unbox"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":12,"debug_name":"snapshot_take>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null},{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":134,"debug_name":"store_local"},"args":[{"id":5,"debug_name":null},{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":130,"debug_name":"dup"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null},{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":111,"debug_name":"struct_deconstruct"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null},{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":2,"debug_name":"snapshot_take"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null},{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":8,"debug_name":"struct_construct>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":0,"debug_name":"function_call"},"args":[{"id":25,"debug_name":null},{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null},{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":127,"debug_name":"enum_match>"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null}]},{"target":{"Statement":512},"results":[{"id":29,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":131,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"function_call"},"args":[{"id":14,"debug_name":null},{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null},{"id":31,"debug_name":null}]}]}},{"Return":[{"id":30,"debug_name":null},{"id":31,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":130,"debug_name":"dup"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null},{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":111,"debug_name":"struct_deconstruct"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null},{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":2,"debug_name":"snapshot_take"},"args":[{"id":35,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null},{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":135,"debug_name":"dup>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null},{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":7,"debug_name":"function_call"},"args":[{"id":38,"debug_name":null},{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null},{"id":40,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":127,"debug_name":"enum_match>"},"args":[{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null}]},{"target":{"Statement":529},"results":[{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":41,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":536},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":130,"debug_name":"dup"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null},{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":111,"debug_name":"struct_deconstruct"},"args":[{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":45,"debug_name":null},{"id":46,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":45,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":46,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":47,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":47,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":111,"debug_name":"struct_deconstruct"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null},{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":49,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":126,"debug_name":"struct_construct"},"args":[{"id":50,"debug_name":null},{"id":43,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":136,"debug_name":"store_temp"},"args":[{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":125,"debug_name":"array_append"},"args":[{"id":17,"debug_name":null},{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":52,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":52,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":52,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":9,"debug_name":"function_call"},"args":[{"id":14,"debug_name":null},{"id":52,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":53,"debug_name":null},{"id":54,"debug_name":null}]}]}},{"Return":[{"id":53,"debug_name":null},{"id":54,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":132,"debug_name":"drop>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Return":[{"id":14,"debug_name":null},{"id":1,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":119,"debug_name":"dup"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":109,"debug_name":"felt252_is_zero"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]},{"target":{"Statement":563},"results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":146,"debug_name":"enum_init>, 0>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":139,"debug_name":"struct_construct, core::option::Option::>>>"},"args":[{"id":1,"debug_name":null},{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":138,"debug_name":"enum_init, core::option::Option::>)>, 0>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":148,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":8,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":120,"debug_name":"drop>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":145,"debug_name":"function_call"},"args":[{"id":0,"debug_name":null},{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null},{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":144,"debug_name":"enum_match, core::option::Option::)>>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]},{"target":{"Statement":591},"results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":143,"debug_name":"struct_deconstruct, core::option::Option::>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null},{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":142,"debug_name":"enum_match>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]},{"target":{"Statement":582},"results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":141,"debug_name":"array_append"},"args":[{"id":2,"debug_name":null},{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":147,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":110,"debug_name":"felt252_sub"},"args":[{"id":3,"debug_name":null},{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":92,"debug_name":"store_temp>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":42,"debug_name":"function_call>"},"args":[{"id":9,"debug_name":null},{"id":13,"debug_name":null},{"id":17,"debug_name":null},{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null},{"id":21,"debug_name":null}]}]}},{"Return":[{"id":20,"debug_name":null},{"id":21,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":68,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":140,"debug_name":"enum_init>, 1>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":139,"debug_name":"struct_construct, core::option::Option::>>>"},"args":[{"id":13,"debug_name":null},{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":138,"debug_name":"enum_init, core::option::Option::>)>, 0>"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":148,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":24,"debug_name":null}]}]}},{"Return":[{"id":9,"debug_name":null},{"id":24,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":68,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":137,"debug_name":"enum_init, core::option::Option::>)>, 1>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":148,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Return":[{"id":9,"debug_name":null},{"id":25,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":28,"debug_name":"struct_deconstruct"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null},{"id":5,"debug_name":null},{"id":6,"debug_name":null},{"id":7,"debug_name":null},{"id":8,"debug_name":null},{"id":9,"debug_name":null},{"id":10,"debug_name":null},{"id":11,"debug_name":null},{"id":12,"debug_name":null},{"id":13,"debug_name":null},{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":156,"debug_name":"pedersen"},"args":[{"id":1,"debug_name":null},{"id":3,"debug_name":null},{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null},{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":156,"debug_name":"pedersen"},"args":[{"id":15,"debug_name":null},{"id":16,"debug_name":null},{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null},{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":156,"debug_name":"pedersen"},"args":[{"id":17,"debug_name":null},{"id":18,"debug_name":null},{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null},{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":64,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":31,"debug_name":"struct_construct"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"store_temp"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":154,"debug_name":"function_call"},"args":[{"id":0,"debug_name":null},{"id":19,"debug_name":null},{"id":7,"debug_name":null},{"id":21,"debug_name":null},{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null},{"id":24,"debug_name":null},{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":153,"debug_name":"enum_match>"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null}]},{"target":{"Statement":686},"results":[{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":152,"debug_name":"struct_deconstruct>"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null},{"id":29,"debug_name":null},{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":64,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":157,"debug_name":"store_temp>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"store_temp"},"args":[{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":29,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":155,"debug_name":"function_call"},"args":[{"id":23,"debug_name":null},{"id":24,"debug_name":null},{"id":8,"debug_name":null},{"id":31,"debug_name":null},{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null},{"id":33,"debug_name":null},{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":153,"debug_name":"enum_match>"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null}]},{"target":{"Statement":678},"results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":152,"debug_name":"struct_deconstruct>"},"args":[{"id":35,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null},{"id":38,"debug_name":null},{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":64,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"store_temp"},"args":[{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":154,"debug_name":"function_call"},"args":[{"id":32,"debug_name":null},{"id":33,"debug_name":null},{"id":9,"debug_name":null},{"id":40,"debug_name":null},{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null},{"id":42,"debug_name":null},{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":153,"debug_name":"enum_match>"},"args":[{"id":43,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]},{"target":{"Statement":671},"results":[{"id":45,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":152,"debug_name":"struct_deconstruct>"},"args":[{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":46,"debug_name":null},{"id":47,"debug_name":null},{"id":48,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":46,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":64,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":41,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":49,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"store_temp"},"args":[{"id":47,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":47,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":154,"debug_name":"function_call"},"args":[{"id":41,"debug_name":null},{"id":42,"debug_name":null},{"id":10,"debug_name":null},{"id":49,"debug_name":null},{"id":47,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null},{"id":51,"debug_name":null},{"id":52,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":153,"debug_name":"enum_match>"},"args":[{"id":52,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":53,"debug_name":null}]},{"target":{"Statement":665},"results":[{"id":54,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":152,"debug_name":"struct_deconstruct>"},"args":[{"id":53,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":55,"debug_name":null},{"id":56,"debug_name":null},{"id":57,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":55,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":57,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"struct_deconstruct"},"args":[{"id":56,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":151,"debug_name":"struct_construct>"},"args":[{"id":58,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":59,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":150,"debug_name":"enum_init, 0>"},"args":[{"id":59,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":60,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":158,"debug_name":"store_temp>"},"args":[{"id":60,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":60,"debug_name":null}]}]}},{"Return":[{"id":50,"debug_name":null},{"id":51,"debug_name":null},{"id":60,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":149,"debug_name":"enum_init, 1>"},"args":[{"id":54,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":61,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":158,"debug_name":"store_temp>"},"args":[{"id":61,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":61,"debug_name":null}]}]}},{"Return":[{"id":50,"debug_name":null},{"id":51,"debug_name":null},{"id":61,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":149,"debug_name":"enum_init, 1>"},"args":[{"id":45,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":62,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":41,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":158,"debug_name":"store_temp>"},"args":[{"id":62,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":62,"debug_name":null}]}]}},{"Return":[{"id":41,"debug_name":null},{"id":42,"debug_name":null},{"id":62,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":149,"debug_name":"enum_init, 1>"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":63,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":158,"debug_name":"store_temp>"},"args":[{"id":63,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":63,"debug_name":null}]}]}},{"Return":[{"id":32,"debug_name":null},{"id":33,"debug_name":null},{"id":63,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":149,"debug_name":"enum_init, 1>"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":64,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":158,"debug_name":"store_temp>"},"args":[{"id":64,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":64,"debug_name":null}]}]}},{"Return":[{"id":23,"debug_name":null},{"id":24,"debug_name":null},{"id":64,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":55,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":164,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":54,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":165,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":165,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":56,"debug_name":"finalize_locals"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":163,"debug_name":"array_pop_front"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null},{"id":15,"debug_name":null}]},{"target":{"Statement":709},"results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":35,"debug_name":"unbox"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":162,"debug_name":"enum_init, 0>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":92,"debug_name":"store_temp>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":168,"debug_name":"store_temp>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":714},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":161,"debug_name":"enum_init, 1>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":92,"debug_name":"store_temp>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":168,"debug_name":"store_temp>"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":93,"debug_name":"store_local>"},"args":[{"id":5,"debug_name":null},{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":142,"debug_name":"enum_match>"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]},{"target":{"Statement":746},"results":[{"id":23,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":28,"debug_name":"struct_deconstruct"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":24,"debug_name":null},{"id":25,"debug_name":null},{"id":26,"debug_name":null},{"id":27,"debug_name":null},{"id":28,"debug_name":null},{"id":29,"debug_name":null},{"id":30,"debug_name":null},{"id":31,"debug_name":null},{"id":12,"debug_name":null},{"id":10,"debug_name":null},{"id":32,"debug_name":null},{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":169,"debug_name":"store_local>"},"args":[{"id":13,"debug_name":null},{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":169,"debug_name":"store_local>"},"args":[{"id":11,"debug_name":null},{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":160,"debug_name":"function_call::append_span::, dojo_os::KeyValueDrop>>"},"args":[{"id":2,"debug_name":null},{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"store_temp>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":170,"debug_name":"store_local>"},"args":[{"id":7,"debug_name":null},{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":159,"debug_name":"function_call::append_span::, core::felt252Drop>>"},"args":[{"id":1,"debug_name":null},{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"store_temp>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":103,"debug_name":"store_local>"},"args":[{"id":9,"debug_name":null},{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":159,"debug_name":"function_call::append_span::, core::felt252Drop>>"},"args":[{"id":3,"debug_name":null},{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":92,"debug_name":"store_temp>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"store_temp>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"store_temp>"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":32,"debug_name":"function_call"},"args":[{"id":4,"debug_name":null},{"id":8,"debug_name":null},{"id":6,"debug_name":null},{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null},{"id":36,"debug_name":null},{"id":37,"debug_name":null},{"id":38,"debug_name":null}]}]}},{"Return":[{"id":35,"debug_name":null},{"id":36,"debug_name":null},{"id":37,"debug_name":null},{"id":38,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":166,"debug_name":"drop>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":77,"debug_name":"drop>>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":92,"debug_name":"store_temp>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"store_temp>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"store_temp>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null}]}]}},{"Return":[{"id":4,"debug_name":null},{"id":2,"debug_name":null},{"id":1,"debug_name":null},{"id":3,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":135,"debug_name":"dup>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"struct_deconstruct>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":177,"debug_name":"array_len"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":178,"debug_name":"dup"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null},{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":176,"debug_name":"u32_eq"},"args":[{"id":8,"debug_name":null},{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]},{"target":{"Statement":851},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":135,"debug_name":"dup>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"struct_deconstruct>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":178,"debug_name":"dup"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null},{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":175,"debug_name":"array_get"},"args":[{"id":0,"debug_name":null},{"id":10,"debug_name":null},{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null},{"id":13,"debug_name":null}]},{"target":{"Statement":836},"results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":181,"debug_name":"store_temp>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":112,"debug_name":"unbox"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":111,"debug_name":"struct_deconstruct"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null},{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"struct_deconstruct"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":156,"debug_name":"pedersen"},"args":[{"id":1,"debug_name":null},{"id":19,"debug_name":null},{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null},{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":135,"debug_name":"dup>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"struct_deconstruct>"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":178,"debug_name":"dup"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null},{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":175,"debug_name":"array_get"},"args":[{"id":12,"debug_name":null},{"id":23,"debug_name":null},{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null},{"id":26,"debug_name":null}]},{"target":{"Statement":821},"results":[{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":181,"debug_name":"store_temp>"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":112,"debug_name":"unbox"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":111,"debug_name":"struct_deconstruct"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":29,"debug_name":null},{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":156,"debug_name":"pedersen"},"args":[{"id":20,"debug_name":null},{"id":21,"debug_name":null},{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null},{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":65,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":174,"debug_name":"u32_overflowing_add"},"args":[{"id":25,"debug_name":null},{"id":4,"debug_name":null},{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null},{"id":36,"debug_name":null}]},{"target":{"Statement":806},"results":[{"id":37,"debug_name":null},{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":31,"debug_name":"struct_construct"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":35,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"store_temp"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":30,"debug_name":"function_call"},"args":[{"id":35,"debug_name":null},{"id":32,"debug_name":null},{"id":2,"debug_name":null},{"id":39,"debug_name":null},{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null},{"id":41,"debug_name":null},{"id":42,"debug_name":null}]}]}},{"Return":[{"id":40,"debug_name":null},{"id":41,"debug_name":null},{"id":42,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":179,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":43,"debug_name":null},{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":45,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":46,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":46,"debug_name":null},{"id":45,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":47,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":173,"debug_name":"enum_init, 1>"},"args":[{"id":47,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":182,"debug_name":"store_temp>"},"args":[{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Return":[{"id":37,"debug_name":null},{"id":32,"debug_name":null},{"id":48,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":82,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":49,"debug_name":null},{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":52,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":52,"debug_name":null},{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":53,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":173,"debug_name":"enum_init, 1>"},"args":[{"id":53,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":54,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":182,"debug_name":"store_temp>"},"args":[{"id":54,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":54,"debug_name":null}]}]}},{"Return":[{"id":27,"debug_name":null},{"id":20,"debug_name":null},{"id":54,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":180,"debug_name":"drop"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":55,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":82,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":56,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":56,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":56,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":55,"debug_name":null},{"id":56,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":57,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":58,"debug_name":null},{"id":57,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":59,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":173,"debug_name":"enum_init, 1>"},"args":[{"id":59,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":60,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":182,"debug_name":"store_temp>"},"args":[{"id":60,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":60,"debug_name":null}]}]}},{"Return":[{"id":14,"debug_name":null},{"id":1,"debug_name":null},{"id":60,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":61,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":172,"debug_name":"struct_construct>"},"args":[{"id":3,"debug_name":null},{"id":4,"debug_name":null},{"id":61,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":62,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":171,"debug_name":"enum_init, 0>"},"args":[{"id":62,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":63,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":182,"debug_name":"store_temp>"},"args":[{"id":63,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":63,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":1,"debug_name":null},{"id":63,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":188,"debug_name":"dup"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null},{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":187,"debug_name":"struct_deconstruct"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null},{"id":5,"debug_name":null},{"id":6,"debug_name":null},{"id":7,"debug_name":null},{"id":8,"debug_name":null},{"id":9,"debug_name":null},{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":1,"debug_name":null},{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":188,"debug_name":"dup"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null},{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":187,"debug_name":"struct_deconstruct"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null},{"id":15,"debug_name":null},{"id":16,"debug_name":null},{"id":17,"debug_name":null},{"id":18,"debug_name":null},{"id":19,"debug_name":null},{"id":20,"debug_name":null},{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":12,"debug_name":null},{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":188,"debug_name":"dup"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null},{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":187,"debug_name":"struct_deconstruct"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null},{"id":26,"debug_name":null},{"id":27,"debug_name":null},{"id":28,"debug_name":null},{"id":29,"debug_name":null},{"id":30,"debug_name":null},{"id":31,"debug_name":null},{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":23,"debug_name":null},{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":188,"debug_name":"dup"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null},{"id":35,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":187,"debug_name":"struct_deconstruct"},"args":[{"id":35,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null},{"id":37,"debug_name":null},{"id":38,"debug_name":null},{"id":39,"debug_name":null},{"id":40,"debug_name":null},{"id":41,"debug_name":null},{"id":42,"debug_name":null},{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":41,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":43,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":34,"debug_name":null},{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":45,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":188,"debug_name":"dup"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null},{"id":46,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":187,"debug_name":"struct_deconstruct"},"args":[{"id":46,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":47,"debug_name":null},{"id":48,"debug_name":null},{"id":49,"debug_name":null},{"id":50,"debug_name":null},{"id":51,"debug_name":null},{"id":52,"debug_name":null},{"id":53,"debug_name":null},{"id":54,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":47,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":49,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":52,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":53,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":54,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":55,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":45,"debug_name":null},{"id":55,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":56,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":188,"debug_name":"dup"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null},{"id":57,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":187,"debug_name":"struct_deconstruct"},"args":[{"id":57,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null},{"id":59,"debug_name":null},{"id":60,"debug_name":null},{"id":61,"debug_name":null},{"id":62,"debug_name":null},{"id":63,"debug_name":null},{"id":64,"debug_name":null},{"id":65,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":58,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":59,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":60,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":61,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":62,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":64,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":65,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":63,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":66,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":56,"debug_name":null},{"id":66,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":67,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":188,"debug_name":"dup"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null},{"id":68,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":187,"debug_name":"struct_deconstruct"},"args":[{"id":68,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":69,"debug_name":null},{"id":70,"debug_name":null},{"id":71,"debug_name":null},{"id":72,"debug_name":null},{"id":73,"debug_name":null},{"id":74,"debug_name":null},{"id":75,"debug_name":null},{"id":76,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":69,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":70,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":71,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":72,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":73,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":74,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":76,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":189,"debug_name":"dup>"},"args":[{"id":75,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":75,"debug_name":null},{"id":77,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":190,"debug_name":"rename>"},"args":[{"id":77,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":78,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":78,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":79,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":185,"debug_name":"array_len"},"args":[{"id":79,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":80,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":184,"debug_name":"u32_to_felt252"},"args":[{"id":80,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":81,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":81,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":81,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":67,"debug_name":null},{"id":81,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":82,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":190,"debug_name":"rename>"},"args":[{"id":75,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":83,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":83,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":83,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"store_temp>"},"args":[{"id":82,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":82,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":183,"debug_name":"function_call>"},"args":[{"id":83,"debug_name":null},{"id":82,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":84,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":187,"debug_name":"struct_deconstruct"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":85,"debug_name":null},{"id":86,"debug_name":null},{"id":87,"debug_name":null},{"id":88,"debug_name":null},{"id":89,"debug_name":null},{"id":90,"debug_name":null},{"id":91,"debug_name":null},{"id":92,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":85,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":86,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":87,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":88,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":89,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":90,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":91,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":189,"debug_name":"dup>"},"args":[{"id":92,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":92,"debug_name":null},{"id":93,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":190,"debug_name":"rename>"},"args":[{"id":93,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":94,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":94,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":95,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":185,"debug_name":"array_len"},"args":[{"id":95,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":96,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":184,"debug_name":"u32_to_felt252"},"args":[{"id":96,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":97,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":97,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":97,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":84,"debug_name":null},{"id":97,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":98,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":190,"debug_name":"rename>"},"args":[{"id":92,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":99,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":99,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":99,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"store_temp>"},"args":[{"id":98,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":98,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":183,"debug_name":"function_call>"},"args":[{"id":99,"debug_name":null},{"id":98,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":100,"debug_name":null}]}]}},{"Return":[{"id":100,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":220,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":220,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":220,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":50,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":165,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":165,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":221,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":221,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":222,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":221,"debug_name":"alloc_local>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":220,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":56,"debug_name":"finalize_locals"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null},{"id":26,"debug_name":null}]},{"target":{"Statement":989},"results":[{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":29,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":108,"debug_name":"enum_init, 0>"},"args":[{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":994},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":107,"debug_name":"enum_init, 1>"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":127,"debug_name":"enum_match>"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]},{"target":{"Statement":1560},"results":[{"id":35,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":228,"debug_name":"store_local"},"args":[{"id":7,"debug_name":null},{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null},{"id":37,"debug_name":null}]},{"target":{"Statement":1005},"results":[{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":108,"debug_name":"enum_init, 0>"},"args":[{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":41,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1010},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":107,"debug_name":"enum_init, 1>"},"args":[{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":45,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":45,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":127,"debug_name":"enum_match>"},"args":[{"id":43,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null}]},{"target":{"Statement":1541},"results":[{"id":46,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":228,"debug_name":"store_local"},"args":[{"id":5,"debug_name":null},{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":47,"debug_name":null},{"id":48,"debug_name":null}]},{"target":{"Statement":1021},"results":[{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":108,"debug_name":"enum_init, 0>"},"args":[{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":52,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":47,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":53,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":52,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":54,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1026},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":55,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":107,"debug_name":"enum_init, 1>"},"args":[{"id":55,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":56,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":49,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":53,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":56,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":54,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":127,"debug_name":"enum_match>"},"args":[{"id":54,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]},{"target":{"Statement":1522},"results":[{"id":57,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":228,"debug_name":"store_local"},"args":[{"id":3,"debug_name":null},{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":53,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null},{"id":59,"debug_name":null}]},{"target":{"Statement":1037},"results":[{"id":60,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":59,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":61,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":61,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":62,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":108,"debug_name":"enum_init, 0>"},"args":[{"id":62,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":63,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":58,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":64,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":63,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":65,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1042},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":66,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":107,"debug_name":"enum_init, 1>"},"args":[{"id":66,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":67,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":60,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":64,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":67,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":65,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":127,"debug_name":"enum_match>"},"args":[{"id":65,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]},{"target":{"Statement":1503},"results":[{"id":68,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":228,"debug_name":"store_local"},"args":[{"id":23,"debug_name":null},{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":64,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":69,"debug_name":null},{"id":70,"debug_name":null}]},{"target":{"Statement":1051},"results":[{"id":71,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":48,"debug_name":"enum_init>, 0>"},"args":[{"id":70,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":72,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":69,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":73,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":72,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":74,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1056},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":75,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":46,"debug_name":"enum_init>, 1>"},"args":[{"id":75,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":76,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":71,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":73,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":76,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":74,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":45,"debug_name":"enum_match>>"},"args":[{"id":74,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":77,"debug_name":null}]},{"target":{"Statement":1082},"results":[{"id":78,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":77,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":79,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":10,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":80,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":73,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":81,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":79,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":82,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":81,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":81,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":80,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":80,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":82,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":82,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":212,"debug_name":"function_call>"},"args":[{"id":81,"debug_name":null},{"id":80,"debug_name":null},{"id":82,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":83,"debug_name":null},{"id":84,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":211,"debug_name":"enum_match>>"},"args":[{"id":84,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":85,"debug_name":null}]},{"target":{"Statement":1076},"results":[{"id":86,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":12,"debug_name":"snapshot_take>"},"args":[{"id":85,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":87,"debug_name":null},{"id":88,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":13,"debug_name":"drop>"},"args":[{"id":87,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":8,"debug_name":"struct_construct>"},"args":[{"id":88,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":89,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":210,"debug_name":"enum_init>, 0>"},"args":[{"id":89,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":90,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":83,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":91,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":91,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":92,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":229,"debug_name":"store_temp>>"},"args":[{"id":90,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":93,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1088},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":209,"debug_name":"enum_init>, 1>"},"args":[{"id":86,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":94,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":83,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":95,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":95,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":92,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":229,"debug_name":"store_temp>>"},"args":[{"id":94,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":93,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1088},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":78,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":96,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":209,"debug_name":"enum_init>, 1>"},"args":[{"id":96,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":97,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":73,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":92,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":229,"debug_name":"store_temp>>"},"args":[{"id":97,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":93,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":208,"debug_name":"enum_match>>"},"args":[{"id":93,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]},{"target":{"Statement":1484},"results":[{"id":98,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":230,"debug_name":"store_local>"},"args":[{"id":21,"debug_name":null},{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":92,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":99,"debug_name":null},{"id":100,"debug_name":null}]},{"target":{"Statement":1097},"results":[{"id":101,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":48,"debug_name":"enum_init>, 0>"},"args":[{"id":100,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":102,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":99,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":103,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":102,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":104,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1102},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":105,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":46,"debug_name":"enum_init>, 1>"},"args":[{"id":105,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":106,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":101,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":103,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":106,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":104,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":45,"debug_name":"enum_match>>"},"args":[{"id":104,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":107,"debug_name":null}]},{"target":{"Statement":1128},"results":[{"id":108,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":107,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":109,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":219,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":110,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":103,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":111,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":109,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":112,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":111,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":111,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":231,"debug_name":"store_temp>"},"args":[{"id":110,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":110,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":112,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":112,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":218,"debug_name":"function_call>"},"args":[{"id":111,"debug_name":null},{"id":110,"debug_name":null},{"id":112,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":113,"debug_name":null},{"id":114,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":217,"debug_name":"enum_match>>"},"args":[{"id":114,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":115,"debug_name":null}]},{"target":{"Statement":1122},"results":[{"id":116,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":223,"debug_name":"snapshot_take>"},"args":[{"id":115,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":117,"debug_name":null},{"id":118,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":224,"debug_name":"drop>"},"args":[{"id":117,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":216,"debug_name":"struct_construct>"},"args":[{"id":118,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":119,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":215,"debug_name":"enum_init>, 0>"},"args":[{"id":119,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":120,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":113,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":121,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":121,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":122,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":232,"debug_name":"store_temp>>"},"args":[{"id":120,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":123,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1134},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":214,"debug_name":"enum_init>, 1>"},"args":[{"id":116,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":124,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":113,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":125,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":125,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":122,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":232,"debug_name":"store_temp>>"},"args":[{"id":124,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":123,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1134},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":108,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":126,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":214,"debug_name":"enum_init>, 1>"},"args":[{"id":126,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":127,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":103,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":122,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":232,"debug_name":"store_temp>>"},"args":[{"id":127,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":123,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":213,"debug_name":"enum_match>>"},"args":[{"id":123,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null}]},{"target":{"Statement":1465},"results":[{"id":128,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":233,"debug_name":"store_local>"},"args":[{"id":19,"debug_name":null},{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":122,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":129,"debug_name":null},{"id":130,"debug_name":null}]},{"target":{"Statement":1143},"results":[{"id":131,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":48,"debug_name":"enum_init>, 0>"},"args":[{"id":130,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":132,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":129,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":133,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":132,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":134,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1148},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":135,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":46,"debug_name":"enum_init>, 1>"},"args":[{"id":135,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":136,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":131,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":133,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":136,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":134,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":45,"debug_name":"enum_match>>"},"args":[{"id":134,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":137,"debug_name":null}]},{"target":{"Statement":1174},"results":[{"id":138,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":137,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":139,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":10,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":140,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":133,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":141,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":139,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":142,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":141,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":141,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":140,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":140,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":142,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":142,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":212,"debug_name":"function_call>"},"args":[{"id":141,"debug_name":null},{"id":140,"debug_name":null},{"id":142,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":143,"debug_name":null},{"id":144,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":211,"debug_name":"enum_match>>"},"args":[{"id":144,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":145,"debug_name":null}]},{"target":{"Statement":1168},"results":[{"id":146,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":12,"debug_name":"snapshot_take>"},"args":[{"id":145,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":147,"debug_name":null},{"id":148,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":13,"debug_name":"drop>"},"args":[{"id":147,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":8,"debug_name":"struct_construct>"},"args":[{"id":148,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":149,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":210,"debug_name":"enum_init>, 0>"},"args":[{"id":149,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":150,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":143,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":151,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":151,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":152,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":229,"debug_name":"store_temp>>"},"args":[{"id":150,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":153,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1180},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":209,"debug_name":"enum_init>, 1>"},"args":[{"id":146,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":154,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":143,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":155,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":155,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":152,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":229,"debug_name":"store_temp>>"},"args":[{"id":154,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":153,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1180},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":138,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":156,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":209,"debug_name":"enum_init>, 1>"},"args":[{"id":156,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":157,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":133,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":152,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":229,"debug_name":"store_temp>>"},"args":[{"id":157,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":153,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":208,"debug_name":"enum_match>>"},"args":[{"id":153,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]},{"target":{"Statement":1446},"results":[{"id":158,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":230,"debug_name":"store_local>"},"args":[{"id":17,"debug_name":null},{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":152,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":159,"debug_name":null},{"id":160,"debug_name":null}]},{"target":{"Statement":1189},"results":[{"id":161,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":48,"debug_name":"enum_init>, 0>"},"args":[{"id":160,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":162,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":159,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":163,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":162,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":164,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1194},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":165,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":46,"debug_name":"enum_init>, 1>"},"args":[{"id":165,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":166,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":161,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":163,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":166,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":164,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":45,"debug_name":"enum_match>>"},"args":[{"id":164,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":167,"debug_name":null}]},{"target":{"Statement":1220},"results":[{"id":168,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":167,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":169,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":10,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":170,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":163,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":171,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":169,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":172,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":171,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":171,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":170,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":170,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":172,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":172,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":212,"debug_name":"function_call>"},"args":[{"id":171,"debug_name":null},{"id":170,"debug_name":null},{"id":172,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":173,"debug_name":null},{"id":174,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":211,"debug_name":"enum_match>>"},"args":[{"id":174,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":175,"debug_name":null}]},{"target":{"Statement":1214},"results":[{"id":176,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":12,"debug_name":"snapshot_take>"},"args":[{"id":175,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":177,"debug_name":null},{"id":178,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":13,"debug_name":"drop>"},"args":[{"id":177,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":8,"debug_name":"struct_construct>"},"args":[{"id":178,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":179,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":210,"debug_name":"enum_init>, 0>"},"args":[{"id":179,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":180,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":173,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":181,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":181,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":182,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":229,"debug_name":"store_temp>>"},"args":[{"id":180,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":183,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1226},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":209,"debug_name":"enum_init>, 1>"},"args":[{"id":176,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":184,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":173,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":185,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":185,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":182,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":229,"debug_name":"store_temp>>"},"args":[{"id":184,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":183,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1226},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":168,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":186,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":209,"debug_name":"enum_init>, 1>"},"args":[{"id":186,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":187,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":163,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":182,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":229,"debug_name":"store_temp>>"},"args":[{"id":187,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":183,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":182,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":188,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":208,"debug_name":"enum_match>>"},"args":[{"id":183,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]},{"target":{"Statement":1428},"results":[{"id":189,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":188,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":188,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":198,"debug_name":"function_call"},"args":[{"id":0,"debug_name":null},{"id":188,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":190,"debug_name":null},{"id":191,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":230,"debug_name":"store_local>"},"args":[{"id":15,"debug_name":null},{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":197,"debug_name":"enum_match, core::option::Option::>)>>"},"args":[{"id":191,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":192,"debug_name":null}]},{"target":{"Statement":1412},"results":[{"id":193,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":196,"debug_name":"struct_deconstruct, core::option::Option::>>>"},"args":[{"id":192,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":194,"debug_name":null},{"id":195,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":195,"debug_name":"enum_match>>"},"args":[{"id":195,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]},{"target":{"Statement":1394},"results":[{"id":196,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":190,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":190,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":194,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":194,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":198,"debug_name":"function_call"},"args":[{"id":190,"debug_name":null},{"id":194,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null},{"id":197,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":169,"debug_name":"store_local>"},"args":[{"id":13,"debug_name":null},{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":99,"debug_name":"store_local"},"args":[{"id":9,"debug_name":null},{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":197,"debug_name":"enum_match, core::option::Option::>)>>"},"args":[{"id":197,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":198,"debug_name":null}]},{"target":{"Statement":1379},"results":[{"id":199,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":196,"debug_name":"struct_deconstruct, core::option::Option::>>>"},"args":[{"id":198,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":200,"debug_name":null},{"id":201,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":195,"debug_name":"enum_match>>"},"args":[{"id":201,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]},{"target":{"Statement":1362},"results":[{"id":202,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":200,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":203,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":169,"debug_name":"store_local>"},"args":[{"id":11,"debug_name":null},{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":203,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":204,"debug_name":null},{"id":205,"debug_name":null}]},{"target":{"Statement":1256},"results":[{"id":206,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":48,"debug_name":"enum_init>, 0>"},"args":[{"id":205,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":207,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":204,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":208,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":207,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":209,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1261},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":210,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":46,"debug_name":"enum_init>, 1>"},"args":[{"id":210,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":211,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":206,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":208,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":211,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":209,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":45,"debug_name":"enum_match>>"},"args":[{"id":209,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":212,"debug_name":null}]},{"target":{"Statement":1287},"results":[{"id":213,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":212,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":214,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":10,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":215,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":208,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":216,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":214,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":217,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":216,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":216,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":215,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":215,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":217,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":217,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":212,"debug_name":"function_call>"},"args":[{"id":216,"debug_name":null},{"id":215,"debug_name":null},{"id":217,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":218,"debug_name":null},{"id":219,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":211,"debug_name":"enum_match>>"},"args":[{"id":219,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":220,"debug_name":null}]},{"target":{"Statement":1281},"results":[{"id":221,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":12,"debug_name":"snapshot_take>"},"args":[{"id":220,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":222,"debug_name":null},{"id":223,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":13,"debug_name":"drop>"},"args":[{"id":222,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":8,"debug_name":"struct_construct>"},"args":[{"id":223,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":224,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":210,"debug_name":"enum_init>, 0>"},"args":[{"id":224,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":225,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":218,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":226,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":226,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":227,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":229,"debug_name":"store_temp>>"},"args":[{"id":225,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":228,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1293},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":209,"debug_name":"enum_init>, 1>"},"args":[{"id":221,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":229,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":218,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":230,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":230,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":227,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":229,"debug_name":"store_temp>>"},"args":[{"id":229,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":228,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1293},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":213,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":231,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":209,"debug_name":"enum_init>, 1>"},"args":[{"id":231,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":232,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":208,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":227,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":229,"debug_name":"store_temp>>"},"args":[{"id":232,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":228,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":227,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":233,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":208,"debug_name":"enum_match>>"},"args":[{"id":228,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":234,"debug_name":null}]},{"target":{"Statement":1345},"results":[{"id":235,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":233,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":233,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":198,"debug_name":"function_call"},"args":[{"id":8,"debug_name":null},{"id":233,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":236,"debug_name":null},{"id":237,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":197,"debug_name":"enum_match, core::option::Option::>)>>"},"args":[{"id":237,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":238,"debug_name":null}]},{"target":{"Statement":1329},"results":[{"id":239,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":196,"debug_name":"struct_deconstruct, core::option::Option::>>>"},"args":[{"id":238,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":240,"debug_name":null},{"id":241,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":195,"debug_name":"enum_match>>"},"args":[{"id":241,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":242,"debug_name":null}]},{"target":{"Statement":1311},"results":[{"id":243,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":194,"debug_name":"struct_construct"},"args":[{"id":6,"debug_name":null},{"id":4,"debug_name":null},{"id":2,"debug_name":null},{"id":22,"debug_name":null},{"id":20,"debug_name":null},{"id":18,"debug_name":null},{"id":16,"debug_name":null},{"id":14,"debug_name":null},{"id":12,"debug_name":null},{"id":10,"debug_name":null},{"id":234,"debug_name":null},{"id":242,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":244,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":162,"debug_name":"enum_init, 0>"},"args":[{"id":244,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":245,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":192,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":240,"debug_name":null},{"id":245,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":246,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":191,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":246,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":247,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":236,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":236,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":247,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":247,"debug_name":null}]}]}},{"Return":[{"id":236,"debug_name":null},{"id":247,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":234,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":161,"debug_name":"enum_init, 1>"},"args":[{"id":243,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":248,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":192,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":240,"debug_name":null},{"id":248,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":249,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":191,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":249,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":250,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":236,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":236,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":250,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":250,"debug_name":null}]}]}},{"Return":[{"id":236,"debug_name":null},{"id":250,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":234,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":193,"debug_name":"enum_init, core::option::Option::)>, 1>"},"args":[{"id":239,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":251,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":236,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":236,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":251,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":251,"debug_name":null}]}]}},{"Return":[{"id":236,"debug_name":null},{"id":251,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":161,"debug_name":"enum_init, 1>"},"args":[{"id":235,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":252,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":192,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":233,"debug_name":null},{"id":252,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":253,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":191,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":253,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":254,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":254,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":254,"debug_name":null}]}]}},{"Return":[{"id":8,"debug_name":null},{"id":254,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":161,"debug_name":"enum_init, 1>"},"args":[{"id":202,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":255,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":192,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":200,"debug_name":null},{"id":255,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":256,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":191,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":256,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":257,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":257,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":257,"debug_name":null}]}]}},{"Return":[{"id":8,"debug_name":null},{"id":257,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":193,"debug_name":"enum_init, core::option::Option::)>, 1>"},"args":[{"id":199,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":258,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":258,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":258,"debug_name":null}]}]}},{"Return":[{"id":8,"debug_name":null},{"id":258,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":161,"debug_name":"enum_init, 1>"},"args":[{"id":196,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":259,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":192,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":194,"debug_name":null},{"id":259,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":260,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":191,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":260,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":261,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":190,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":190,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":261,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":261,"debug_name":null}]}]}},{"Return":[{"id":190,"debug_name":null},{"id":261,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":193,"debug_name":"enum_init, core::option::Option::)>, 1>"},"args":[{"id":193,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":262,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":190,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":190,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":262,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":262,"debug_name":null}]}]}},{"Return":[{"id":190,"debug_name":null},{"id":262,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":161,"debug_name":"enum_init, 1>"},"args":[{"id":189,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":263,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":192,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":188,"debug_name":null},{"id":263,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":264,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":191,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":264,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":265,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":265,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":265,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":265,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":152,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":266,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":161,"debug_name":"enum_init, 1>"},"args":[{"id":158,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":267,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":192,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":266,"debug_name":null},{"id":267,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":268,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":191,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":268,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":269,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":269,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":269,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":269,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":226,"debug_name":"drop>>"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":122,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":270,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":161,"debug_name":"enum_init, 1>"},"args":[{"id":128,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":271,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":192,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":270,"debug_name":null},{"id":271,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":272,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":191,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":272,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":273,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":273,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":273,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":273,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":226,"debug_name":"drop>>"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":92,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":274,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":161,"debug_name":"enum_init, 1>"},"args":[{"id":98,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":275,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":192,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":274,"debug_name":null},{"id":275,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":276,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":191,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":276,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":277,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":277,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":277,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":277,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":226,"debug_name":"drop>>"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":227,"debug_name":"drop>"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":64,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":278,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":161,"debug_name":"enum_init, 1>"},"args":[{"id":68,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":279,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":192,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":278,"debug_name":null},{"id":279,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":280,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":191,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":280,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":281,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":281,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":281,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":281,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":227,"debug_name":"drop>"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":226,"debug_name":"drop>>"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":227,"debug_name":"drop>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":53,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":282,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":161,"debug_name":"enum_init, 1>"},"args":[{"id":57,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":283,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":192,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":282,"debug_name":null},{"id":283,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":284,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":191,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":284,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":285,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":285,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":285,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":285,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":227,"debug_name":"drop>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":227,"debug_name":"drop>"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":226,"debug_name":"drop>>"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":227,"debug_name":"drop>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":286,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":161,"debug_name":"enum_init, 1>"},"args":[{"id":46,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":287,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":192,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":286,"debug_name":null},{"id":287,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":288,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":191,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":288,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":289,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":289,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":289,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":289,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":227,"debug_name":"drop>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":227,"debug_name":"drop>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":227,"debug_name":"drop>"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":167,"debug_name":"drop>>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":226,"debug_name":"drop>>"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":78,"debug_name":"drop>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":225,"debug_name":"drop>>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":227,"debug_name":"drop>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":290,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":161,"debug_name":"enum_init, 1>"},"args":[{"id":35,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":291,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":192,"debug_name":"struct_construct, core::option::Option::>>"},"args":[{"id":290,"debug_name":null},{"id":291,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":292,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":191,"debug_name":"enum_init, core::option::Option::)>, 0>"},"args":[{"id":292,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":293,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":234,"debug_name":"store_temp, core::option::Option::)>>"},"args":[{"id":293,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":293,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":293,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":135,"debug_name":"dup>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"struct_deconstruct>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":177,"debug_name":"array_len"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":178,"debug_name":"dup"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":176,"debug_name":"u32_eq"},"args":[{"id":8,"debug_name":null},{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]},{"target":{"Statement":1673},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":135,"debug_name":"dup>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"struct_deconstruct>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":178,"debug_name":"dup"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":175,"debug_name":"array_get"},"args":[{"id":0,"debug_name":null},{"id":10,"debug_name":null},{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null},{"id":13,"debug_name":null}]},{"target":{"Statement":1658},"results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":181,"debug_name":"store_temp>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":112,"debug_name":"unbox"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":135,"debug_name":"dup>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"struct_deconstruct>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":178,"debug_name":"dup"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":136,"debug_name":"store_temp"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":175,"debug_name":"array_get"},"args":[{"id":12,"debug_name":null},{"id":17,"debug_name":null},{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null},{"id":20,"debug_name":null}]},{"target":{"Statement":1642},"results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":181,"debug_name":"store_temp>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":112,"debug_name":"unbox"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":111,"debug_name":"struct_deconstruct"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null},{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":111,"debug_name":"struct_deconstruct"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null},{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":156,"debug_name":"pedersen"},"args":[{"id":1,"debug_name":null},{"id":25,"debug_name":null},{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":29,"debug_name":null},{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"struct_deconstruct"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":156,"debug_name":"pedersen"},"args":[{"id":29,"debug_name":null},{"id":31,"debug_name":null},{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null},{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":65,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":174,"debug_name":"u32_overflowing_add"},"args":[{"id":19,"debug_name":null},{"id":3,"debug_name":null},{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null},{"id":36,"debug_name":null}]},{"target":{"Statement":1627},"results":[{"id":37,"debug_name":null},{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":31,"debug_name":"struct_construct"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":35,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"store_temp"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":154,"debug_name":"function_call"},"args":[{"id":35,"debug_name":null},{"id":32,"debug_name":null},{"id":2,"debug_name":null},{"id":36,"debug_name":null},{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null},{"id":41,"debug_name":null},{"id":42,"debug_name":null}]}]}},{"Return":[{"id":40,"debug_name":null},{"id":41,"debug_name":null},{"id":42,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":179,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":43,"debug_name":null},{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":45,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":46,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":46,"debug_name":null},{"id":45,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":47,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":237,"debug_name":"enum_init, 1>"},"args":[{"id":47,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":238,"debug_name":"store_temp>"},"args":[{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Return":[{"id":37,"debug_name":null},{"id":32,"debug_name":null},{"id":48,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":131,"debug_name":"drop"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":180,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":82,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":49,"debug_name":null},{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":52,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":52,"debug_name":null},{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":53,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":237,"debug_name":"enum_init, 1>"},"args":[{"id":53,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":54,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":238,"debug_name":"store_temp>"},"args":[{"id":54,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":54,"debug_name":null}]}]}},{"Return":[{"id":21,"debug_name":null},{"id":1,"debug_name":null},{"id":54,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":180,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":55,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":82,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":56,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":56,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":56,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":55,"debug_name":null},{"id":56,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":57,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":58,"debug_name":null},{"id":57,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":59,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":237,"debug_name":"enum_init, 1>"},"args":[{"id":59,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":60,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":238,"debug_name":"store_temp>"},"args":[{"id":60,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":60,"debug_name":null}]}]}},{"Return":[{"id":14,"debug_name":null},{"id":1,"debug_name":null},{"id":60,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":61,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":236,"debug_name":"struct_construct>"},"args":[{"id":3,"debug_name":null},{"id":4,"debug_name":null},{"id":61,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":62,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":235,"debug_name":"enum_init, 0>"},"args":[{"id":62,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":63,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":238,"debug_name":"store_temp>"},"args":[{"id":63,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":63,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":1,"debug_name":null},{"id":63,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":245,"debug_name":"dup>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":243,"debug_name":"struct_deconstruct>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":244,"debug_name":"array_len"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":178,"debug_name":"dup"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":176,"debug_name":"u32_eq"},"args":[{"id":8,"debug_name":null},{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]},{"target":{"Statement":1761},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":245,"debug_name":"dup>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":243,"debug_name":"struct_deconstruct>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":178,"debug_name":"dup"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":242,"debug_name":"array_get"},"args":[{"id":0,"debug_name":null},{"id":10,"debug_name":null},{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null},{"id":13,"debug_name":null}]},{"target":{"Statement":1746},"results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":248,"debug_name":"store_temp>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":241,"debug_name":"unbox"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":64,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":246,"debug_name":"rename"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":240,"debug_name":"struct_deconstruct"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null},{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"store_temp"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":239,"debug_name":"function_call"},"args":[{"id":12,"debug_name":null},{"id":1,"debug_name":null},{"id":19,"debug_name":null},{"id":18,"debug_name":null},{"id":4,"debug_name":null},{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null},{"id":21,"debug_name":null},{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":153,"debug_name":"enum_match>"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null}]},{"target":{"Statement":1738},"results":[{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":65,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":174,"debug_name":"u32_overflowing_add"},"args":[{"id":20,"debug_name":null},{"id":3,"debug_name":null},{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null},{"id":27,"debug_name":null}]},{"target":{"Statement":1723},"results":[{"id":28,"debug_name":null},{"id":29,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":152,"debug_name":"struct_deconstruct>"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null},{"id":31,"debug_name":null},{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":157,"debug_name":"store_temp>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"store_temp"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":155,"debug_name":"function_call"},"args":[{"id":26,"debug_name":null},{"id":21,"debug_name":null},{"id":2,"debug_name":null},{"id":27,"debug_name":null},{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null},{"id":34,"debug_name":null},{"id":35,"debug_name":null}]}]}},{"Return":[{"id":33,"debug_name":null},{"id":34,"debug_name":null},{"id":35,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":247,"debug_name":"drop>"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":179,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":36,"debug_name":null},{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":39,"debug_name":null},{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":237,"debug_name":"enum_init, 1>"},"args":[{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":238,"debug_name":"store_temp>"},"args":[{"id":41,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null}]}]}},{"Return":[{"id":28,"debug_name":null},{"id":21,"debug_name":null},{"id":41,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":237,"debug_name":"enum_init, 1>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":238,"debug_name":"store_temp>"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":42,"debug_name":null}]}]}},{"Return":[{"id":20,"debug_name":null},{"id":21,"debug_name":null},{"id":42,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":180,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":82,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":43,"debug_name":null},{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":45,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":46,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":46,"debug_name":null},{"id":45,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":47,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":237,"debug_name":"enum_init, 1>"},"args":[{"id":47,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":238,"debug_name":"store_temp>"},"args":[{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Return":[{"id":14,"debug_name":null},{"id":1,"debug_name":null},{"id":48,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":70,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":236,"debug_name":"struct_construct>"},"args":[{"id":3,"debug_name":null},{"id":4,"debug_name":null},{"id":49,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":235,"debug_name":"enum_init, 0>"},"args":[{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":238,"debug_name":"store_temp>"},"args":[{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":1,"debug_name":null},{"id":51,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"struct_deconstruct>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":116,"debug_name":"array_snapshot_pop_front"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null}]},{"target":{"Statement":1778},"results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":115,"debug_name":"enum_init>, 0>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":121,"debug_name":"store_temp>>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":122,"debug_name":"store_temp>>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1783},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":114,"debug_name":"enum_init>, 1>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":121,"debug_name":"store_temp>>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":122,"debug_name":"store_temp>>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":113,"debug_name":"enum_match>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]},{"target":{"Statement":1794},"results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":112,"debug_name":"unbox"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":118,"debug_name":"rename"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":136,"debug_name":"store_temp"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":125,"debug_name":"array_append"},"args":[{"id":0,"debug_name":null},{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":8,"debug_name":"struct_construct>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":160,"debug_name":"function_call::append_span::, dojo_os::KeyValueDrop>>"},"args":[{"id":15,"debug_name":null},{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Return":[{"id":17,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":249,"debug_name":"drop>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null}]},{"target":{"Statement":1807},"results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":48,"debug_name":"enum_init>, 0>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1812},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":46,"debug_name":"enum_init>, 1>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":45,"debug_name":"enum_match>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]},{"target":{"Statement":1823},"results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":0,"debug_name":null},{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"store_temp>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":159,"debug_name":"function_call::append_span::, core::felt252Drop>>"},"args":[{"id":15,"debug_name":null},{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Return":[{"id":17,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":86,"debug_name":"drop>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"store_temp>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null}]},{"target":{"Statement":1836},"results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":48,"debug_name":"enum_init>, 0>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1841},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":46,"debug_name":"enum_init>, 1>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":45,"debug_name":"enum_match>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]},{"target":{"Statement":1852},"results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":1,"debug_name":null},{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"store_temp>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":183,"debug_name":"function_call>"},"args":[{"id":16,"debug_name":null},{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]}]}},{"Return":[{"id":17,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":86,"debug_name":"drop>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":101,"debug_name":"store_temp>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Return":[{"id":1,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":119,"debug_name":"dup"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":109,"debug_name":"felt252_is_zero"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]},{"target":{"Statement":1866},"results":[{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":254,"debug_name":"enum_init>, 0>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":256,"debug_name":"store_temp>>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":5,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":120,"debug_name":"drop>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null},{"id":8,"debug_name":null}]},{"target":{"Statement":1877},"results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":108,"debug_name":"enum_init, 0>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1882},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":107,"debug_name":"enum_init, 1>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":127,"debug_name":"enum_match>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null}]},{"target":{"Statement":1913},"results":[{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":255,"debug_name":"enable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null},{"id":20,"debug_name":null}]},{"target":{"Statement":1893},"results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":108,"debug_name":"enum_init, 0>"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1898},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":107,"debug_name":"enum_init, 1>"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":127,"debug_name":"enum_match>"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":29,"debug_name":null}]},{"target":{"Statement":1906},"results":[{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":126,"debug_name":"struct_construct"},"args":[{"id":17,"debug_name":null},{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":253,"debug_name":"enum_init, 0>"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":257,"debug_name":"store_temp>"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1917},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":252,"debug_name":"enum_init, 1>"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":257,"debug_name":"store_temp>"},"args":[{"id":35,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1917},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":252,"debug_name":"enum_init, 1>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":257,"debug_name":"store_temp>"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":251,"debug_name":"enum_match>"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]},{"target":{"Statement":1928},"results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":125,"debug_name":"array_append"},"args":[{"id":1,"debug_name":null},{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":147,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":110,"debug_name":"felt252_sub"},"args":[{"id":2,"debug_name":null},{"id":41,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":212,"debug_name":"function_call>"},"args":[{"id":37,"debug_name":null},{"id":40,"debug_name":null},{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null},{"id":44,"debug_name":null}]}]}},{"Return":[{"id":43,"debug_name":null},{"id":44,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":13,"debug_name":"drop>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":250,"debug_name":"enum_init>, 1>"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":45,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":256,"debug_name":"store_temp>>"},"args":[{"id":45,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":45,"debug_name":null}]}]}},{"Return":[{"id":37,"debug_name":null},{"id":45,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":119,"debug_name":"dup"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":109,"debug_name":"felt252_is_zero"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]},{"target":{"Statement":1944},"results":[{"id":4,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":262,"debug_name":"enum_init>, 0>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":263,"debug_name":"store_temp>>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":5,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":120,"debug_name":"drop>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":261,"debug_name":"function_call"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null},{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":260,"debug_name":"enum_match>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]},{"target":{"Statement":1958},"results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":259,"debug_name":"array_append"},"args":[{"id":1,"debug_name":null},{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":147,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":110,"debug_name":"felt252_sub"},"args":[{"id":2,"debug_name":null},{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":231,"debug_name":"store_temp>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":218,"debug_name":"function_call>"},"args":[{"id":6,"debug_name":null},{"id":10,"debug_name":null},{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null},{"id":14,"debug_name":null}]}]}},{"Return":[{"id":13,"debug_name":null},{"id":14,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":224,"debug_name":"drop>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":258,"debug_name":"enum_init>, 1>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":263,"debug_name":"store_temp>>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Return":[{"id":6,"debug_name":null},{"id":15,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":4,"debug_name":null}]},{"target":{"Statement":1972},"results":[{"id":5,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":48,"debug_name":"enum_init>, 0>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":1977},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":46,"debug_name":"enum_init>, 1>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":206,"debug_name":"dup>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null},{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":45,"debug_name":"enum_match>>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]},{"target":{"Statement":2059},"results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":205,"debug_name":"u32_try_from_felt252"},"args":[{"id":0,"debug_name":null},{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null},{"id":18,"debug_name":null}]},{"target":{"Statement":2050},"results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":62,"debug_name":"drop>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":64,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":206,"debug_name":"dup>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null},{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":178,"debug_name":"dup"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null},{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":204,"debug_name":"array_slice"},"args":[{"id":17,"debug_name":null},{"id":21,"debug_name":null},{"id":20,"debug_name":null},{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null},{"id":24,"debug_name":null}]},{"target":{"Statement":2037},"results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":206,"debug_name":"dup>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null},{"id":26,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":185,"debug_name":"array_len"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":178,"debug_name":"dup"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null},{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":37,"debug_name":"u32_overflowing_sub"},"args":[{"id":23,"debug_name":null},{"id":27,"debug_name":null},{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":29,"debug_name":null},{"id":30,"debug_name":null}]},{"target":{"Statement":2022},"results":[{"id":31,"debug_name":null},{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":204,"debug_name":"array_slice"},"args":[{"id":29,"debug_name":null},{"id":7,"debug_name":null},{"id":18,"debug_name":null},{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null},{"id":34,"debug_name":null}]},{"target":{"Statement":2010},"results":[{"id":35,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":203,"debug_name":"enum_init>, 0>"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":200,"debug_name":"struct_construct, core::option::Option::>>>"},"args":[{"id":38,"debug_name":null},{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":199,"debug_name":"enum_init, core::option::Option::>)>, 0>"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":207,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Return":[{"id":33,"debug_name":null},{"id":40,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":86,"debug_name":"drop>>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":82,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":41,"debug_name":null},{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":44,"debug_name":null},{"id":43,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":45,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":202,"debug_name":"enum_init, core::option::Option::>)>, 1>"},"args":[{"id":45,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":46,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":35,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":207,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":46,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":46,"debug_name":null}]}]}},{"Return":[{"id":35,"debug_name":null},{"id":46,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":86,"debug_name":"drop>>"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":86,"debug_name":"drop>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":47,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":84,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":47,"debug_name":null},{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":50,"debug_name":null},{"id":49,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":202,"debug_name":"enum_init, core::option::Option::>)>, 1>"},"args":[{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":52,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":207,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":52,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":52,"debug_name":null}]}]}},{"Return":[{"id":31,"debug_name":null},{"id":52,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":86,"debug_name":"drop>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":53,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":82,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":54,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":54,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":54,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":53,"debug_name":null},{"id":54,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":55,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":56,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":56,"debug_name":null},{"id":55,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":57,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":202,"debug_name":"enum_init, core::option::Option::>)>, 1>"},"args":[{"id":57,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":207,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":58,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null}]}]}},{"Return":[{"id":25,"debug_name":null},{"id":58,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":86,"debug_name":"drop>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":59,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":201,"debug_name":"enum_init>, 1>"},"args":[{"id":59,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":60,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":200,"debug_name":"struct_construct, core::option::Option::>>>"},"args":[{"id":12,"debug_name":null},{"id":60,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":61,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":199,"debug_name":"enum_init, core::option::Option::>)>, 0>"},"args":[{"id":61,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":62,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":207,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":62,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":62,"debug_name":null}]}]}},{"Return":[{"id":19,"debug_name":null},{"id":62,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":86,"debug_name":"drop>>"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":63,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":201,"debug_name":"enum_init>, 1>"},"args":[{"id":63,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":64,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":200,"debug_name":"struct_construct, core::option::Option::>>>"},"args":[{"id":12,"debug_name":null},{"id":64,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":65,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":199,"debug_name":"enum_init, core::option::Option::>)>, 0>"},"args":[{"id":65,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":66,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":207,"debug_name":"store_temp, core::option::Option::>)>>"},"args":[{"id":66,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":66,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":66,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":135,"debug_name":"dup>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"struct_deconstruct>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":177,"debug_name":"array_len"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":178,"debug_name":"dup"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null},{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":176,"debug_name":"u32_eq"},"args":[{"id":9,"debug_name":null},{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]},{"target":{"Statement":2171},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":135,"debug_name":"dup>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"struct_deconstruct>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":178,"debug_name":"dup"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null},{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":175,"debug_name":"array_get"},"args":[{"id":0,"debug_name":null},{"id":11,"debug_name":null},{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null},{"id":14,"debug_name":null}]},{"target":{"Statement":2155},"results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":181,"debug_name":"store_temp>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":112,"debug_name":"unbox"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":16,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":111,"debug_name":"struct_deconstruct"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":17,"debug_name":null},{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":119,"debug_name":"dup"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null},{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":156,"debug_name":"pedersen"},"args":[{"id":1,"debug_name":null},{"id":20,"debug_name":null},{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null},{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":135,"debug_name":"dup>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null},{"id":23,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":117,"debug_name":"struct_deconstruct>"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":178,"debug_name":"dup"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":5,"debug_name":null},{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":175,"debug_name":"array_get"},"args":[{"id":13,"debug_name":null},{"id":24,"debug_name":null},{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null},{"id":27,"debug_name":null}]},{"target":{"Statement":2138},"results":[{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":181,"debug_name":"store_temp>"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":112,"debug_name":"unbox"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":29,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":111,"debug_name":"struct_deconstruct"},"args":[{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":30,"debug_name":null},{"id":31,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":156,"debug_name":"pedersen"},"args":[{"id":21,"debug_name":null},{"id":22,"debug_name":null},{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null},{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":25,"debug_name":"struct_deconstruct"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":156,"debug_name":"pedersen"},"args":[{"id":33,"debug_name":null},{"id":35,"debug_name":null},{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null},{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":65,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":174,"debug_name":"u32_overflowing_add"},"args":[{"id":26,"debug_name":null},{"id":5,"debug_name":null},{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null},{"id":40,"debug_name":null}]},{"target":{"Statement":2122},"results":[{"id":41,"debug_name":null},{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":31,"debug_name":"struct_construct"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":5,"debug_name":"store_temp>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":104,"debug_name":"store_temp"},"args":[{"id":43,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":94,"debug_name":"store_temp"},"args":[{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":239,"debug_name":"function_call"},"args":[{"id":39,"debug_name":null},{"id":36,"debug_name":null},{"id":2,"debug_name":null},{"id":3,"debug_name":null},{"id":43,"debug_name":null},{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null},{"id":45,"debug_name":null},{"id":46,"debug_name":null}]}]}},{"Return":[{"id":44,"debug_name":null},{"id":45,"debug_name":null},{"id":46,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":47,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":179,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":47,"debug_name":null},{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":50,"debug_name":null},{"id":49,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":237,"debug_name":"enum_init, 1>"},"args":[{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":52,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":41,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":238,"debug_name":"store_temp>"},"args":[{"id":52,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":52,"debug_name":null}]}]}},{"Return":[{"id":41,"debug_name":null},{"id":36,"debug_name":null},{"id":52,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":180,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":53,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":82,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":54,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":54,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":54,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":53,"debug_name":null},{"id":54,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":55,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":56,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":56,"debug_name":null},{"id":55,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":57,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":237,"debug_name":"enum_init, 1>"},"args":[{"id":57,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":238,"debug_name":"store_temp>"},"args":[{"id":58,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":58,"debug_name":null}]}]}},{"Return":[{"id":28,"debug_name":null},{"id":21,"debug_name":null},{"id":58,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":71,"debug_name":"drop"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":180,"debug_name":"drop"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":19,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":59,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":82,"debug_name":"const_as_immediate>"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":60,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":60,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":60,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":18,"debug_name":"array_append"},"args":[{"id":59,"debug_name":null},{"id":60,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":61,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":17,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":62,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":16,"debug_name":"struct_construct>>"},"args":[{"id":62,"debug_name":null},{"id":61,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":63,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":237,"debug_name":"enum_init, 1>"},"args":[{"id":63,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":64,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":238,"debug_name":"store_temp>"},"args":[{"id":64,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":64,"debug_name":null}]}]}},{"Return":[{"id":15,"debug_name":null},{"id":1,"debug_name":null},{"id":64,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":4,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":65,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":236,"debug_name":"struct_construct>"},"args":[{"id":5,"debug_name":null},{"id":4,"debug_name":null},{"id":65,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":66,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":235,"debug_name":"enum_init, 0>"},"args":[{"id":66,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":67,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":90,"debug_name":"store_temp"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":97,"debug_name":"store_temp"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":238,"debug_name":"store_temp>"},"args":[{"id":67,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":67,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null},{"id":1,"debug_name":null},{"id":67,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":220,"debug_name":"alloc_local"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":2,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":56,"debug_name":"finalize_locals"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":1,"debug_name":"disable_ap_tracking"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":3,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":3,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":4,"debug_name":null},{"id":5,"debug_name":null}]},{"target":{"Statement":2193},"results":[{"id":6,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":5,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":7,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":7,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":8,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":108,"debug_name":"enum_init, 0>"},"args":[{"id":8,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":9,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":4,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":9,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":2198},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":12,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":107,"debug_name":"enum_init, 1>"},"args":[{"id":12,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":13,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":6,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":10,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":123,"debug_name":"store_temp>"},"args":[{"id":13,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":11,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":127,"debug_name":"enum_match>"},"args":[{"id":11,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]},{"target":{"Statement":2258},"results":[{"id":14,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":228,"debug_name":"store_local"},"args":[{"id":2,"debug_name":null},{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":1,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":49,"debug_name":"array_snapshot_pop_front"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":15,"debug_name":null},{"id":16,"debug_name":null}]},{"target":{"Statement":2207},"results":[{"id":17,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":48,"debug_name":"enum_init>, 0>"},"args":[{"id":16,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":18,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":15,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":18,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":2212},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":21,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":46,"debug_name":"enum_init>, 1>"},"args":[{"id":21,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":22,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":17,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":19,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":89,"debug_name":"store_temp>>"},"args":[{"id":22,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":20,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":45,"debug_name":"enum_match>>"},"args":[{"id":20,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":23,"debug_name":null}]},{"target":{"Statement":2238},"results":[{"id":24,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":44,"debug_name":"unbox"},"args":[{"id":23,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":25,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":10,"debug_name":"array_new"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":61,"debug_name":"rename"},"args":[{"id":25,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":27,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":27,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":14,"debug_name":"store_temp>"},"args":[{"id":26,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":26,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":6,"debug_name":"store_temp"},"args":[{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":28,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":212,"debug_name":"function_call>"},"args":[{"id":27,"debug_name":null},{"id":26,"debug_name":null},{"id":28,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":29,"debug_name":null},{"id":30,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":211,"debug_name":"enum_match>>"},"args":[{"id":30,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":31,"debug_name":null}]},{"target":{"Statement":2232},"results":[{"id":32,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":12,"debug_name":"snapshot_take>"},"args":[{"id":31,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":33,"debug_name":null},{"id":34,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":13,"debug_name":"drop>"},"args":[{"id":33,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":8,"debug_name":"struct_construct>"},"args":[{"id":34,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":35,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":210,"debug_name":"enum_init>, 0>"},"args":[{"id":35,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":36,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":37,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":37,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":229,"debug_name":"store_temp>>"},"args":[{"id":36,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":2244},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":209,"debug_name":"enum_init>, 1>"},"args":[{"id":32,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":40,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":186,"debug_name":"struct_deconstruct>"},"args":[{"id":29,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":41,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":41,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":229,"debug_name":"store_temp>>"},"args":[{"id":40,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":60,"debug_name":"jump"},"args":[],"branches":[{"target":{"Statement":2244},"results":[]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":72,"debug_name":"drop"},"args":[{"id":24,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":47,"debug_name":"struct_construct"},"args":[],"branches":[{"target":"Fallthrough","results":[{"id":42,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":209,"debug_name":"enum_init>, 1>"},"args":[{"id":42,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":43,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":88,"debug_name":"store_temp>>"},"args":[{"id":19,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":38,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":229,"debug_name":"store_temp>>"},"args":[{"id":43,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":39,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":38,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":208,"debug_name":"enum_match>>"},"args":[{"id":39,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":45,"debug_name":null}]},{"target":{"Statement":2252},"results":[{"id":46,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":266,"debug_name":"struct_construct"},"args":[{"id":1,"debug_name":null},{"id":45,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":47,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":265,"debug_name":"enum_init, 0>"},"args":[{"id":47,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":267,"debug_name":"store_temp>"},"args":[{"id":48,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":48,"debug_name":null}]}]}},{"Return":[{"id":44,"debug_name":null},{"id":48,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":3,"debug_name":"drop"},"args":[{"id":1,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":264,"debug_name":"enum_init, 1>"},"args":[{"id":46,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":49,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":44,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":44,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":267,"debug_name":"store_temp>"},"args":[{"id":49,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":49,"debug_name":null}]}]}},{"Return":[{"id":44,"debug_name":null},{"id":49,"debug_name":null}]},{"Invocation":{"libfunc_id":{"id":59,"debug_name":"branch_align"},"args":[],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":227,"debug_name":"drop>"},"args":[{"id":2,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[]}]}},{"Invocation":{"libfunc_id":{"id":24,"debug_name":"struct_construct>"},"args":[{"id":10,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":264,"debug_name":"enum_init, 1>"},"args":[{"id":14,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":91,"debug_name":"store_temp>"},"args":[{"id":50,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":50,"debug_name":null}]}]}},{"Invocation":{"libfunc_id":{"id":267,"debug_name":"store_temp>"},"args":[{"id":51,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":51,"debug_name":null}]}]}},{"Return":[{"id":50,"debug_name":null},{"id":51,"debug_name":null}]}],"funcs":[{"id":{"id":1,"debug_name":"dojo_os::find"},"signature":{"param_types":[{"id":4,"debug_name":"core::array::Span::"},{"id":0,"debug_name":"felt252"}],"ret_types":[{"id":6,"debug_name":"core::option::Option::"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}},{"id":{"id":1,"debug_name":null},"ty":{"id":0,"debug_name":"felt252"}}],"entry_point":0},{"id":{"id":3,"debug_name":"dojo_os::find_last"},"signature":{"param_types":[{"id":4,"debug_name":"core::array::Span::"},{"id":0,"debug_name":"felt252"}],"ret_types":[{"id":6,"debug_name":"core::option::Option::"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}},{"id":{"id":1,"debug_name":null},"ty":{"id":0,"debug_name":"felt252"}}],"entry_point":8},{"id":{"id":5,"debug_name":"dojo_os::deduplicate_da"},"signature":{"param_types":[{"id":4,"debug_name":"core::array::Span::"}],"ret_types":[{"id":4,"debug_name":"core::array::Span::"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}}],"entry_point":16},{"id":{"id":11,"debug_name":"dojo_os::main"},"signature":{"param_types":[{"id":8,"debug_name":"RangeCheck"},{"id":9,"debug_name":"Pedersen"},{"id":10,"debug_name":"Array"}],"ret_types":[{"id":8,"debug_name":"RangeCheck"},{"id":9,"debug_name":"Pedersen"},{"id":36,"debug_name":"core::panics::PanicResult::<(core::array::Array::,)>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":8,"debug_name":"RangeCheck"}},{"id":{"id":1,"debug_name":null},"ty":{"id":9,"debug_name":"Pedersen"}},{"id":{"id":2,"debug_name":null},"ty":{"id":10,"debug_name":"Array"}}],"entry_point":26},{"id":{"id":0,"debug_name":"dojo_os::find[expr20]"},"signature":{"param_types":[{"id":4,"debug_name":"core::array::Span::"},{"id":0,"debug_name":"felt252"}],"ret_types":[{"id":4,"debug_name":"core::array::Span::"},{"id":6,"debug_name":"core::option::Option::"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}},{"id":{"id":1,"debug_name":null},"ty":{"id":0,"debug_name":"felt252"}}],"entry_point":376},{"id":{"id":2,"debug_name":"dojo_os::find_last[expr20]"},"signature":{"param_types":[{"id":4,"debug_name":"core::array::Span::"},{"id":0,"debug_name":"felt252"}],"ret_types":[{"id":4,"debug_name":"core::array::Span::"},{"id":6,"debug_name":"core::option::Option::"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}},{"id":{"id":1,"debug_name":null},"ty":{"id":0,"debug_name":"felt252"}}],"entry_point":423},{"id":{"id":4,"debug_name":"dojo_os::deduplicate_da[expr36]"},"signature":{"param_types":[{"id":4,"debug_name":"core::array::Span::"},{"id":2,"debug_name":"Array"}],"ret_types":[{"id":4,"debug_name":"core::array::Span::"},{"id":2,"debug_name":"Array"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}},{"id":{"id":1,"debug_name":null},"ty":{"id":2,"debug_name":"Array"}}],"entry_point":470},{"id":{"id":10,"debug_name":"core::array::deserialize_array_helper::"},"signature":{"param_types":[{"id":8,"debug_name":"RangeCheck"},{"id":18,"debug_name":"core::array::Span::"},{"id":20,"debug_name":"Array"},{"id":0,"debug_name":"felt252"}],"ret_types":[{"id":8,"debug_name":"RangeCheck"},{"id":25,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":8,"debug_name":"RangeCheck"}},{"id":{"id":1,"debug_name":null},"ty":{"id":18,"debug_name":"core::array::Span::"}},{"id":{"id":2,"debug_name":null},"ty":{"id":20,"debug_name":"Array"}},{"id":{"id":3,"debug_name":null},"ty":{"id":0,"debug_name":"felt252"}}],"entry_point":552},{"id":{"id":9,"debug_name":"dojo_os::ProgramInputImpl::hash_new_state"},"signature":{"param_types":[{"id":8,"debug_name":"RangeCheck"},{"id":9,"debug_name":"Pedersen"},{"id":19,"debug_name":"dojo_os::ProgramInput"}],"ret_types":[{"id":8,"debug_name":"RangeCheck"},{"id":9,"debug_name":"Pedersen"},{"id":30,"debug_name":"core::panics::PanicResult::<(core::felt252,)>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":8,"debug_name":"RangeCheck"}},{"id":{"id":1,"debug_name":null},"ty":{"id":9,"debug_name":"Pedersen"}},{"id":{"id":2,"debug_name":null},"ty":{"id":19,"debug_name":"dojo_os::ProgramInput"}}],"entry_point":598},{"id":{"id":8,"debug_name":"dojo_os::main[expr78]"},"signature":{"param_types":[{"id":20,"debug_name":"Array"},{"id":10,"debug_name":"Array"},{"id":2,"debug_name":"Array"},{"id":10,"debug_name":"Array"}],"ret_types":[{"id":20,"debug_name":"Array"},{"id":2,"debug_name":"Array"},{"id":10,"debug_name":"Array"},{"id":10,"debug_name":"Array"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":20,"debug_name":"Array"}},{"id":{"id":1,"debug_name":null},"ty":{"id":10,"debug_name":"Array"}},{"id":{"id":2,"debug_name":null},"ty":{"id":2,"debug_name":"Array"}},{"id":{"id":3,"debug_name":null},"ty":{"id":10,"debug_name":"Array"}}],"entry_point":695},{"id":{"id":7,"debug_name":"dojo_os::ProgramInputImpl::hash_world_da[expr33]"},"signature":{"param_types":[{"id":8,"debug_name":"RangeCheck"},{"id":9,"debug_name":"Pedersen"},{"id":4,"debug_name":"core::array::Span::"},{"id":31,"debug_name":"core::pedersen::HashState"},{"id":27,"debug_name":"u32"}],"ret_types":[{"id":8,"debug_name":"RangeCheck"},{"id":9,"debug_name":"Pedersen"},{"id":33,"debug_name":"core::panics::PanicResult::<(core::pedersen::HashState, core::integer::u32, ())>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":8,"debug_name":"RangeCheck"}},{"id":{"id":1,"debug_name":null},"ty":{"id":9,"debug_name":"Pedersen"}},{"id":{"id":2,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}},{"id":{"id":3,"debug_name":null},"ty":{"id":31,"debug_name":"core::pedersen::HashState"}},{"id":{"id":4,"debug_name":null},"ty":{"id":27,"debug_name":"u32"}}],"entry_point":757},{"id":{"id":6,"debug_name":"dojo_os::ProgramOutputSerde::serialize"},"signature":{"param_types":[{"id":34,"debug_name":"dojo_os::ProgramOutput"},{"id":10,"debug_name":"Array"}],"ret_types":[{"id":10,"debug_name":"Array"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":34,"debug_name":"dojo_os::ProgramOutput"}},{"id":{"id":1,"debug_name":null},"ty":{"id":10,"debug_name":"Array"}}],"entry_point":860},{"id":{"id":12,"debug_name":"dojo_os::ProgramInputSerde::deserialize"},"signature":{"param_types":[{"id":8,"debug_name":"RangeCheck"},{"id":18,"debug_name":"core::array::Span::"}],"ret_types":[{"id":8,"debug_name":"RangeCheck"},{"id":56,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":8,"debug_name":"RangeCheck"}},{"id":{"id":1,"debug_name":null},"ty":{"id":18,"debug_name":"core::array::Span::"}}],"entry_point":967},{"id":{"id":13,"debug_name":"dojo_os::ProgramInputImpl::hash_dict[expr35]"},"signature":{"param_types":[{"id":8,"debug_name":"RangeCheck"},{"id":9,"debug_name":"Pedersen"},{"id":4,"debug_name":"core::array::Span::"},{"id":27,"debug_name":"u32"},{"id":31,"debug_name":"core::pedersen::HashState"}],"ret_types":[{"id":8,"debug_name":"RangeCheck"},{"id":9,"debug_name":"Pedersen"},{"id":59,"debug_name":"core::panics::PanicResult::<(core::integer::u32, core::pedersen::HashState, ())>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":8,"debug_name":"RangeCheck"}},{"id":{"id":1,"debug_name":null},"ty":{"id":9,"debug_name":"Pedersen"}},{"id":{"id":2,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}},{"id":{"id":3,"debug_name":null},"ty":{"id":27,"debug_name":"u32"}},{"id":{"id":4,"debug_name":null},"ty":{"id":31,"debug_name":"core::pedersen::HashState"}}],"entry_point":1579},{"id":{"id":14,"debug_name":"dojo_os::ProgramInputImpl::hash_storage_updates[expr62]"},"signature":{"param_types":[{"id":8,"debug_name":"RangeCheck"},{"id":9,"debug_name":"Pedersen"},{"id":17,"debug_name":"core::array::Span::"},{"id":27,"debug_name":"u32"},{"id":31,"debug_name":"core::pedersen::HashState"}],"ret_types":[{"id":8,"debug_name":"RangeCheck"},{"id":9,"debug_name":"Pedersen"},{"id":59,"debug_name":"core::panics::PanicResult::<(core::integer::u32, core::pedersen::HashState, ())>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":8,"debug_name":"RangeCheck"}},{"id":{"id":1,"debug_name":null},"ty":{"id":9,"debug_name":"Pedersen"}},{"id":{"id":2,"debug_name":null},"ty":{"id":17,"debug_name":"core::array::Span::"}},{"id":{"id":3,"debug_name":null},"ty":{"id":27,"debug_name":"u32"}},{"id":{"id":4,"debug_name":null},"ty":{"id":31,"debug_name":"core::pedersen::HashState"}}],"entry_point":1682},{"id":{"id":16,"debug_name":"core::array::ArrayImpl::::append_span::, dojo_os::KeyValueDrop>"},"signature":{"param_types":[{"id":2,"debug_name":"Array"},{"id":4,"debug_name":"core::array::Span::"}],"ret_types":[{"id":2,"debug_name":"Array"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":2,"debug_name":"Array"}},{"id":{"id":1,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}}],"entry_point":1770},{"id":{"id":15,"debug_name":"core::array::ArrayImpl::::append_span::, core::felt252Drop>"},"signature":{"param_types":[{"id":10,"debug_name":"Array"},{"id":18,"debug_name":"core::array::Span::"}],"ret_types":[{"id":10,"debug_name":"Array"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":10,"debug_name":"Array"}},{"id":{"id":1,"debug_name":null},"ty":{"id":18,"debug_name":"core::array::Span::"}}],"entry_point":1799},{"id":{"id":17,"debug_name":"core::array::serialize_array_helper::"},"signature":{"param_types":[{"id":18,"debug_name":"core::array::Span::"},{"id":10,"debug_name":"Array"}],"ret_types":[{"id":10,"debug_name":"Array"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":18,"debug_name":"core::array::Span::"}},{"id":{"id":1,"debug_name":null},"ty":{"id":10,"debug_name":"Array"}}],"entry_point":1828},{"id":{"id":19,"debug_name":"core::array::deserialize_array_helper::"},"signature":{"param_types":[{"id":18,"debug_name":"core::array::Span::"},{"id":2,"debug_name":"Array"},{"id":0,"debug_name":"felt252"}],"ret_types":[{"id":18,"debug_name":"core::array::Span::"},{"id":63,"debug_name":"core::option::Option::>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":18,"debug_name":"core::array::Span::"}},{"id":{"id":1,"debug_name":null},"ty":{"id":2,"debug_name":"Array"}},{"id":{"id":2,"debug_name":null},"ty":{"id":0,"debug_name":"felt252"}}],"entry_point":1857},{"id":{"id":20,"debug_name":"core::array::deserialize_array_helper::"},"signature":{"param_types":[{"id":18,"debug_name":"core::array::Span::"},{"id":15,"debug_name":"Array"},{"id":0,"debug_name":"felt252"}],"ret_types":[{"id":18,"debug_name":"core::array::Span::"},{"id":65,"debug_name":"core::option::Option::>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":18,"debug_name":"core::array::Span::"}},{"id":{"id":1,"debug_name":null},"ty":{"id":15,"debug_name":"Array"}},{"id":{"id":2,"debug_name":null},"ty":{"id":0,"debug_name":"felt252"}}],"entry_point":1935},{"id":{"id":18,"debug_name":"core::array::SpanFelt252Serde::deserialize"},"signature":{"param_types":[{"id":8,"debug_name":"RangeCheck"},{"id":18,"debug_name":"core::array::Span::"}],"ret_types":[{"id":8,"debug_name":"RangeCheck"},{"id":69,"debug_name":"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":8,"debug_name":"RangeCheck"}},{"id":{"id":1,"debug_name":null},"ty":{"id":18,"debug_name":"core::array::Span::"}}],"entry_point":1965},{"id":{"id":21,"debug_name":"dojo_os::ProgramInputImpl::hash_storage_updates[expr57]"},"signature":{"param_types":[{"id":8,"debug_name":"RangeCheck"},{"id":9,"debug_name":"Pedersen"},{"id":4,"debug_name":"core::array::Span::"},{"id":0,"debug_name":"felt252"},{"id":31,"debug_name":"core::pedersen::HashState"},{"id":27,"debug_name":"u32"}],"ret_types":[{"id":8,"debug_name":"RangeCheck"},{"id":9,"debug_name":"Pedersen"},{"id":59,"debug_name":"core::panics::PanicResult::<(core::integer::u32, core::pedersen::HashState, ())>"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":8,"debug_name":"RangeCheck"}},{"id":{"id":1,"debug_name":null},"ty":{"id":9,"debug_name":"Pedersen"}},{"id":{"id":2,"debug_name":null},"ty":{"id":4,"debug_name":"core::array::Span::"}},{"id":{"id":3,"debug_name":null},"ty":{"id":0,"debug_name":"felt252"}},{"id":{"id":4,"debug_name":null},"ty":{"id":31,"debug_name":"core::pedersen::HashState"}},{"id":{"id":5,"debug_name":null},"ty":{"id":27,"debug_name":"u32"}}],"entry_point":2069},{"id":{"id":22,"debug_name":"dojo_os::StorageUpdatesSerde::deserialize"},"signature":{"param_types":[{"id":18,"debug_name":"core::array::Span::"}],"ret_types":[{"id":18,"debug_name":"core::array::Span::"},{"id":75,"debug_name":"core::option::Option::"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":18,"debug_name":"core::array::Span::"}}],"entry_point":2181}],"debug_info":{"type_names":[],"libfunc_names":[],"user_func_names":[]}} \ No newline at end of file diff --git a/bin/saya/programs/cairo1echo.json b/bin/saya/programs/cairo1echo.json deleted file mode 100644 index 53da56aee3..0000000000 --- a/bin/saya/programs/cairo1echo.json +++ /dev/null @@ -1 +0,0 @@ -{"version":1,"type_declarations":[{"id":{"id":1,"debug_name":"Array"},"long_id":{"generic_id":"Array","generic_args":[{"Type":{"id":0,"debug_name":"felt252"}}]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":false,"zero_sized":false}},{"id":{"id":0,"debug_name":"felt252"},"long_id":{"generic_id":"felt252","generic_args":[]},"declared_type_info":{"storable":true,"droppable":true,"duplicatable":true,"zero_sized":false}}],"libfunc_declarations":[{"id":{"id":0,"debug_name":"store_temp>"},"long_id":{"generic_id":"store_temp","generic_args":[{"Type":{"id":1,"debug_name":"Array"}}]}}],"statements":[{"Invocation":{"libfunc_id":{"id":0,"debug_name":"store_temp>"},"args":[{"id":0,"debug_name":null}],"branches":[{"target":"Fallthrough","results":[{"id":0,"debug_name":null}]}]}},{"Return":[{"id":0,"debug_name":null}]}],"funcs":[{"id":{"id":0,"debug_name":"celestia_mock::main"},"signature":{"param_types":[{"id":1,"debug_name":"Array"}],"ret_types":[{"id":1,"debug_name":"Array"}]},"params":[{"id":{"id":0,"debug_name":null},"ty":{"id":1,"debug_name":"Array"}}],"entry_point":0}]} \ No newline at end of file diff --git a/bin/saya/saya.sh b/bin/saya/saya.sh deleted file mode 100755 index 0fba3c7831..0000000000 --- a/bin/saya/saya.sh +++ /dev/null @@ -1,184 +0,0 @@ -#!/bin/bash - -# set -a && source .env && set +as - -# Set private variables - -SAYA_SEPOLIA_ENDPOINT=https://api.cartridge.gg/x/starknet/sepolia -SAYA_SEPOLIA_PRIVATE_KEY= -SAYA_SEPOLIA_ACCOUNT_ADDRESS= -SAYA_PROVER_KEY= -SAYA_SNCAST_ACCOUNT_NAME="dev" - -# Probably no need to change these - -# SAYA_PROVER_URL=http://prover.visoft.dev:3618 -# SAYA_PROVER_URL=http://localhost:3040 -SAYA_PROVER_URL=https://api.cartridge.gg/prover/ -# SAYA_MANIFEST_PATH=../shard-dungeon/Scarb.toml -SAYA_MANIFEST_PATH=examples/spawn-and-move/Scarb.toml -SAYA_FACT_REGISTRY_CLASS_HASH=0x0485857a88cacd0a706452c61cfa613802c638dc4ce09bf3d8b289c70183d293 -SAYA_PILTOVER_CLASS_HASH=0x2a7a2276cf2f00206960ea8a0ea86b1549d6514ab11f546cc71b8154b597c1d -SAYA_PILTOVER_STARTING_STATE_ROOT=0 -SAYA_CONFIG_HASH=42 -SAYA_PROGRAM_HASH=0x2aa9e430c145b26d681a8087819ed5bff93f5596105d0e74f00fc7caa46fa18 #need to be reupdated - -# Set after running the script - -SAYA_WORLD_ADDRESS="" -SAYA_WORLD_PREPARED="" # Set to anything after preparing the world successfully for the first time -SAYA_FORK_BLOCK_NUMBER= -SAYA_SKIP_MAKING_TRANSACTIONS="" # Set to anything to skip making transactions -SAYA_PILTOVER_ADDRESS="" -SAYA_PILTOVER_PREPARED= -SAYA_FACT_REGISTRY="" - - -if [[ -z "${SAYA_FACT_REGISTRY}" ]]; then - sncast -a $SAYA_SNCAST_ACCOUNT_NAME deploy \ - --class-hash $SAYA_FACT_REGISTRY_CLASS_HASH \ - --fee-token eth \ - -u $SAYA_SEPOLIA_ENDPOINT - echo "Set SAYA_FACT_REGISTRY to the address of the deployed contract." - exit 0 -fi -if [[ -z "${SAYA_WORLD_ADDRESS}" ]]; then - echo "World address not set: DEPLOYING WORLD" - - # Build world contract - cargo run -r --bin sozo -- \ - build \ - --manifest-path $SAYA_MANIFEST_PATH - - cargo run -r --bin sozo -- \ - migrate apply \ - --manifest-path $SAYA_MANIFEST_PATH \ - --rpc-url $SAYA_SEPOLIA_ENDPOINT \ - --private-key $SAYA_SEPOLIA_PRIVATE_KEY \ - --account-address $SAYA_SEPOLIA_ACCOUNT_ADDRESS - - echo "Set SAYA_WORLD_ADDRESS to the address of the deployed contract." - - exit 0 - -else - echo "Using world: $SAYA_WORLD_ADDRESS" -fi - -if [[ -z "${SAYA_WORLD_PREPARED}" ]]; then - echo "World not prepared: PREPARING WORLD" - - cargo run -r --bin sozo -- \ - execute $SAYA_WORLD_ADDRESS set_differ_program_hash \ - -c 2265722951651489608338464389196546125983429710081933755514038580032192121109 \ - --manifest-path $SAYA_MANIFEST_PATH \ - --rpc-url $SAYA_SEPOLIA_ENDPOINT \ - --private-key $SAYA_SEPOLIA_PRIVATE_KEY \ - --account-address $SAYA_SEPOLIA_ACCOUNT_ADDRESS \ - --fee-estimate-multiplier 20 \ - --world $SAYA_WORLD_ADDRESS \ - --wait - - cargo run -r --bin sozo -- \ - execute $SAYA_WORLD_ADDRESS set_merger_program_hash \ - -c 2265722951651489608338464389196546125983429710081933755514038580032192121109 \ - --manifest-path $SAYA_MANIFEST_PATH \ - --rpc-url $SAYA_SEPOLIA_ENDPOINT \ - --private-key $SAYA_SEPOLIA_PRIVATE_KEY \ - --account-address $SAYA_SEPOLIA_ACCOUNT_ADDRESS \ - --fee-estimate-multiplier 20 \ - --world $SAYA_WORLD_ADDRESS \ - --wait - - cargo run -r --bin sozo -- \ - execute $SAYA_WORLD_ADDRESS set_facts_registry \ - -c $SAYA_FACT_REGISTRY \ - --manifest-path $SAYA_MANIFEST_PATH \ - --rpc-url $SAYA_SEPOLIA_ENDPOINT \ - --private-key $SAYA_SEPOLIA_PRIVATE_KEY \ - --account-address $SAYA_SEPOLIA_ACCOUNT_ADDRESS \ - --fee-estimate-multiplier 20 \ - --world $SAYA_WORLD_ADDRESS \ - --wait - - echo "Set SAYA_WORLD_PREPARED to anything to skip this step next time." - -else - echo "World is already prepared" -fi - -if [[ -z "${SAYA_FORK_BLOCK_NUMBER}" ]]; then - echo "Set SAYA_FORK_BLOCK_NUMBER to the latest block including the preparations (check here https://sepolia.starkscan.co/, remember to switch to sepolia!)." - echo "You can now run \`cargo run -r --bin katana -- --rpc-url $SAYA_SEPOLIA_ENDPOINT --fork-block-number \$SAYA_FORK_BLOCK_NUMBER\` in another terminal." - exit 0 -fi - -if [[ -z "${SAYA_PILTOVER_ADDRESS}" ]]; then - sncast -a $SAYA_SNCAST_ACCOUNT_NAME deploy \ - --class-hash $SAYA_PILTOVER_CLASS_HASH \ - -c $SAYA_SEPOLIA_ACCOUNT_ADDRESS $SAYA_PILTOVER_STARTING_STATE_ROOT $(expr $SAYA_FORK_BLOCK_NUMBER + 1) 0 \ - --fee-token eth \ - -u $SAYA_SEPOLIA_ENDPOINT - - - echo "Set SAYA_PILTOVER_ADDRESS to the address of the deployed contract." - exit 0 -fi - -if [[ -z "${SAYA_PILTOVER_PREPARED}" ]]; then - sncast -a $SAYA_SNCAST_ACCOUNT_NAME --wait invoke \ - --contract-address $SAYA_PILTOVER_ADDRESS --function set_program_info -c $SAYA_PROGRAM_HASH $SAYA_CONFIG_HASH \ - --fee-token eth \ - -u $SAYA_SEPOLIA_ENDPOINT - - sncast -a $SAYA_SNCAST_ACCOUNT_NAME --wait invoke \ - --contract-address $SAYA_PILTOVER_ADDRESS --function set_facts_registry -c $SAYA_FACT_REGISTRY \ - --fee-token eth \ - -u $SAYA_SEPOLIA_ENDPOINT - -fi - - -if [[ -z "${SAYA_SKIP_MAKING_TRANSACTIONS}" ]]; then - cargo run -r --bin sozo -- execute dojo_examples-actions spawn \ - --manifest-path $SAYA_MANIFEST_PATH \ - --rpc-url http://localhost:5050 \ - --private-key $SAYA_SEPOLIA_PRIVATE_KEY \ - --account-address $SAYA_SEPOLIA_ACCOUNT_ADDRESS \ - --world $SAYA_WORLD_ADDRESS \ - --wait && \ - cargo run -r --bin sozo -- execute dojo_examples-actions move \ - -c 2 \ - --manifest-path $SAYA_MANIFEST_PATH \ - --rpc-url http://localhost:5050 \ - --private-key $SAYA_SEPOLIA_PRIVATE_KEY \ - --account-address $SAYA_SEPOLIA_ACCOUNT_ADDRESS \ - --world $SAYA_WORLD_ADDRESS \ - --wait -fi - - -cargo run -r --bin sozo -- model get Moves $SAYA_SEPOLIA_ACCOUNT_ADDRESS \ - --manifest-path $SAYA_MANIFEST_PATH \ - --rpc-url $SAYA_SEPOLIA_ENDPOINT \ - --world $SAYA_WORLD_ADDRESS - -cargo run -r --bin saya -- \ - --mode persistent \ - --rpc-url http://localhost:5050 \ - --registry $SAYA_FACT_REGISTRY \ - --settlement-contract $SAYA_PILTOVER_ADDRESS \ - --world $SAYA_WORLD_ADDRESS \ - --prover-url $SAYA_PROVER_URL \ - --store-proofs \ - --starknet-url $SAYA_SEPOLIA_ENDPOINT \ - --signer-key $SAYA_SEPOLIA_PRIVATE_KEY \ - --signer-address $SAYA_SEPOLIA_ACCOUNT_ADDRESS \ - --private-key $SAYA_PROVER_KEY \ - --batch-size 1 \ - --start-block $(expr $SAYA_FORK_BLOCK_NUMBER + 1) \ - --da-chain celestia \ - --celestia-node-url http://localhost:26658 \ - --celestia-namespace saya-dev \ - --celestia-node-auth-token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBbGxvdyI6WyJwdWJsaWMiLCJyZWFkIiwid3JpdGUiLCJhZG1pbiJdfQ.kjW6UL2m2XIylCDzG5vwgyW5YA75LyLzXMbnp8Fpe_E - # --end-block $(expr $SAYA_FORK_BLOCK_NUMBER + 4) diff --git a/bin/saya/scripts/0_account_setup.sh b/bin/saya/scripts/0_account_setup.sh deleted file mode 100755 index fe576af6d1..0000000000 --- a/bin/saya/scripts/0_account_setup.sh +++ /dev/null @@ -1,15 +0,0 @@ -#Set all the environment variables in the script for the account setup. - -SN_CAST_ACCOUNT_NAME= -DOJO_ACCOUNT_ADDRESS= -SN_CAST_ACCOUNT_TYPE= #"" -DOJO_PRIVATE_KEY= -STARKNET_RPC_URL= -SN_CAST_ACCOUNT_NAME= - -sncast account add --name $SN_CAST_ACCOUNT_NAME \ - --address $DOJO_ACCOUNT_ADDRESS \ - --type $SN_CAST_ACCOUNT_TYPE \ - --private-key $DOJO_PRIVATE_KEY \ - --url $STARKNET_RPC_URL \ - --add-profile $SN_CAST_ACCOUNT_NAME \ No newline at end of file diff --git a/bin/saya/scripts/1_world_setup.sh b/bin/saya/scripts/1_world_setup.sh deleted file mode 100755 index 51c29307b2..0000000000 --- a/bin/saya/scripts/1_world_setup.sh +++ /dev/null @@ -1,124 +0,0 @@ -# Setup the world to be deployed in the context of the Saya example: -# -# Before running the script, please make sure to have the following environment variables set: -# -# - DOJO_PRIVATE_KEY: The private key of the account that will deploy the world. -# - DOJO_ACCOUNT_ADDRESS: The address of the account that will deploy the world. -# - STARKNET_RPC_URL: The RPC URL of the StarkNet network you are deploying to. -# - -DOJO_PRIVATE_KEY= -DOJO_ACCOUNT_ADDRESS= -STARKNET_RPC_URL= - -set -e - -# Check if jq is installed. -if ! command -v jq &> /dev/null -then - echo "jq could not be found. Please install it with any method listed at:" - echo "https://jqlang.github.io/jq/download/" - exit 1 -fi - -# Build the project to have the manifests and artifacts. -cargo run -r --bin sozo -- \ - -P saya \ - build \ - --manifest-path examples/spawn-and-move/Scarb.toml - -# # Ensures no previous run corrupted the environment. -unset DOJO_WORLD_ADDRESS - -# Migrate the world on chain (Sepolia fees can be high, so we multiply the estimate by 20 here to pass everytime). -# We use -vvv to get more information about the transactions and extract data from it. -cargo run -r --bin sozo -- \ - -P saya \ - migrate apply \ - --manifest-path examples/spawn-and-move/Scarb.toml \ - --rpc-url $STARKNET_RPC_URL\ - --private-key $DOJO_PRIVATE_KEY \ - --account-address $DOJO_ACCOUNT_ADDRESS \ - --fee-estimate-multiplier 20 \ - -vvv - -# -# The world is now deployed, you should extract the address and the block number at which it was deployed to set the -# following environment variables: - - -# /!\ Be aware that the block number needs to be the block in which the transaction that deploys the world was mined. - -# Function to extract a specific key from the [world] section in the deployment manifest. -extract_key() { - local section=$1 - local key=$2 - - awk -v section="$section" -v key="$key" ' - # Track the current section - /^\[.*\]/ { - in_section = ($0 == "[" section "]") - next - } - # When in the desired section, extract the key - in_section && $1 == key { - gsub(/^[^=]+=[ ]*"?|"?$/, "") - print $0 - exit - } - ' "$TOML_FILE" -} - -# Example usage -TOML_FILE="examples/spawn-and-move/manifests/saya/deployment/manifest.toml" -WORLD_ADDRESS=$(extract_key "world" "address") -echo "world address: $WORLD_ADDRESS" - -TRANSACTION_HASH=$(extract_key "world" "transaction_hash") -echo "transaction hash: $TRANSACTION_HASH" - -RPC_URL=$(extract_key "world.metadata" "rpc_url") -echo "RPC URL: $RPC_URL" - -# Check if TRANSACTION_HASH and WORLD_ADDRESS are empty -if [ -z "$TRANSACTION_HASH" ] || [ -z "$WORLD_ADDRESS" ]; then - echo "Error: Could not extract transaction hash or world address from the manifest file." - echo "Please check the contents of $TOML_FILE and ensure the migration was successful." - exit 1 -fi - - -check_finality() { - local tx_hash="$1" - local url="$2" - - # Call sncast to get transaction status - local result=$(sncast --account dev tx-status "$tx_hash" --url "$url") - - # Extract finality status from the result - local execution_status=$(echo "$result" | grep -oP '(?<=execution_status: ).*') - local finality_status=$(echo "$result" | grep -oP '(?<=finality_status: ).*') - - # Output the statuses for debugging purposes - echo "Execution Status: $execution_status" - echo "Finality Status: $finality_status" - - # Check if finality status is AcceptedOnL2 - if [ "$finality_status" == "AcceptedOnL2" ]; then - echo "Transaction $tx_hash has been accepted on L2!" - return 0 - else - echo "Transaction $tx_hash has not yet been accepted on L2. Waiting..." - return 1 - fi -} - -# Loop until finality status is "AcceptedOnL2" -while true; do - check_finality "$TRANSACTION_HASH" "$STARKNET_RPC_URL" - if [ $? -eq 0 ]; then - break - fi - # Sleep for a few seconds before checking again - sleep 1 -done \ No newline at end of file diff --git a/bin/saya/scripts/2_world_config.sh b/bin/saya/scripts/2_world_config.sh deleted file mode 100755 index fb053b89fb..0000000000 --- a/bin/saya/scripts/2_world_config.sh +++ /dev/null @@ -1,40 +0,0 @@ -# Set environment variables for the world configuration -DOJO_WORLD_ADDRESS= # Address of the Dojo World contract -STARKNET_RPC_URL= # Starknet RPC URL to interact with the network -DOJO_PRIVATE_KEY= # Private key for executing transactions -DOJO_ACCOUNT_ADDRESS= # Account address used for signing transactions - -# Set the differ program hash in the Dojo World contract -cargo run -r --bin sozo -- \ - execute $DOJO_WORLD_ADDRESS set_differ_program_hash \ - -c 0xa73dd9546f9858577f9fdbe43fd629b6f12dc638652e11b6e29155f4c6328 \ - --manifest-path examples/spawn-and-move/Scarb.toml \ # Path to Scarb project manifest - --rpc-url $STARKNET_RPC_URL \ # Starknet RPC URL - --private-key $DOJO_PRIVATE_KEY \ # Private key to sign the transaction - --account-address $DOJO_ACCOUNT_ADDRESS \ # Account address for transaction authorization - --fee-estimate-multiplier 20 \ # Set fee estimate multiplier - --world $DOJO_WORLD_ADDRESS \ # Specify the world address for the command - --wait # Wait for the transaction to complete - -# Set the merger program hash in the Dojo World contract -cargo run -r --bin sozo -- \ - execute $DOJO_WORLD_ADDRESS set_merger_program_hash \ - -c 0xc105cf2c69201005df3dad0050f5289c53d567d96df890f2142ad43a540334 \ - --manifest-path examples/spawn-and-move/Scarb.toml \ # Path to Scarb project manifest - --rpc-url $STARKNET_RPC_URL \ # Starknet RPC URL - --private-key $DOJO_PRIVATE_KEY \ # Private key to sign the transaction - --account-address $DOJO_ACCOUNT_ADDRESS \ # Account address for transaction authorization - --fee-estimate-multiplier 20 \ # Set fee estimate multiplier - --wait # Wait for the transaction to complete - -# Set the facts registry in the Dojo World contract -cargo run -r --bin sozo -- \ - execute $DOJO_WORLD_ADDRESS set_facts_registry \ - -c 0x2cc03dd3136b634bfea2e36e9aac5f966db9576dde3fe43e3ef72e9ece1f42b \ - --manifest-path examples/spawn-and-move/Scarb.toml \ # Path to Scarb project manifest - --rpc-url $STARKNET_RPC_URL \ # Starknet RPC URL - --private-key $DOJO_PRIVATE_KEY \ # Private key to sign the transaction - --account-address $DOJO_ACCOUNT_ADDRESS \ # Account address for transaction authorization - --fee-estimate-multiplier 20 \ # Set fee estimate multiplier - --world $DOJO_WORLD_ADDRESS \ # Specify the world address for the command - --wait # Wait for the transaction to complete diff --git a/bin/saya/scripts/3_piltover.sh b/bin/saya/scripts/3_piltover.sh deleted file mode 100755 index 61c3714bec..0000000000 --- a/bin/saya/scripts/3_piltover.sh +++ /dev/null @@ -1,77 +0,0 @@ -# Define the account and contract details required for deployment -PILTOVER_CLASS_HASH="0x2a7a2276cf2f00206960ea8a0ea86b1549d6514ab11f546cc71b8154b597c1d" -SAYA_CONFIG_HASH=42 -SAYA_PROGRAM_HASH=0x2aa9e430c145b26d681a8087819ed5bff93f5596105d0e74f00fc7caa46fa18 -SAYA_FACT_REGISTRY_ADDRESS=0x2cc03dd3136b634bfea2e36e9aac5f966db9576dde3fe43e3ef72e9ece1f42b - -# Set the required environment variables -SN_CAST_ACCOUNT_NAME= # The name of the account used with sncast -STARKNET_RPC_URL= # The Starknet RPC URL to interact with the network -DOJO_ACCOUNT_ADDRESS= # The Dojo account address used for deployment - -# Deploy the contract using sncast, and capture the output for transaction and contract address -output=$(sncast -a $SN_CAST_ACCOUNT_NAME deploy \ - -u $STARKNET_RPC_URL \ - --class-hash $PILTOVER_CLASS_HASH \ - --fee-token eth \ - -c $DOJO_ACCOUNT_ADDRESS 0 $((SAYA_FORK_BLOCK_NUMBER + 1)) 0) - -# Parse the output to extract the transaction hash and the contract address -TRANSACTION_HASH=$(echo "$output" | grep "transaction_hash:" | awk '{print $2}') -PILTOVER_CONTRACT_ADDRESS=$(echo "$output" | grep "contract_address:" | awk '{print $2}') - -# Display the transaction hash and contract address for reference -echo "Piltover deploy transaction hash: $TRANSACTION_HASH" -echo "Piltover contract address: $PILTOVER_CONTRACT_ADDRESS" - -# Function to check the finality status of the transaction on L2 -check_finality() { - local tx_hash="$1" # Transaction hash to check the status for - local url="$2" # Starknet RPC URL - - # Use sncast to retrieve the transaction status - local result=$(sncast --account dev tx-status "$tx_hash" --url "$url") - - # Extract and display the execution and finality statuses - local execution_status=$(echo "$result" | grep -oP '(?<=execution_status: ).*') - local finality_status=$(echo "$result" | grep -oP '(?<=finality_status: ).*') - - echo "Execution Status: $execution_status" - echo "Finality Status: $finality_status" - - # Check if the transaction has been accepted on L2 - if [ "$finality_status" == "AcceptedOnL2" ]; then - echo "Transaction $tx_hash has been accepted on L2!" - return 0 - else - echo "Transaction $tx_hash has not yet been accepted on L2. Waiting..." - return 1 - fi -} - -# Loop to repeatedly check the finality status until the transaction is accepted on L2 -while true; do - check_finality "$TRANSACTION_HASH" "$STARKNET_RPC_URL" - if [ $? -eq 0 ]; then - break - fi - # Wait for 5 seconds before checking again - sleep 5 -done -echo "" - -# Invoke the contract to set program information after deployment -sncast -a $SN_CAST_ACCOUNT_NAME --wait invoke -u $STARKNET_RPC_URL \ - --fee-token eth --contract-address $PILTOVER_CONTRACT_ADDRESS --function set_program_info -c \ - $SAYA_PROGRAM_HASH $SAYA_CONFIG_HASH - -echo "" - -# Invoke the contract to set the facts registry address -sncast -a $SN_CAST_ACCOUNT_NAME --wait invoke -u $STARKNET_RPC_URL \ - --fee-token eth --contract-address $PILTOVER_CONTRACT_ADDRESS --function set_facts_registry -c \ - $SAYA_FACT_REGISTRY_ADDRESS - -echo "" -# Display the final contract address for saving -echo -e "Save piltover address \e[1;32m$PILTOVER_CONTRACT_ADDRESS\e[0m" diff --git a/bin/saya/src/args/data_availability.rs b/bin/saya/src/args/data_availability.rs deleted file mode 100644 index 8b7e406b0e..0000000000 --- a/bin/saya/src/args/data_availability.rs +++ /dev/null @@ -1,91 +0,0 @@ -//! Data availability options. -use std::fmt::Display; -use std::str::FromStr; - -use anyhow::{self, Result}; -use clap::builder::PossibleValue; -use clap::{Args, ValueEnum}; -use url::Url; - -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -pub enum DataAvailabilityChain { - Celestia, -} - -// TODO: need to be reworked in order to support -// named options (like celestia options should be one -// option). -#[derive(Debug, Args, Clone)] -pub struct DataAvailabilityOptions { - #[arg(long)] - #[arg(help = "Data availability chain name")] - pub da_chain: Option, - - #[command(flatten)] - #[command(next_help_heading = "Celestia")] - pub celestia: CelestiaOptions, -} - -#[derive(Debug, Args, Clone)] -pub struct CelestiaOptions { - #[arg(long)] - #[arg(help = "The node url.")] - #[arg(requires = "da_chain")] - #[arg(requires = "celestia_namespace")] - pub celestia_node_url: Option, - - #[arg(long)] - #[arg(help = "An authorization token if required by the node.")] - #[arg(requires = "celestia_node_url")] - pub celestia_node_auth_token: Option, - - #[arg(long)] - #[arg(help = "The namespace used to submit blobs.")] - #[arg(requires = "celestia_node_url")] - pub celestia_namespace: Option, - - #[arg(long)] - #[arg(help = "Whether to include a proof to the publish DA.")] - #[arg(default_value_t = false)] - pub skip_publishing_proof: bool, -} - -// -- Clap enums impls -- -// -// -impl Default for DataAvailabilityChain { - fn default() -> Self { - Self::Celestia - } -} - -impl ValueEnum for DataAvailabilityChain { - fn value_variants<'a>() -> &'a [Self] { - &[Self::Celestia] - } - - fn to_possible_value(&self) -> Option { - match self { - Self::Celestia => Some(PossibleValue::new("celestia").alias("cel")), - } - } -} - -impl FromStr for DataAvailabilityChain { - type Err = anyhow::Error; - - fn from_str(s: &str) -> Result { - match s { - "celestia" | "cel" => Ok(Self::Celestia), - _ => Err(anyhow::anyhow!("unknown da chain: {}", s)), - } - } -} - -impl Display for DataAvailabilityChain { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - DataAvailabilityChain::Celestia => write!(f, "celestia"), - } - } -} diff --git a/bin/saya/src/args/mod.rs b/bin/saya/src/args/mod.rs deleted file mode 100644 index 326c489d55..0000000000 --- a/bin/saya/src/args/mod.rs +++ /dev/null @@ -1,300 +0,0 @@ -//! Saya binary options. -use clap::Parser; -use dojo_utils::keystore::prompt_password_if_needed; -use saya_core::data_availability::celestia::CelestiaConfig; -use saya_core::data_availability::DataAvailabilityConfig; -use saya_core::{ProverAccessKey, SayaConfig, SayaMode, StarknetAccountData}; -use settlement::SettlementOptions; -use starknet::core::utils::cairo_short_string_to_felt; -use starknet::signers::SigningKey; -use starknet_account::StarknetAccountOptions; -use tracing::Subscriber; -use tracing_log::LogTracer; -use tracing_subscriber::{fmt, EnvFilter}; -use url::Url; - -use crate::args::data_availability::{DataAvailabilityChain, DataAvailabilityOptions}; -use crate::args::proof::ProofOptions; - -mod data_availability; -mod proof; -mod settlement; -mod starknet_account; - -#[derive(Parser, Debug)] -#[command(author, version, about, long_about = None)] -#[command(propagate_version = true)] -pub struct SayaArgs { - /// Specify the Katana URL to fetch data from. - #[arg(long)] - #[arg(value_name = "KATANA URL")] - #[arg(help = "The Katana RPC URL to fetch data from.")] - #[arg(default_value = "http://localhost:5050")] - pub rpc_url: Url, - - #[arg(long)] - #[arg(value_name = "STORE PROOFS")] - #[arg(help = "When enabled all proofs are saved as a file.")] - #[arg(default_value_t = false)] - pub store_proofs: bool, - - /// Enable JSON logging. - #[arg(long)] - #[arg(help = "Output logs in JSON format.")] - pub json_log: bool, - - /// Specify a block to start fetching data from. - #[arg(short, long, default_value = "0")] - pub start_block: u64, - #[arg(short, long)] - pub end_block: Option, - - #[arg(short, long, default_value = "1")] - #[arg(help = "The number of blocks to be merged into a single proof.")] - #[arg(conflicts_with = "end_block")] - pub batch_size: usize, - - #[command(flatten)] - #[command(next_help_heading = "Choose the saya execution mode")] - pub settlement: SettlementOptions, - - #[command(flatten)] - #[command(next_help_heading = "Data availability options")] - pub data_availability: DataAvailabilityOptions, - - #[command(flatten)] - #[command(next_help_heading = "Choose the proof pipeline configuration")] - pub proof: ProofOptions, - - #[command(flatten)] - #[command(next_help_heading = "Starknet account configuration for settlement")] - pub starknet_account: StarknetAccountOptions, -} - -impl SayaArgs { - pub fn init_logging(&self) -> Result<(), Box> { - const DEFAULT_LOG_FILTER: &str = "info,saya::core=trace,blockchain=off,provider=off"; - - LogTracer::init()?; - - let builder = fmt::Subscriber::builder().with_env_filter( - EnvFilter::try_from_default_env().or(EnvFilter::try_new(DEFAULT_LOG_FILTER))?, - ); - - let subscriber: Box = if self.json_log { - Box::new(builder.json().finish()) - } else { - Box::new(builder.finish()) - }; - - Ok(tracing::subscriber::set_global_default(subscriber)?) - } -} - -impl TryFrom for SayaConfig { - type Error = Box; - - fn try_from(args: SayaArgs) -> Result { - let skip_publishing_proof = args.data_availability.celestia.skip_publishing_proof; - - let da_config = match args.data_availability.da_chain { - Some(chain) => Some(match chain { - DataAvailabilityChain::Celestia => { - let conf = args.data_availability.celestia; - - DataAvailabilityConfig::Celestia(CelestiaConfig { - node_url: match conf.celestia_node_url { - Some(v) => v, - None => { - return Err(Box::new(std::io::Error::new( - std::io::ErrorKind::InvalidInput, - "Celestia config: Node url is required", - ))); - } - }, - namespace: match conf.celestia_namespace { - Some(v) => v, - None => { - return Err(Box::new(std::io::Error::new( - std::io::ErrorKind::InvalidInput, - "Celestia config: Namespace is required", - ))); - } - }, - node_auth_token: conf.celestia_node_auth_token, - }) - } - }), - None => None, - }; - - // Check if the private key is from keystore or provided directly to follow `sozo` - // conventions. - let private_key = if let Some(pk) = args.starknet_account.signer_key { - pk - } else if let Some(path) = args.starknet_account.signer_keystore_path { - let password = prompt_password_if_needed( - args.starknet_account.signer_keystore_password.as_deref(), - false, - )?; - - SigningKey::from_keystore(path, &password)?.secret_scalar() - } else { - return Err(Box::new(std::io::Error::new( - std::io::ErrorKind::InvalidInput, - "Could not find private key. Please specify the private key or path to the \ - keystore file.", - ))); - }; - - let starknet_account = StarknetAccountData { - starknet_url: args.starknet_account.starknet_url, - chain_id: cairo_short_string_to_felt(&args.starknet_account.chain_id)?, - signer_address: args.starknet_account.signer_address, - signer_key: private_key, - }; - - let prover_key = - ProverAccessKey::from_hex_string(&args.proof.private_key).map_err(|e| { - Box::new(std::io::Error::new(std::io::ErrorKind::InvalidInput, e.to_string())) - })?; - - if args.settlement.saya_mode.0 == SayaMode::Persistent && args.batch_size > 1 { - return Err(Box::new(std::io::Error::new( - std::io::ErrorKind::InvalidInput, - "Batch size must be 1 for persistent mode.", - ))); - } - - let settlement_contract = - if let Some(settlement_contract) = args.settlement.settlement_contract { - settlement_contract - } else { - return Err(Box::new(std::io::Error::new( - std::io::ErrorKind::InvalidInput, - "Persistent mode has to have a `settlement_contract`.", - ))); - }; - - Ok(SayaConfig { - katana_rpc: args.rpc_url, - prover_url: args.proof.prover_url, - prover_key, - store_proofs: args.store_proofs, - block_range: (args.start_block, args.end_block), - batch_size: args.batch_size, - mode: args.settlement.saya_mode.0, - settlement_contract, - data_availability: da_config, - world_address: args.proof.world_address, - fact_registry_address: args.proof.fact_registry_address, - skip_publishing_proof, - starknet_account, - }) - } -} - -#[cfg(test)] -mod tests { - use std::str::FromStr; - - use saya_core::SayaMode; - use starknet_crypto::Felt; - - use super::*; - use crate::args::data_availability::CelestiaOptions; - - #[test] - fn test_saya_config_deserialization() { - let prover_access_key = ProverAccessKey::generate(); - let args = SayaArgs { - rpc_url: Url::parse("http://localhost:5050").unwrap(), - store_proofs: false, - json_log: false, - start_block: 0, - end_block: Some(100), - batch_size: 1, - settlement: SettlementOptions { - saya_mode: settlement::SayaModeArg(SayaMode::Persistent), - settlement_contract: Some( - Felt::from_hex( - "0x65c0d01ef63197f00372cbb93bb32a7c49b70d3e82c5e0880d7912f4421e1c4", - ) - .unwrap(), - ), - }, - data_availability: DataAvailabilityOptions { - da_chain: Some(DataAvailabilityChain::Celestia), - celestia: CelestiaOptions { - celestia_node_url: Url::from_str("http://localhost:26657/").ok(), - celestia_node_auth_token: Some("your_auth_token".to_string()), - celestia_namespace: Some("katana".to_string()), - skip_publishing_proof: true, - }, - }, - proof: ProofOptions { - world_address: Default::default(), - fact_registry_address: Default::default(), - prover_url: Url::parse("http://localhost:5050").unwrap(), - private_key: prover_access_key.signing_key_as_hex_string(), - }, - starknet_account: StarknetAccountOptions { - starknet_url: Url::parse("http://localhost:5030").unwrap(), - chain_id: "SN_SEPOLIA".to_string(), - signer_address: Felt::from_hex( - "0x3aa0a12c62a46a200b1a1211e8cd09b520164104e76d79648ca459cf05db94", - ) - .unwrap(), - signer_key: Some( - Felt::from_hex( - "0x06b41bfa82e791a8b4e6b3ee058cb25b89714e4a23bd9a1ad6e6ba0bbc0b145b", - ) - .unwrap(), - ), - signer_keystore_path: None, - signer_keystore_password: None, - }, - }; - - let config: SayaConfig = args.try_into().unwrap(); - - assert_eq!(config.katana_rpc.as_str(), "http://localhost:5050/"); - assert_eq!(config.prover_url.as_str(), "http://localhost:5050/"); - assert_eq!(config.batch_size, 1); - assert_eq!(config.block_range, (0, Some(100))); - assert_eq!( - config.prover_key.verifying_key_as_hex_string(), - prover_access_key.verifying_key_as_hex_string() - ); - assert!(!config.store_proofs); - assert!(config.skip_publishing_proof); - assert_eq!(config.mode, SayaMode::Persistent); - assert_eq!( - config.settlement_contract.to_hex_string(), - "0x65c0d01ef63197f00372cbb93bb32a7c49b70d3e82c5e0880d7912f4421e1c4" - ); - - if let Some(DataAvailabilityConfig::Celestia(celestia_config)) = config.data_availability { - assert_eq!(celestia_config.node_url.as_str(), "http://localhost:26657/"); - assert_eq!(celestia_config.node_auth_token, Some("your_auth_token".to_string())); - assert_eq!(celestia_config.namespace, "katana"); - } else { - panic!("Expected Celestia config"); - } - - let expected = StarknetAccountData { - starknet_url: Url::parse("http://localhost:5030").unwrap(), - chain_id: Felt::from_hex("0x534e5f5345504f4c4941").unwrap(), - signer_address: Felt::from_hex( - "0x3aa0a12c62a46a200b1a1211e8cd09b520164104e76d79648ca459cf05db94", - ) - .unwrap(), - signer_key: Felt::from_hex( - "0x06b41bfa82e791a8b4e6b3ee058cb25b89714e4a23bd9a1ad6e6ba0bbc0b145b", - ) - .unwrap(), - }; - - assert_eq!(config.starknet_account, expected); - } -} diff --git a/bin/saya/src/args/proof.rs b/bin/saya/src/args/proof.rs deleted file mode 100644 index 543bbdba05..0000000000 --- a/bin/saya/src/args/proof.rs +++ /dev/null @@ -1,25 +0,0 @@ -use clap::Args; -use dojo_utils::env::DOJO_WORLD_ADDRESS_ENV_VAR; -use starknet::core::types::Felt; -use url::Url; - -#[derive(Debug, Args, Clone)] -pub struct ProofOptions { - #[arg(help = "The address of the World contract.")] - #[arg(long = "world", env = DOJO_WORLD_ADDRESS_ENV_VAR)] - pub world_address: Felt, - - #[arg(help = "The address of the Fact Registry contract.")] - #[arg(long = "registry")] - pub fact_registry_address: Felt, - - #[arg(long)] - #[arg(value_name = "PROVER URL")] - #[arg(help = "The Prover URL for remote proving.")] - pub prover_url: Url, - - #[arg(long)] - #[arg(value_name = "PROVER KEY")] - #[arg(help = "An authorized prover key for remote proving.")] - pub private_key: String, -} diff --git a/bin/saya/src/args/settlement.rs b/bin/saya/src/args/settlement.rs deleted file mode 100644 index 235f3d51b4..0000000000 --- a/bin/saya/src/args/settlement.rs +++ /dev/null @@ -1,62 +0,0 @@ -use std::fmt::Display; -use std::str::FromStr; - -use clap::builder::PossibleValue; -use clap::{Args, ValueEnum}; -use saya_core::SayaMode; -use starknet::core::types::Felt; - -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -pub struct SayaModeArg(pub SayaMode); - -#[derive(Debug, Args, Clone)] -pub struct SettlementOptions { - #[arg(help = "Choose either ephemeral or persistent saya mode.")] - #[arg(long = "mode")] - pub saya_mode: SayaModeArg, - - #[arg(help = "The settlement contract address.")] - #[arg(long)] - pub settlement_contract: Option, -} - -impl Default for SayaModeArg { - fn default() -> Self { - SayaModeArg(SayaMode::Ephemeral) - } -} - -impl ValueEnum for SayaModeArg { - fn value_variants<'a>() -> &'a [Self] { - &[SayaModeArg(SayaMode::Ephemeral), SayaModeArg(SayaMode::Persistent)] - } - - fn to_possible_value(&self) -> Option { - match self.0 { - SayaMode::Ephemeral => Some(PossibleValue::new("ephemeral").alias("shard")), - SayaMode::Persistent => Some(PossibleValue::new("persistent")), - } - } -} - -impl FromStr for SayaModeArg { - type Err = anyhow::Error; - - fn from_str(s: &str) -> anyhow::Result { - let mode = match s { - "ephemeral" | "shard" => SayaMode::Ephemeral, - "persistent" => SayaMode::Persistent, - _ => Err(anyhow::anyhow!("unknown da chain: {}", s))?, - }; - Ok(SayaModeArg(mode)) - } -} - -impl Display for SayaModeArg { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self.0 { - SayaMode::Ephemeral => write!(f, "ephemeral"), - SayaMode::Persistent => write!(f, "persistent"), - } - } -} diff --git a/bin/saya/src/args/starknet_account.rs b/bin/saya/src/args/starknet_account.rs deleted file mode 100644 index 524d56a745..0000000000 --- a/bin/saya/src/args/starknet_account.rs +++ /dev/null @@ -1,39 +0,0 @@ -//! Data availability options. - -use clap::Args; -use dojo_utils::env::{ - DOJO_ACCOUNT_ADDRESS_ENV_VAR, DOJO_KEYSTORE_PASSWORD_ENV_VAR, DOJO_KEYSTORE_PATH_ENV_VAR, - DOJO_PRIVATE_KEY_ENV_VAR, STARKNET_RPC_URL_ENV_VAR, -}; -use starknet::core::types::Felt; -use url::Url; - -#[derive(Debug, Args, Clone)] -pub struct StarknetAccountOptions { - #[arg(long, env = STARKNET_RPC_URL_ENV_VAR)] - #[arg(help = "The url of the starknet node.")] - pub starknet_url: Url, - - #[arg(long)] - #[arg(help = "The chain id of the starknet node.")] - #[arg(default_value = "SN_SEPOLIA")] - pub chain_id: String, - - #[arg(long, env = DOJO_ACCOUNT_ADDRESS_ENV_VAR)] - #[arg(help = "The address of the starknet account.")] - pub signer_address: Felt, - - #[arg(long, env = DOJO_PRIVATE_KEY_ENV_VAR)] - #[arg(help = "The private key of the starknet account.")] - pub signer_key: Option, - - #[arg(long = "keystore", env = DOJO_KEYSTORE_PATH_ENV_VAR)] - #[arg(value_name = "PATH")] - #[arg(help = "The path to the keystore file.")] - pub signer_keystore_path: Option, - - #[arg(long = "password", env = DOJO_KEYSTORE_PASSWORD_ENV_VAR)] - #[arg(value_name = "PASSWORD")] - #[arg(help = "The password to the keystore file.")] - pub signer_keystore_password: Option, -} diff --git a/bin/saya/src/args/test_saya_config_file.json b/bin/saya/src/args/test_saya_config_file.json deleted file mode 100644 index ee69c43b81..0000000000 --- a/bin/saya/src/args/test_saya_config_file.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "katana_rpc": "http://localhost:5050", - "prover_url": "http://localhost:1234", - "prover_key": "0xd0fa91f4949e9a777ebec071ca3ca6acc1f5cd6c6827f123b798f94e73425027", - "store_proofs": false, - "batch_size": 1, - "world_address": "0x332b8ff41b1b026991fa9b7f0ec352909f8bc33416b65a80527edc988a9b082", - "fact_registry_address": "0x217746a5f74c2e5b6fa92c97e902d8cd78b1fabf1e8081c4aa0d2fe159bc0eb", - "settlement_contract": "0x65c0d01ef63197f00372cbb93bb32a7c49b70d3e82c5e0880d7912f4421e1c4", - "start_block": 0, - "skip_publishing_proof": true, - "mode": "Persistent", - "block_range": [0, 100], - "data_availability": { - "Celestia": { - "node_url": "http://localhost:26657", - "node_auth_token": "your_auth_token", - "namespace": "katana" - } - }, - "prover": "Stone", - "verifier": "StoneLocal", - "starknet_account": { - "starknet_url": "http://localhost:5030", - "chain_id": "SN_SEPOLIA", - "signer_address": "0x3aa0a12c62a46a200b1a1211e8cd09b520164104e76d79648ca459cf05db94", - "signer_key": "0x06b41bfa82e791a8b4e6b3ee058cb25b89714e4a23bd9a1ad6e6ba0bbc0b145b" - } -} diff --git a/bin/saya/src/main.rs b/bin/saya/src/main.rs deleted file mode 100644 index f023eaeade..0000000000 --- a/bin/saya/src/main.rs +++ /dev/null @@ -1,78 +0,0 @@ -#![warn(unused_crate_dependencies)] - -//! Saya executable entry point. -use clap::Parser; -use console::Style; -use saya_core::{Saya, SayaConfig}; - -mod args; - -use args::SayaArgs; - -#[tokio::main] -async fn main() -> Result<(), Box> { - let args = SayaArgs::parse(); - args.init_logging()?; - - let config = args.try_into()?; - print_intro(&config); - - let mut saya = Saya::new(config).await?; - saya.start().await?; - - // Wait until Ctrl + C is pressed, then shutdown - // ctrl_c().await?; - // handle.stop()?; - - Ok(()) -} - -fn print_intro(config: &SayaConfig) { - println!( - "{}", - Style::new().color256(94).apply_to( - r" - - _______ _______ _______ -( ____ \( ___ )|\ /|( ___ ) -| ( \/| ( ) |( \ / )| ( ) | -| (_____ | (___) | \ (_) / | (___) | -(_____ )| ___ | \ / | ___ | - ) || ( ) | ) ( | ( ) | -/\____) || ) ( | | | | ) ( | -\_______)|/ \| \_/ |/ \| -" - ) - ); - - println!( - r" -CONFIGURATION -============= - ", - ); - - if let Some(da_config) = &config.data_availability { - println!( - r" -DATA AVAILABILITY -================== -{da_config} - ", - ); - } - - println!( - r" -PROVER -================== - ", - ); - - println!( - r" -VERIFIER -================== - ", - ); -} diff --git a/bin/scheduler/Cargo.toml b/bin/scheduler/Cargo.toml deleted file mode 100644 index 4cfebae56b..0000000000 --- a/bin/scheduler/Cargo.toml +++ /dev/null @@ -1,19 +0,0 @@ -[package] -edition.workspace = true -license.workspace = true -name = "scheduler" -repository.workspace = true -version.workspace = true - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -anyhow.workspace = true -clap.workspace = true -katana-primitives.workspace = true -saya-core.workspace = true -serde = { version = "1.0", features = [ "derive" ] } -serde_json = "1.0" -tokio.workspace = true -url = "2.5.0" -starknet.workspace = true diff --git a/bin/scheduler/README.md b/bin/scheduler/README.md deleted file mode 100644 index baa673141b..0000000000 --- a/bin/scheduler/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# `scheduler` - -```sh -cargo run --bin scheduler -- --world --key your_input.json your_input2.json ... your_input2^n -``` -## number of inputs have to be power of 2 -# input format example - -```json -{ - "prev_state_root":101, - "block_number":102, - "block_hash":103, - "config_hash":104, - "message_to_starknet_segment":[105,106,1,1], - "message_to_appchain_segment":[108,109,110,111,1,112], - "nonce_updates":{}, - "storage_updates":{ - "42": { - "2010": 1200, - "2012": 1300 - } - }, - "contract_updates":{}, - "declared_classes":{} -} -``` - -# output -## scheduler outputs map of proofs in result.json file -```json -{ - "proof1": proof, - "proof2": proof, -} -``` \ No newline at end of file diff --git a/bin/scheduler/src/main.rs b/bin/scheduler/src/main.rs deleted file mode 100644 index 7e12684f0a..0000000000 --- a/bin/scheduler/src/main.rs +++ /dev/null @@ -1,85 +0,0 @@ -use std::fs; -use std::sync::Arc; - -use clap::Parser; -use saya_core::prover::{HttpProverParams, ProgramInput}; -use saya_core::ProverAccessKey; -use serde::{Deserialize, Serialize}; -use serde_json::{Map, Value}; -use starknet::core::types::Felt; -use tokio::fs::File; -use tokio::io::AsyncWriteExt; - -#[derive(Parser, Debug, Serialize, Deserialize)] -#[clap(author, version, about, long_about = None)] -pub struct CliInput { - #[arg(short, long)] - pub world: Felt, - #[arg(short, long)] - pub key: String, - pub files: Vec, -} - -fn read_json_file(file_path: &str) -> Value { - let data = fs::read_to_string(file_path).expect("Unable to read file"); - serde_json::from_str(&data).expect("Unable to parse JSON") -} - -fn program_input_from_json(json_data: Value) -> ProgramInput { - serde_json::from_value(json_data).unwrap() -} - -async fn _prove_to_json(result: Vec) { - let mut file = File::create("result.json").await.expect("Failed to create file"); - - let mut json_map = Map::new(); - for (index, elem) in result.iter().enumerate() { - let v: Value = serde_json::from_str(elem).expect("Failed to parse JSON"); - json_map.insert(format!("proof {}", index + 1), v); // Labels start from "proof 1", "proof 2", ... - } - - let serialized = serde_json::to_string_pretty(&json_map).expect("Failed to serialize result"); - - file.write_all(serialized.as_bytes()).await.expect("Failed to write to file"); -} - -// Entry point of the program with async main function to handle I/O operations. - -#[tokio::main] -async fn main() -> anyhow::Result<()> { - use url::Url; - let args = CliInput::parse(); // Parse CLI arguments. - if args.files.is_empty() { - eprintln!("No files provided"); - std::process::exit(1); - } - if !args.files.len().is_power_of_two() { - eprintln!("Only 2^n files are supported. Got {} files", args.files.len()); - std::process::exit(1); - } - - // Process each file, converting JSON data to ProgramInput. - let _inputs: Vec = args - .files - .iter() - .map(|file| { - let json_data = read_json_file(file.to_str().unwrap()); - program_input_from_json(json_data) - }) - .collect(); - let _prover_params = Arc::new(HttpProverParams { - prover_url: Url::parse("http://localhost:3000").unwrap(), - prover_key: ProverAccessKey::from_hex_string(&args.key).unwrap(), - }); - - // let (proof, _) = - // Scheduler::merge(inputs, args.world, - // ProverIdentifier::Http(prover_params)).await.unwrap(); - - // let proof = - // proof.to_felts().into_iter().map(|f| f.to_hex_string()).collect::>().join(" "); - - // println!("{}", proof); - - Ok(()) -} diff --git a/crates/saya/README.md b/crates/saya/README.md deleted file mode 100644 index a291ec3ca2..0000000000 --- a/crates/saya/README.md +++ /dev/null @@ -1,75 +0,0 @@ -# Saya: settlement service - -Saya is a settlement service for Katana. - -## Data availability (DA) - -Katana being a Starknet sequencer, the [state update](https://docs.starknet.io/documentation/architecture_and_concepts/Network_Architecture/on-chain-data) have to be published on the data availability layer. - -Saya is responsible of fetching the state updates from katana to then publish them on the configured DA layer. - -## Cairo execution trace - -When Katana operates, the internal Starknet state of Katana is updated at each transaction being executed. However, this execution is not run in `proof` mode. This means we have to execute a program named `Starknet OS` where every transaction of a block is replayed. - -In the case of the `Starknet OS` run, the `proof` mode is enabled and thus we obtain a cairo execution trace which attest of the correct execution of every transaction of the block. - -Saya use [SNOS in rust](https://github.com/keep-starknet-strange/snos) to run the `Starknet OS` with the Cairo VM. - -Once the cairo execution trace (PIE format) is generated, it can be sent to a prover. - -It's important to note that at this point, we can compute what's called a `fact`, which will be used to generate the proof on. -This `fact` is a hash of the class hash of `Starknet OS` cairo program, combined to the hash of the program's output. -The hash function depends on which verifier will be used (keccak, perdersen, poseidon, ...). - -## Prover - -The prover is the service responsible of generating a proof for the given `Starknet OS` output. - -Saya will be able to use several provers: - -- **SHARP**: a StarkWare shared proving service. This service generates the proof AND send the proof and the facts on Ethereum directly. -- **Stone**: [Stone](https://github.com/starkware-libs/stone-prover) is being used to generate the proof associated with the [cairo verifier written by Herodotus](https://github.com/HerodotusDev/cairo-verifier). -- **Platinum**: The [Platinum](https://github.com/lambdaclass/lambdaworks) prover from LambdaClass. - -## Verifier and facts registry - -The on-chain verifier options so far are: - -- **Ethereum**: StarkWare contracts on Ethereum which are tailored to receive the SHARP proofs and facts. -- **Starknet**: Soon, the cairo verifier from Herodotus will enable verification on Starknet. - -A verifier comes along a fact registry. A fact registry keep track of which fact (the hash of the program class hash of `Starknet OS` in our case and the hash of it's output) has been proven. - -## Library architecture - -Currently, Saya contains only module to have the first skeleton of a working service. The idea is to then migrate into crates for each of the components. - -The next big step is to have compatibility with SNOS in rust, which is the library responsible of generating the cairo execution trace. - -Some work to be done: - -1. Add a RPC server to query data from Saya and current progress. -2. Add some parallelism when it's possible, as Saya will inevitably be lagging due to the settlement layer being slower than Katana. - -## Dependencies - -SNOS, responsible for the cairo execution trace generation, works with Cairo VM main branch with a specific feature. - -As one of it's inputs, SNOS in rust requires a `Vec`, containing the execution info of each transaction of the block. This info is not (yet) stored by Katana neither serializable. - -To ensure we've the exact same result, Saya must run the same version (or at least compatible) of the Cairo VM of Katana to replay all the transaction and get their `TransactionExecutionInfo`. - -In new Cairo VM version, there are breaking changes as mentioned in the release not, which implies a bump of Cairo VM for Katana and at the same time we could bump to cairo `2.5.0`. -However, papyrus and blockifier which we depend on are still in `-dev` version, where also some breaking changes must be addressed. - -- Cairo VM (currently dojo is using 0.8, and others are in 0.9) -- Blockifier (uses Cairo VM and cairo-lang `-dev`) -- Papyrus (used by blockifier and use blockifier and cairo-lang `-dev`) -- cairo-lang (we should support `2.5` now) -- scarb (breaking changes between 2.4 and 2.5 to be addresses, not required to only build saya and SNOS) - -## Additional documentation - -[Hackmd note](https://hackmd.io/@glihm/saya) -[Overview figma](https://www.figma.com/file/UiQkKjOpACcWihQbF70BbF/Technical-overview?type=whiteboard&node-id=0%3A1&t=0ebbPYytFmDfAkj5-1) diff --git a/crates/saya/core/Cargo.toml b/crates/saya/core/Cargo.toml deleted file mode 100644 index 8c2ba0391c..0000000000 --- a/crates/saya/core/Cargo.toml +++ /dev/null @@ -1,39 +0,0 @@ -[package] -description = "Saya core implementation." -edition.workspace = true -license-file.workspace = true -name = "saya-core" -repository.workspace = true -version.workspace = true - -[dependencies] -katana-primitives.workspace = true -katana-provider.workspace = true -katana-rpc-types.workspace = true -saya-provider.workspace = true - -anyhow.workspace = true -async-trait.workspace = true -bigdecimal.workspace = true -dojo-utils.workspace = true -futures.workspace = true -itertools.workspace = true -serde.workspace = true -serde_json.workspace = true -starknet-crypto.workspace = true -starknet.workspace = true -thiserror.workspace = true -tokio.workspace = true -tracing.workspace = true -url.workspace = true -# TODO: use features for each possible DA. -celestia-rpc = "0.4.0" -celestia-types = "0.5.0" - -cairo-proof-parser = { git = "https://github.com/cartridge-gg/cairo-proof-parser.git", rev = "f175d58" } -cairo1-playground = { git = "https://github.com/chudkowsky/cairo1-playground.git", rev = "3fda965" } -herodotus_sharp_playground = { git = "https://github.com/chudkowsky/herodotus_sharp_playground.git", rev = "db64bfd" } -prover-sdk = { git = "https://github.com/cartridge-gg/http-prover", rev = "f239ade" } -reqwest.workspace = true -serde-felt = { git = "https://github.com/cartridge-gg/cairo-proof-parser.git", rev = "f175d58" } -tempdir = "0.3.7" diff --git a/crates/saya/core/src/blockchain/mod.rs b/crates/saya/core/src/blockchain/mod.rs deleted file mode 100644 index 206f8c181c..0000000000 --- a/crates/saya/core/src/blockchain/mod.rs +++ /dev/null @@ -1,128 +0,0 @@ -//! Blockchain fetched from Katana. - -use katana_primitives::block::{BlockHashOrNumber, BlockIdOrTag, BlockTag, SealedBlockWithStatus}; -use katana_primitives::state::StateUpdatesWithClasses; -use katana_provider::providers::db::DbProvider; -use katana_provider::traits::block::{BlockProvider, BlockWriter}; -use katana_provider::traits::contract::ContractClassWriter; -use katana_provider::traits::env::BlockEnvProvider; -use katana_provider::traits::state::{StateFactoryProvider, StateProvider, StateWriter}; -use katana_provider::traits::state_update::StateUpdateProvider; -use katana_provider::traits::transaction::{ - ReceiptProvider, TransactionProvider, TransactionStatusProvider, TransactionsProviderExt, -}; -use katana_provider::BlockchainProvider; - -use crate::error::{Error as SayaError, SayaResult}; - -pub trait Database: - BlockProvider - + BlockWriter - + TransactionProvider - + TransactionStatusProvider - + TransactionsProviderExt - + ReceiptProvider - + StateUpdateProvider - + StateWriter - + ContractClassWriter - + StateFactoryProvider - + BlockEnvProvider - + 'static - + Send - + Sync -{ -} - -impl Database for T where - T: BlockProvider - + BlockWriter - + TransactionProvider - + TransactionStatusProvider - + TransactionsProviderExt - + ReceiptProvider - + StateUpdateProvider - + StateWriter - + ContractClassWriter - + StateFactoryProvider - + BlockEnvProvider - + 'static - + Send - + Sync -{ -} - -/// Represents the whole blockchain fetched from Katana. -#[allow(missing_debug_implementations)] -pub struct Blockchain { - inner: BlockchainProvider>, -} - -impl Default for Blockchain { - fn default() -> Self { - Self::new() - } -} - -impl Blockchain { - /// Initializes a new instance of [`Blockchain`]. - pub fn new() -> Self { - Self { inner: BlockchainProvider::new(Box::new(DbProvider::new_ephemeral())) } - } - - /// Returns the internal provider. - pub fn provider(&self) -> &BlockchainProvider> { - &self.inner - } - - /// Retrieves historical state for the given block. - /// - /// # Arguments - /// - /// * `block_id` - The block id at which the state must be retrieved. - pub fn state(&self, block_id: &BlockIdOrTag) -> SayaResult> { - let provider = self.provider(); - - match block_id { - BlockIdOrTag::Tag(BlockTag::Latest) => { - let state = StateFactoryProvider::latest(provider)?; - Ok(state) - } - - BlockIdOrTag::Hash(hash) => { - StateFactoryProvider::historical(provider, BlockHashOrNumber::Hash(*hash))? - .ok_or(SayaError::BlockNotFound(*block_id)) - } - - BlockIdOrTag::Number(num) => { - StateFactoryProvider::historical(provider, BlockHashOrNumber::Num(*num))? - .ok_or(SayaError::BlockNotFound(*block_id)) - } - - BlockIdOrTag::Tag(BlockTag::Pending) => { - panic!("Pending block is not supported"); - } - } - } - - /// Updates the [`Blockchain`] internal state adding the given [`SealedBlockWithStatus`] - /// and the associated [`StateUpdatesWithClasses`]. - /// - /// Currently receipts are ignored. - /// - /// # Arguments - /// - /// * `block` - The block to add. - /// * `states` - The state updates associated with the block. - pub fn update_state_with_block( - &mut self, - block: SealedBlockWithStatus, - states: StateUpdatesWithClasses, - ) -> SayaResult<()> { - let provider = self.provider(); - // Receipts are not supported currently. We may need them if some - // information about the transaction is missing. - let receipts = vec![]; - - Ok(provider.insert_block_with_states_and_receipts(block, states, receipts, vec![])?) - } -} diff --git a/crates/saya/core/src/data_availability/celestia/mod.rs b/crates/saya/core/src/data_availability/celestia/mod.rs deleted file mode 100644 index a074e074b1..0000000000 --- a/crates/saya/core/src/data_availability/celestia/mod.rs +++ /dev/null @@ -1,120 +0,0 @@ -//! Celestia client to publish state update data. -use std::fmt::Display; - -use async_trait::async_trait; -use celestia_rpc::{BlobClient, Client}; -use celestia_types::nmt::Namespace; -use celestia_types::{Blob, Commitment, TxConfig}; -use serde::{Deserialize, Serialize}; -use starknet::core::types::Felt; -use url::Url; - -use crate::data_availability::error::{DataAvailabilityResult, Error}; -use crate::data_availability::{DataAvailabilityClient, DataAvailabilityMode}; -use crate::prover::persistent::PublishedStateDiff; - -#[derive(Debug, Clone, Deserialize, Serialize)] -pub struct CelestiaConfig { - pub node_url: Url, - pub node_auth_token: Option, - pub namespace: String, -} - -impl Display for CelestiaConfig { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - let node_url = &self.node_url; - let auth_token = self.node_auth_token.clone().unwrap_or("not set".to_string()); - let namespace = &self.namespace; - write!(f, "* node url: {node_url}\n* namespace: {namespace}\n* auth token: {auth_token}") - } -} - -#[allow(missing_debug_implementations)] -pub struct CelestiaClient { - client: Client, - mode: DataAvailabilityMode, - namespace: Namespace, -} - -impl CelestiaClient { - pub async fn new(config: CelestiaConfig) -> DataAvailabilityResult { - Ok(Self { - client: Client::new(config.node_url.as_ref(), config.node_auth_token.as_deref()) - .await?, - mode: DataAvailabilityMode::Validium, - namespace: Namespace::new_v0(config.namespace.as_bytes())?, - }) - } -} - -#[async_trait] -impl DataAvailabilityClient for CelestiaClient { - fn mode(&self) -> DataAvailabilityMode { - self.mode - } - - async fn publish_state_diff_felts( - &self, - state_diff: &[Felt], - ) -> DataAvailabilityResult<(Commitment, u64)> { - let bytes: Vec = state_diff.iter().flat_map(|fe| fe.to_bytes_be().to_vec()).collect(); - let commitment = Commitment::from_blob(self.namespace, 0, &bytes)?; - let blob = Blob::new(self.namespace, bytes)?; - - // TODO: we may want to use `blob_get` to ensure the state diff has been published - // correctly. - - let height = self - .client - .blob_submit(&[blob], TxConfig::default()) - .await - .map_err(|e| Error::Client(format!("Celestia RPC error: {e}")))?; - Ok((commitment, height)) - } - - async fn publish_state_diff_and_proof_felts( - &self, - state_diff: &[Felt], - state_diff_proof: &[Felt], - ) -> DataAvailabilityResult<(Commitment, u64)> { - let bytes: Vec = state_diff.iter().flat_map(|fe| fe.to_bytes_be().to_vec()).collect(); - let commitment = Commitment::from_blob(self.namespace, 0, &bytes)?; - let blob = Blob::new(self.namespace, bytes)?; - let proof_bytes: Vec = - state_diff_proof.iter().flat_map(|fe| fe.to_bytes_be().to_vec()).collect(); - let proof_blob = Blob::new(self.namespace, proof_bytes)?; - - let height = self - .client - .blob_submit(&[blob, proof_blob], TxConfig::default()) - .await - .map_err(|e| Error::Client(format!("Celestia RPC error: {e}")))?; - Ok((commitment, height)) - } - - async fn publish_checkpoint( - &self, - published_state_diff: PublishedStateDiff, - ) -> DataAvailabilityResult<(Commitment, u64)> { - let bytes = serde_json::to_vec(&published_state_diff).unwrap(); - let commitment = Commitment::from_blob(self.namespace, 0, &bytes)?; - let height = self - .client - .blob_submit(&[Blob::new(self.namespace, bytes)?], TxConfig::default()) - .await - .map_err(|e| Error::Client(format!("Celestia RPC error: {e}")))?; - Ok((commitment, height)) - } -} - -impl From for Error { - fn from(e: celestia_rpc::Error) -> Self { - Self::Client(format!("Celestia RPC error: {e}")) - } -} - -impl From for Error { - fn from(e: celestia_types::Error) -> Self { - Self::Client(format!("Celestia types error: {e}")) - } -} diff --git a/crates/saya/core/src/data_availability/error.rs b/crates/saya/core/src/data_availability/error.rs deleted file mode 100644 index 9177ff7b68..0000000000 --- a/crates/saya/core/src/data_availability/error.rs +++ /dev/null @@ -1,11 +0,0 @@ -#[derive(thiserror::Error, Debug)] -pub enum Error { - #[error("Data availability error occurred: {0}")] - Generic(String), - #[error("Data availability client error: {0}")] - Client(String), - #[error("Invalid data availability chain: {0}")] - InvalidChain(String), -} - -pub type DataAvailabilityResult = Result; diff --git a/crates/saya/core/src/data_availability/mod.rs b/crates/saya/core/src/data_availability/mod.rs deleted file mode 100644 index f22609153e..0000000000 --- a/crates/saya/core/src/data_availability/mod.rs +++ /dev/null @@ -1,108 +0,0 @@ -//! Data availability. -//! -//! For a starknet based sequencer, the data posted to the DA -//! is the state diff as encoded here: -//! . -use std::fmt::Display; - -use async_trait::async_trait; -use celestia_types::Commitment; -use serde::{Deserialize, Serialize}; -use starknet::core::types::Felt; - -pub mod celestia; - -pub mod error; -use error::DataAvailabilityResult; - -use crate::prover::persistent::PublishedStateDiff; - -/// All possible chains configuration for data availability. -#[derive(Debug, Clone, Deserialize, Serialize)] -pub enum DataAvailabilityConfig { - Celestia(celestia::CelestiaConfig), -} - -impl Display for DataAvailabilityConfig { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - DataAvailabilityConfig::Celestia(conf) => { - write!(f, "chain: celestia\n{conf}") - } - } - } -} - -/// The data availability mode. -#[derive(Debug, Copy, Clone)] -pub enum DataAvailabilityMode { - /// The data are posted on the verification layer. - Rollup, - /// The data are posted off-chain (not the verification layer). - Validium, - /// The data are posted using one of rollup or validium, at the - /// transaction level. - Volition, -} - -/// The data availbility client in charge -/// of interacting with the DA layer. -#[async_trait] -pub trait DataAvailabilityClient { - /// Retrieves the client's DA mode. - fn mode(&self) -> DataAvailabilityMode; - - /// Publishes data on the DA layer. - /// Returns the block height in which the state diff was included. - /// - /// # Arguments - /// - /// * `state_diff` - An array of felt representing the data to be published on the DA layer. We - /// use felt as all fields inside the state diff can be expressed as a felt. Nonce and updates - /// count are limited to 64 bits anyway. - async fn publish_state_diff_felts( - &self, - state_diff: &[Felt], - ) -> DataAvailabilityResult<(Commitment, u64)>; - - /// Publishes both data and transition proof on the DA layer atomically. - /// Returns the block height in which the state diff was included. - /// - /// # Arguments - /// - /// * `state_diff` - An array of felt representing the data to be published on the DA layer. We - /// use felt as all fields inside the state diff can be expressed as a felt. Nonce and updates - /// count are limited to 64 bits anyway. - /// * `state_diff_proof` - The serialized transition proof corresponding to the `state_diff`. - async fn publish_state_diff_and_proof_felts( - &self, - state_diff: &[Felt], - state_diff_proof: &[Felt], - ) -> DataAvailabilityResult<(Commitment, u64)>; - - /// Publishes a JSON-formatted proof on the DA layer. - /// Returns the block height in which the proof was included. - /// - /// # Arguments - /// - /// * `state_diff` - A JSON string representing the proof to be published. - async fn publish_checkpoint( - &self, - state_diff: PublishedStateDiff, - ) -> DataAvailabilityResult<(Commitment, u64)>; -} - -/// Initializes a [`DataAvailabilityClient`] from a [`DataAvailabilityConfig`]. -/// -/// # Arguments -/// -/// * `config` - The data availability configuration. -pub async fn client_from_config( - config: DataAvailabilityConfig, -) -> DataAvailabilityResult> { - match config { - DataAvailabilityConfig::Celestia(c) => { - Ok(Box::new(celestia::CelestiaClient::new(c).await?)) - } - } -} diff --git a/crates/saya/core/src/dojo_os/mod.rs b/crates/saya/core/src/dojo_os/mod.rs deleted file mode 100644 index 025fa607d3..0000000000 --- a/crates/saya/core/src/dojo_os/mod.rs +++ /dev/null @@ -1,97 +0,0 @@ -//! Starknet OS types. -// SNOS is based on blockifier, which is not in sync with -// current primitives. -// And SNOS is for now not used. This work must be resume once -// SNOS is actualized. -// mod felt; -// pub mod input; -// pub mod transaction; - -pub mod piltover; - -use std::time::Duration; - -use dojo_utils::{TransactionExt, TxnConfig}; -use itertools::chain; -use starknet::accounts::{Account, ConnectedAccount}; -use starknet::core::types::{Call, Felt, TransactionExecutionStatus, TransactionStatus}; -use starknet::core::utils::get_selector_from_name; -use starknet::providers::Provider; -use tokio::time::sleep; -use tracing::trace; - -use crate::error::Error; -use crate::{retry, SayaStarknetAccount, LOG_TARGET}; - -pub async fn starknet_apply_diffs( - world: Felt, - new_state: Vec, - program_output: Vec, - program_hash: Felt, - account: &SayaStarknetAccount, - nonce: Felt, -) -> Result { - let calldata: Vec = chain![ - [Felt::from(new_state.len() as u64 / 2)].into_iter(), - new_state.clone().into_iter(), - program_output.into_iter(), - [program_hash], - ] - .collect(); - - let txn_config = TxnConfig { wait: true, receipt: true, ..Default::default() }; - let tx = retry!( - account - .execute_v1(vec![Call { - to: world, - selector: get_selector_from_name("upgrade_state").expect("invalid selector"), - calldata: calldata.clone(), - }]) - .nonce(nonce) - .send_with_cfg(&txn_config) - ) - .map_err(|e| Error::TransactionFailed(e.to_string()))?; - - let start_fetching = std::time::Instant::now(); - let wait_for = Duration::from_secs(60); - let execution_status = loop { - if start_fetching.elapsed() > wait_for { - return Err(Error::TimeoutError(format!( - "Transaction not mined in {} seconds.", - wait_for.as_secs() - ))); - } - - let status = match account.provider().get_transaction_status(tx.transaction_hash).await { - Ok(status) => status, - Err(_e) => { - sleep(Duration::from_secs(1)).await; - continue; - } - }; - - break match status { - TransactionStatus::Received => { - println!("Transaction received."); - sleep(Duration::from_secs(1)).await; - continue; - } - TransactionStatus::Rejected => { - return Err(Error::TransactionRejected(tx.transaction_hash.to_string())); - } - TransactionStatus::AcceptedOnL2(execution_status) => execution_status, - TransactionStatus::AcceptedOnL1(execution_status) => execution_status, - }; - }; - - match execution_status { - TransactionExecutionStatus::Succeeded => { - trace!(target: LOG_TARGET, "Transaction accepted on L2."); - } - TransactionExecutionStatus::Reverted => { - return Err(Error::TransactionFailed(tx.transaction_hash.to_string())); - } - } - - Ok(format!("{:#x}", tx.transaction_hash)) -} diff --git a/crates/saya/core/src/dojo_os/piltover.rs b/crates/saya/core/src/dojo_os/piltover.rs deleted file mode 100644 index 79e13015d0..0000000000 --- a/crates/saya/core/src/dojo_os/piltover.rs +++ /dev/null @@ -1,49 +0,0 @@ -use std::time::Duration; - -use cairo_proof_parser::to_felts; -use dojo_utils::{TransactionExt, TxnConfig}; -use serde::Serialize; -use starknet::accounts::{Account, ConnectedAccount}; -use starknet::core::types::Call; -use starknet::core::utils::get_selector_from_name; -use starknet_crypto::Felt; -use tokio::time::sleep; -use tracing::trace; - -use crate::error::{Error, ProverError}; -use crate::verifier::utils::wait_for_sent_transaction; -use crate::{retry, SayaStarknetAccount, LOG_TARGET}; - -#[derive(Debug, Serialize)] -pub struct PiltoverCalldata { - pub program_output: Vec, - pub onchain_data_hash: Felt, - pub onchain_data_size: (Felt, Felt), // U256 -} - -pub async fn starknet_apply_piltover( - calldata: PiltoverCalldata, - contract: Felt, - account: &SayaStarknetAccount, -) -> Result<(), Error> { - sleep(Duration::from_secs(2)).await; - let nonce = account.get_nonce().await?; - let txn_config = TxnConfig { wait: true, receipt: true, ..Default::default() }; - let calldata = to_felts(&calldata)?; - trace!(target: LOG_TARGET, "Sending `update_state` piltover transaction to contract {:#x}", contract); - let tx = retry!( - account - .execute_v1(vec![Call { - to: contract, - selector: get_selector_from_name("update_state").expect("invalid selector"), - calldata: calldata.clone() - }]) - .nonce(nonce) - .send_with_cfg(&txn_config) - ) - .map_err(|e| ProverError::SendTransactionError(e.to_string()))?; - trace!(target: LOG_TARGET, "Sent `update_state` piltover transaction {:#x}", tx.transaction_hash); - wait_for_sent_transaction(tx, account).await?; - - Ok(()) -} diff --git a/crates/saya/core/src/error.rs b/crates/saya/core/src/error.rs deleted file mode 100644 index dda5ff6e65..0000000000 --- a/crates/saya/core/src/error.rs +++ /dev/null @@ -1,61 +0,0 @@ -use std::env; - -#[derive(thiserror::Error, Debug)] -pub enum Error { - #[error(transparent)] - Anyhow(#[from] anyhow::Error), - #[error(transparent)] - DataAvailability(#[from] crate::data_availability::error::Error), - #[error("Error from Katana client: {0}")] - KatanaClient(String), - #[error(transparent)] - KatanaProvider(#[from] katana_provider::error::ProviderError), - #[error(transparent)] - SayaProvider(#[from] saya_provider::error::ProviderError), - #[error("Block {0:?} not found.")] - BlockNotFound(katana_primitives::block::BlockIdOrTag), - // #[error(transparent)] - // Snos(#[from] snos::error::SnOsError), - #[error("Invalid chain_id ")] - InvalidChainId, - #[error(transparent)] - ProverError(#[from] ProverError), - #[error("{0}")] - TimeoutError(String), - #[error("{0}")] - TransactionRejected(String), - #[error("{0}")] - TransactionFailed(String), - #[error(transparent)] - SerdeFeltError(#[from] serde_felt::Error), - #[error(transparent)] - IoError(#[from] std::io::Error), - #[error(transparent)] - SerdeJsonError(#[from] serde_json::Error), -} - -pub type SayaResult = Result; - -#[derive(thiserror::Error, Debug)] -pub enum ProverError { - #[error(transparent)] - ProverSdkError(#[from] prover_sdk::errors::SdkErrors), - #[error(transparent)] - SerdeJsonError(#[from] serde_json::Error), - #[error(transparent)] - EnvVarError(#[from] env::VarError), - #[error(transparent)] - IoError(#[from] std::io::Error), - #[error(transparent)] - RequestError(#[from] reqwest::Error), - #[error("Failed to convert calls to felts: {0}")] - SerdeFeltError(String), - #[error(transparent)] - SharpError(#[from] herodotus_sharp_playground::SharpSdkError), - #[error(transparent)] - Cairo1PlaygroundError(#[from] cairo1_playground::error::Error), - #[error("Failed to send transaction: {0}")] - SendTransactionError(String), - #[error("Failed to prove: {0}")] - ProvingFailed(String), -} diff --git a/crates/saya/core/src/lib.rs b/crates/saya/core/src/lib.rs deleted file mode 100644 index bcde649d9b..0000000000 --- a/crates/saya/core/src/lib.rs +++ /dev/null @@ -1,573 +0,0 @@ -//! Saya core library. - -#![cfg_attr(not(test), warn(unused_crate_dependencies))] - -use std::collections::HashMap; -use std::ops::RangeInclusive; -use std::sync::Arc; - -use anyhow::Context; -use cairo_proof_parser::from_felts; -use celestia_types::Commitment; -use dojo_os::piltover::{starknet_apply_piltover, PiltoverCalldata}; -use futures::future; -use itertools::Itertools; -use katana_primitives::block::{BlockNumber, FinalityStatus, SealedBlock, SealedBlockWithStatus}; -use katana_primitives::state::StateUpdatesWithClasses; -use katana_primitives::transaction::Tx; -use katana_rpc_types::trace::TxExecutionInfo; -use prover::persistent::{PublishedStateDiff, StarknetOsOutput}; -use prover::{extract_execute_calls, HttpProverParams, ProveProgram, ProverIdentifier}; -pub use prover_sdk::access_key::ProverAccessKey; -use prover_sdk::ProverResult; -use saya_provider::rpc::JsonRpcProvider; -use saya_provider::Provider as SayaProvider; -use serde::{Deserialize, Serialize}; -use starknet::accounts::{ExecutionEncoding, SingleOwnerAccount}; -use starknet::core::types::{BlockId, BlockTag, Call}; -use starknet::core::utils::cairo_short_string_to_felt; -use starknet::providers::jsonrpc::HttpTransport; -use starknet::providers::JsonRpcClient; -use starknet::signers::{LocalWallet, SigningKey}; -use starknet_crypto::{poseidon_hash_many, Felt}; -use tokio::fs::File; -use tokio::io::AsyncWriteExt; -use tracing::{error, info, trace}; -use url::Url; -use verifier::VerifierIdentifier; - -use crate::blockchain::Blockchain; -use crate::data_availability::{DataAvailabilityClient, DataAvailabilityConfig}; -use crate::error::SayaResult; -use crate::prover::{extract_messages, ProgramInput}; - -pub mod blockchain; -pub mod data_availability; -pub mod dojo_os; -pub mod error; -pub mod macros; -pub mod prover; -pub mod verifier; - -pub(crate) const LOG_TARGET: &str = "saya::core"; - -/// Saya's main configuration. -#[derive(Debug, Deserialize, Serialize)] -pub struct SayaConfig { - pub katana_rpc: Url, - pub prover_url: Url, - pub prover_key: ProverAccessKey, - pub mode: SayaMode, - pub settlement_contract: Felt, - pub store_proofs: bool, - pub block_range: (u64, Option), - pub batch_size: usize, - pub data_availability: Option, - pub world_address: Felt, - pub fact_registry_address: Felt, - pub skip_publishing_proof: bool, - pub starknet_account: StarknetAccountData, -} - -type SayaStarknetAccount = SingleOwnerAccount, LocalWallet>; - -pub fn felt_string_deserializer<'de, D>(deserializer: D) -> Result -where - D: serde::Deserializer<'de>, -{ - let s = String::deserialize(deserializer)?; - cairo_short_string_to_felt(&s).map_err(serde::de::Error::custom) -} - -/// Saya. -#[allow(missing_debug_implementations)] -pub struct Saya { - /// The main Saya configuration. - config: SayaConfig, - /// The data availability client. - da_client: Option>, - /// The provider to fetch dojo from Katana. - provider: Arc, - /// The blockchain state. - blockchain: Blockchain, - /// The proving backend identifier. - prover_identifier: ProverIdentifier, - prev_commitment: Option, - prev_height: Option, -} - -struct FetchedBlockInfo { - block_number: BlockNumber, - block: SealedBlock, - prev_state_root: Felt, - state_updates: StateUpdatesWithClasses, - exec_infos: Vec, -} - -impl Saya { - /// Initializes a new [`Saya`] instance from the given [`SayaConfig`]. - /// - /// # Arguments - /// - /// * `config` - The main Saya configuration. - pub async fn new(config: SayaConfig) -> SayaResult { - // Currently it's only RPC. But it can be the database - // file directly in the future or other transports. - let provider = Arc::new(JsonRpcProvider::new(config.katana_rpc.clone()).await?); - - let da_client = if let Some(da_conf) = &config.data_availability { - Some(data_availability::client_from_config(da_conf.clone()).await?) - } else { - None - }; - - let blockchain = Blockchain::new(); - - let prover_identifier = ProverIdentifier::Http(Arc::new(HttpProverParams { - prover_url: config.prover_url.clone(), - prover_key: config.prover_key.clone(), - })); - - Ok(Self { - config, - da_client, - provider, - blockchain, - prover_identifier, - prev_commitment: None, - prev_height: None, - }) - } - - /// Starts the Saya mainloop to fetch and process data. - /// - /// Optims: - /// First naive version to have an overview of all the components - /// and the process. - /// Should be refacto in crates as necessary. - pub async fn start(&mut self) -> SayaResult<()> { - let poll_interval_secs = 1; - - let mut block = self.config.block_range.0.max(1); // Genesis block is not proven. We advance to block 1 - - let block_before_the_first = self.provider.fetch_block(block - 1).await; - let mut previous_block_state_root = block_before_the_first?.header.state_root; - let mut mock_state_hash = Felt::from(0u64); - - loop { - let latest_block = match self.provider.block_number().await { - Ok(block_number) => block_number, - Err(e) => { - error!(target: LOG_TARGET, error = ?e, "Fetching block."); - tokio::time::sleep(tokio::time::Duration::from_secs(poll_interval_secs)).await; - continue; - } - }; - - let (minimum_expected, maximum_expected) = match self.config.mode { - SayaMode::Ephemeral => { - let last = self.config.block_range.1.unwrap_or(block); - (last, last) // Only one proof is generated, no need to fetch earlier. - } - // One proof per batch, waiting until all are available. - SayaMode::Persistent => { - (block, latest_block.min(block + self.config.batch_size as u64 - 1)) - } - }; - - if minimum_expected > latest_block { - trace!(target: LOG_TARGET, block_number = latest_block + 1, "Waiting for block."); - tokio::time::sleep(tokio::time::Duration::from_secs(poll_interval_secs)).await; - continue; - } - - let (last_state_root, params) = - self.prefetch_blocks(block..=maximum_expected, previous_block_state_root).await?; - - let state_root_change = (previous_block_state_root, last_state_root); - - previous_block_state_root = last_state_root; - - // Updating the local state sequentially, as there is only one instance of - // `self.blockchain` This part does no actual proving, so should not be a - // problem - - match self.config.mode { - SayaMode::Persistent => { - let num_blocks = params.len() as u64; - mock_state_hash += Felt::ONE; - - info!(target: LOG_TARGET, "Proving {} blocks.", num_blocks); - - // We might want to prove the signatures as well. - // let proof = self.prover_identifier.prove_snos(input).await?; - - let input = StarknetOsOutput { - initial_root: mock_state_hash, - final_root: mock_state_hash + Felt::ONE, - prev_block_number: Felt::from(block), - new_block_number: Felt::from(block) + Felt::ONE, - prev_block_hash: Felt::from(1u64), - new_block_hash: Felt::from(2u64), - os_program_hash: Felt::from(42u64), - starknet_os_config_hash: Felt::from(4u64), - use_kzg_da: Felt::from(5u64), - full_output: Felt::from(6u64), - messages_to_l1: vec![], - messages_to_l2: vec![], - contracts: vec![], - classes: HashMap::new().into_iter().collect(), - }; - - let proof = self.prover_identifier.prove_echo(input).await?; - trace!(target: LOG_TARGET, "Proof size: {:?}", proof.serialized_proof.len()); - - if self.config.store_proofs { - let filename = format!("proof_{}.json", block + num_blocks - 1); - - let mut file = File::create(filename).await?; - file.write_all(serde_json::to_string(&proof)?.as_bytes()).await?; - let mut file = File::create("demo.json").await?; - file.write_all(serde_json::to_string_pretty(&proof.proof)?.as_bytes()) - .await?; - } - self.process_proven(proof, vec![], block + num_blocks, state_root_change) - .await?; - - block += num_blocks; - info!(target: LOG_TARGET, "Successfully processed {} blocks.", num_blocks); - } - - SayaMode::Ephemeral => { - let num_blocks = params.len() as u64; - let calls = params - .into_iter() - .enumerate() - .map(|(i, p)| self.process_block(block + i as u64, p)) - .collect::, _>>()? - .into_iter() - .flatten() - .flat_map(|(_, c)| c) - .collect::>(); - - // We might want to prove the signatures as well. - let proof = self.prover_identifier.prove_checker(calls).await?; - - trace!(target: LOG_TARGET, "Proof size: {:?}", proof.serialized_proof.len()); - if self.config.store_proofs { - let filename = format!("proof_{}.json", block + num_blocks - 1); - let mut file = - File::create(filename).await.context("Failed to create proof file.")?; - file.write_all(proof.proof.as_bytes()) - .await - .context("Failed to write proof.")?; - } - - let block_range = - (self.config.block_range.0, self.config.block_range.1.unwrap()); - - let diff = proof.clone().program_output; - self.process_proven(proof.clone(), diff, block_range.1, state_root_change) - .await?; - - info!(target: LOG_TARGET, "Successfully processed all {} blocks.", block_range.1 - block_range.0 + 1); - break; - } - } - } - - Ok(()) - } - - async fn prefetch_blocks( - &mut self, - block_numbers: RangeInclusive, - previous_block_state_root: Felt, - ) -> SayaResult<(Felt, Vec)> { - // Fetch all blocks from the current block to the latest block - let fetched_blocks = future::try_join_all( - block_numbers.clone().map(|block_number| self.provider.fetch_block(block_number)), - ) - .await?; - - // Shift the state roots to the right by one, as proof of each block is based on the - // previous state root - let mut state_roots = vec![previous_block_state_root]; - state_roots.extend(fetched_blocks.iter().map(|block| block.header.state_root)); - let previous_block_state_root = state_roots.pop().unwrap(); - - let mut state_updates_and_exec_info = vec![]; - - // The serialized DA is not used here as we only need the state updates to generate the - // proof and the DA data are generated by the `dojo-os`. - let (state_updates, _): (Vec<_>, Vec<_>) = future::try_join_all( - block_numbers - .clone() - .map(|block_number| self.provider.fetch_state_updates(block_number)), - ) - .await? - .into_iter() - .unzip(); - let transactions_executions = future::try_join_all( - block_numbers - .clone() - .map(|block_number| self.provider.fetch_transactions_executions(block_number)), - ) - .await?; - - state_updates.into_iter().zip(transactions_executions.into_iter()).for_each( - |(state_updates, exec_info)| { - state_updates_and_exec_info.push((state_updates, exec_info)); - }, - ); - - // Prepare parameters - let params = fetched_blocks - .into_iter() - .zip(state_roots) - .zip(state_updates_and_exec_info) - .map(|((block, prev_state_root), (state_updates, exec_infos))| FetchedBlockInfo { - block_number: block.header.number, - block, - prev_state_root, - state_updates, - exec_infos, - }) - .collect::>(); - - trace!(target: LOG_TARGET, block_number = block_numbers.start(), to = block_numbers.end(), "Fetched blocks."); - - Ok((previous_block_state_root, params)) - } - - /// Processes the given block number. - /// - /// # Summary - /// - /// 1. Update local state accordingly to pulled state. We may publish DA at this point. - /// - /// 2. Pulls all transactions and data required to generate the trace. - /// - /// 3. Computes facts for this state transition. We may optimistically register the facts. - /// - /// 4. Starts computing the proof from the trace with a prover. - /// - /// # Arguments - /// - /// * `prove_scheduler` - A parallel prove scheduler. - /// * `block_number` - The block number. - /// * `block_info` - The block to process, along with the state roots of the previous block and - /// the genesis block. - fn process_block( - &mut self, - block_number: BlockNumber, - block_info: FetchedBlockInfo, - ) -> SayaResult)>> { - trace!(target: LOG_TARGET, block_number = %block_number, "Processing block."); - - let FetchedBlockInfo { block, prev_state_root, state_updates, exec_infos, block_number } = - block_info; - - let block = - SealedBlockWithStatus { block: block.clone(), status: FinalityStatus::AcceptedOnL2 }; - - let state_updates_to_prove = state_updates.state_updates.clone(); - self.blockchain.update_state_with_block(block.clone(), state_updates)?; - - if block_number == 0 { - return Ok(None); - } - - if exec_infos.is_empty() { - trace!(target: LOG_TARGET, block_number, "Skipping empty block."); - return Ok(None); - } - - let l1_transactions = block - .block - .body - .iter() - .filter_map(|t| match &t.transaction { - // attach the tx hash for filtering when extracting messages later - Tx::L1Handler(tx) => Some((t.hash, tx)), - _ => None, - }) - .collect::>(); - - let (message_to_starknet_segment, message_to_appchain_segment) = - extract_messages(&exec_infos, &l1_transactions); - - let mut state_diff_prover_input = ProgramInput { - prev_state_root, - block_number, - block_hash: block.block.hash, - config_hash: Felt::from(0u64), - message_to_starknet_segment, - message_to_appchain_segment, - state_updates: state_updates_to_prove, - world_da: None, - }; - state_diff_prover_input.fill_da(self.config.world_address); - - info!(target: LOG_TARGET, block_number, "Block processed."); - - let calls = extract_execute_calls(&exec_infos); - - Ok(Some((state_diff_prover_input, calls))) - } - - /// Registers the facts + the send the proof to verifier. Not all provers require this step - /// (a.k.a. SHARP). - /// - /// # Arguments - /// - /// * `prove_scheduler` - A full parallel prove scheduler. - /// * `last_block` - The last block number in the `prove_scheduler`. - async fn process_proven( - &mut self, - proof: ProverResult, - state_diff: Vec, - last_block: u64, - state_roots: (Felt, Felt), - ) -> SayaResult<()> { - trace!(target: LOG_TARGET, last_block, "Processing proven blocks."); - let serialized_proof = proof.serialized_proof; - // Publish state difference if DA client is available. - if let Some(da) = &self.da_client { - trace!(target: LOG_TARGET, last_block, "Publishing DA."); - - let checkpoint = PublishedStateDiff { - prev_state_root: state_roots.0, - state_root: state_roots.1, - prev_height: self.prev_height, - prev_commitment: self.prev_commitment, - proof: serde_json::to_value(&proof.proof).unwrap(), - }; - // let ns = Namespace::new_v0(b"saya-dev").unwrap(); - // let commitment = Commitment::from_blob(ns, 0, &serialized_proof.iter().map(|felt| - // felt.to_bytes()).collect::>()); - let (commitment, height) = if self.config.mode != SayaMode::Ephemeral { - da.publish_checkpoint(checkpoint).await? - } else if self.config.skip_publishing_proof { - da.publish_state_diff_felts(&state_diff).await? - } else { - da.publish_state_diff_and_proof_felts(&state_diff, &serialized_proof).await? - }; - self.prev_commitment = Some(commitment); - self.prev_height = Some(height); - - info!(target: LOG_TARGET,"commitment: {:?}, height: {:?}", commitment.0, height); - } - - let program_hash = proof.program_hash; - let program_output_hash = proof.program_output_hash; - let program_output = proof.program_output; - - let program_hash_string = program_hash; - let program_output_hash_string = program_output_hash; - - info!(target: LOG_TARGET,"Extracted program hash and output hash. {:?} {:?}", program_hash_string, program_output_hash_string); - let expected_fact = poseidon_hash_many(&[program_hash, program_output_hash]).to_string(); - let program = program_hash.to_string(); - info!(target: LOG_TARGET, expected_fact, program, "Expected fact."); - - let starknet_account = self.config.starknet_account.get_starknet_account()?; - - // Verify the proof and register fact. - trace!(target: LOG_TARGET, last_block, "Verifying block."); - let (transaction_hash, _nonce) = verifier::verify( - VerifierIdentifier::HerodotusStarknetSepolia(self.config.fact_registry_address), - serialized_proof, - &starknet_account, - self.config.mode.to_program().cairo_version(), - ) - .await?; - info!(target: LOG_TARGET, last_block, transaction_hash, "Block verified."); - - // Apply the diffs to the world state. - match self.config.mode { - SayaMode::Ephemeral => { - // Needs checker program to be verified, and set as the upgrade_state authority - todo!("Ephemeral mode does not support publishing updated state yet."); - } - SayaMode::Persistent => { - let serialized_output = program_output.iter().copied().collect_vec(); - println!("serialized_output: {:?}", serialized_output); - - // todo!("Persistent mode does not support publishing updated state with SNOS - // yet."); - - let deduplicated_output = - serialized_output[1..serialized_output.len() / 2].to_vec(); - let batcher_output = from_felts::(&deduplicated_output).unwrap(); - let piltover_calldata = PiltoverCalldata { - program_output: serialized_output, - // onchain_data_hash: batcher_output.new_state_root, - onchain_data_hash: batcher_output.new_block_hash, - onchain_data_size: (Felt::ZERO, Felt::ZERO), - }; - - let expected_state_root = batcher_output.new_block_hash.to_string(); - let expected_block_number = - (batcher_output.new_block_number - Felt::ONE).to_string(); - info!(target: LOG_TARGET, last_block, expected_state_root, expected_block_number, "Applying snos to piltover."); - - starknet_apply_piltover( - piltover_calldata, - self.config.settlement_contract, - &starknet_account, - ) - .await?; - } - } - Ok(()) - } -} - -impl From for error::Error { - fn from(e: starknet::providers::ProviderError) -> Self { - Self::KatanaClient(format!("Katana client RPC provider error: {e}")) - } -} - -#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] -pub enum SayaMode { - Ephemeral, - Persistent, -} - -impl SayaMode { - fn to_program(self) -> ProveProgram { - match self { - SayaMode::Ephemeral => ProveProgram::Checker, - SayaMode::Persistent => ProveProgram::Batcher, - } - } -} - -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] -pub struct StarknetAccountData { - pub starknet_url: Url, - #[serde(deserialize_with = "felt_string_deserializer")] - pub chain_id: Felt, - pub signer_address: Felt, - pub signer_key: Felt, -} - -impl StarknetAccountData { - pub fn get_starknet_account(&self) -> anyhow::Result { - let provider = JsonRpcClient::new(HttpTransport::new(self.starknet_url.clone())); - let signer = LocalWallet::from(SigningKey::from_secret_scalar(self.signer_key)); - - let mut account = SingleOwnerAccount::new( - provider, - signer, - self.signer_address, - self.chain_id, - ExecutionEncoding::New, - ); - - account.set_block_id(BlockId::Tag(BlockTag::Pending)); - Ok(account) - } -} diff --git a/crates/saya/core/src/macros.rs b/crates/saya/core/src/macros.rs deleted file mode 100644 index e18df25fdd..0000000000 --- a/crates/saya/core/src/macros.rs +++ /dev/null @@ -1,34 +0,0 @@ -#[macro_export] -macro_rules! retry { - // The macro takes an async block as an input - ($func:expr) => {{ - // Set the maximum number of retries - const MAX_RETRIES: usize = 20; - - // Set the delay between retries in milliseconds (adjust as needed) - const RETRY_DELAY_MS: u64 = 1000; - - let mut retry_count = 0; - - loop { - match $func.await { - Ok(result) => break Ok(result), // If the function succeeds, break the loop and - // return the result - Err(err) => { - tracing::warn!("Error: {}", err); - - // Check if the maximum number of retries has been reached - if retry_count >= MAX_RETRIES { - break Err(err); - } - - // Increment the retry count - retry_count += 1; - tracing::info!("Retrying... ({}/{})", retry_count, MAX_RETRIES); - // Wait before retrying - tokio::time::sleep(tokio::time::Duration::from_millis(RETRY_DELAY_MS)).await; - } - } - } - }}; -} diff --git a/crates/saya/core/src/prover/client.rs b/crates/saya/core/src/prover/client.rs deleted file mode 100644 index 9a4c580079..0000000000 --- a/crates/saya/core/src/prover/client.rs +++ /dev/null @@ -1,88 +0,0 @@ -use std::sync::Arc; - -use cairo1_playground::get_cairo_pie; -use herodotus_sharp_playground::SharpSdk; -use prover_sdk::access_key::ProverAccessKey; -use prover_sdk::errors::SdkErrors; -use prover_sdk::sdk::ProverSDK; -use prover_sdk::{JobResponse, ProverResult}; -use starknet::core::types::Felt; -use tracing::trace; -use url::Url; - -use super::loader::{load_program, prepare_input_cairo}; -use super::ProveProgram; -use crate::error::ProverError; - -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct HttpProverParams { - pub prover_url: Url, - pub prover_key: ProverAccessKey, -} - -pub async fn http_prove( - prover_params: Arc, - input: Vec, - prove_program: ProveProgram, -) -> Result { - let prover = - ProverSDK::new(prover_params.prover_url.clone(), prover_params.prover_key.clone()).await?; - let input = prepare_input_cairo(input, prove_program).await?; - let job_id = prover.prove_cairo(input).await?; - prover.sse(job_id).await?; - let response = prover.get_job(job_id).await?; - let response = response.text().await?; - let json_response: JobResponse = serde_json::from_str(&response)?; - if let JobResponse::Completed { result, .. } = json_response { - Ok(result) - } else if let JobResponse::Failed { error, .. } = json_response { - Err(SdkErrors::GetJobResponseError(error).into()) - } else { - Err(SdkErrors::GetJobResponseError("Prover failed".to_string()).into()) - } -} -pub async fn sharp_prove( - calls: Vec, - api_key: String, - prove_program: ProveProgram, -) -> Result { - let temp_dir = tempdir::TempDir::new("pie_file_path")?; - let pie_file_path = temp_dir.path().join("pie_file_path.zip"); - let program = load_program(prove_program).await?; - let program = serde_json::from_value(program)?; - let output = get_cairo_pie( - program, - pie_file_path.clone(), - cairo1_playground::LayoutName::recursive, - calls, - )?; - trace!("output: {:?}", output); - let sdk = SharpSdk { api_key }; - let response = sdk - .proof_generation( - "recursive".to_string(), - true, - pie_file_path.to_str().unwrap().to_string(), - ) - .await?; - - let proof_path = loop { - let status = sdk.get_sharp_query_jobs(response.sharp_query_id.clone()).await?; - - if let Some(context) = &status.jobs[0].context { - if let Some(proof_path) = &context.proof_path { - break proof_path.clone(); - } - } - tokio::time::sleep(tokio::time::Duration::from_secs(20)).await; - }; - - let proof = sdk.get_proof(proof_path).await?; - Ok(ProverResult { - proof: proof.proof, - serialized_proof: proof.serialized_proof, - program_hash: proof.program_hash, - program_output: proof.program_output, - program_output_hash: proof.program_output_hash, - }) -} diff --git a/crates/saya/core/src/prover/loader.rs b/crates/saya/core/src/prover/loader.rs deleted file mode 100644 index 3efeff31a2..0000000000 --- a/crates/saya/core/src/prover/loader.rs +++ /dev/null @@ -1,48 +0,0 @@ -use std::env; -use std::path::PathBuf; - -use prover_sdk::CairoProverInput; -use serde_json::Value; -use starknet_crypto::Felt; -use tokio::fs::File; -use tokio::io::AsyncReadExt; - -use super::ProveProgram; -use crate::error::ProverError; - -pub async fn load_program(prove_program: ProveProgram) -> Result { - let manifest_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR")?); - let program_file = match prove_program { - ProveProgram::Checker => manifest_dir.join("programs/cairo1checker.json"), - ProveProgram::Batcher => manifest_dir.join("programs/cairo1batcher.json"), - ProveProgram::Echo => manifest_dir.join("programs/cairo1echo.json"), - }; - - let mut program_file = File::open(program_file).await?; - - let mut data = String::new(); - program_file.read_to_string(&mut data).await?; - let json_value: Value = serde_json::from_str(&data)?; - - Ok(json_value) -} - -pub async fn prepare_input_cairo( - program_input: Vec, - prove_program: ProveProgram, -) -> Result { - let mut program = load_program(prove_program).await?; - if let Value::Object(ref mut obj) = program { - obj.insert("version".to_string(), Value::Number(serde_json::Number::from(1))); - } - - let program = serde_json::from_str(&serde_json::to_string(&program)?)?; - - Ok(CairoProverInput { - program, - program_input, - layout: "recursive".into(), - n_queries: Some(16), - pow_bits: Some(20), - }) -} diff --git a/crates/saya/core/src/prover/mod.rs b/crates/saya/core/src/prover/mod.rs deleted file mode 100644 index 4ad720ea3d..0000000000 --- a/crates/saya/core/src/prover/mod.rs +++ /dev/null @@ -1,108 +0,0 @@ -//! Prover backends. -//! -//! The prover is in charge of generating a proof from the cairo execution trace. -use std::sync::Arc; - -use async_trait::async_trait; - -mod client; -mod loader; -pub mod persistent; -mod program_input; -use cairo_proof_parser::to_felts; -pub use client::HttpProverParams; -use client::{http_prove, sharp_prove}; -use persistent::{BatcherInput, StarknetOsOutput}; -pub use program_input::*; -use prover_sdk::ProverResult; -use starknet::core::types::Call; -use starknet_crypto::Felt; - -use crate::error::ProverError; -// pub use stone_image::*; - -/// The prover used to generate the proof. -#[derive(Debug, Clone, PartialEq, Eq)] -pub enum ProverIdentifier { - HerodotusSharp(String), - Http(Arc), -} - -#[derive(Debug)] -pub enum ProveProgram { - Checker, // Contract specific checker program. - Batcher, // Simulating snos, contract from dojo-os repository. - Echo, // A mock program repeating the input value. -} - -impl ProverIdentifier { - pub async fn prove_checker(&self, calls: Vec) -> Result { - let len = Felt::from(calls.len() as u64); - let mut args = calls - .into_iter() - .flat_map(|c| { - let mut felts = vec![c.to, c.selector, c.calldata.len().into()]; - felts.extend(c.calldata); - felts - }) - .collect::>(); - args.insert(0, len); - - match self { - ProverIdentifier::Http(params) => { - http_prove(params.clone(), args, ProveProgram::Checker).await - } - ProverIdentifier::HerodotusSharp(key) => { - sharp_prove(args, key.to_string(), ProveProgram::Checker).await - } - } - } - - pub async fn prove_snos(&self, calls: BatcherInput) -> Result { - let calldata = to_felts(&calls).map_err(|e| ProverError::SerdeFeltError(e.to_string()))?; - - match self { - ProverIdentifier::Http(params) => { - http_prove(params.clone(), calldata, ProveProgram::Batcher).await - } - ProverIdentifier::HerodotusSharp(key) => { - sharp_prove(calldata, key.to_string(), ProveProgram::Batcher).await - } - } - } - - pub async fn prove_echo(&self, calls: StarknetOsOutput) -> Result { - let calldata = to_felts(&calls).map_err(|e| ProverError::SerdeFeltError(e.to_string()))?; - - dbg!(&calldata); - - match self { - ProverIdentifier::Http(params) => { - http_prove(params.clone(), calldata, ProveProgram::Echo).await - } - ProverIdentifier::HerodotusSharp(key) => { - sharp_prove(calldata, key.to_string(), ProveProgram::Echo).await - } - } - } -} - -impl ProveProgram { - pub fn cairo_version(&self) -> Felt { - match self { - ProveProgram::Echo => Felt::ONE, - ProveProgram::Checker => Felt::ONE, - ProveProgram::Batcher => Felt::ONE, - } - } -} - -/// The prover client. in charge of producing the proof. -#[async_trait] -pub trait ProverClient { - fn identifier() -> ProverIdentifier; - - /// Generates the proof from the given trace. - /// The proven input has to be valid for the proving program. - async fn prove(&self, input: String) -> anyhow::Result; -} diff --git a/crates/saya/core/src/prover/persistent.rs b/crates/saya/core/src/prover/persistent.rs deleted file mode 100644 index da5e230d53..0000000000 --- a/crates/saya/core/src/prover/persistent.rs +++ /dev/null @@ -1,151 +0,0 @@ -use celestia_types::Commitment; -use serde::{Deserialize, Serialize}; -use starknet_crypto::Felt; - -#[derive(Debug, Clone, PartialEq, Eq, Deserialize)] -pub struct BatcherOutput { - pub padding: [Felt; 2], - pub prev_state_root: Felt, - pub new_state_root: Felt, - pub block_number: Felt, - pub block_hash: Felt, - pub config_hash: Felt, - pub message_to_starknet_segment: Vec, - pub message_to_appchain_segment: Vec, -} - -#[derive(Debug, Clone, PartialEq, Eq, Serialize)] -pub struct BatcherCall { - pub to: Felt, - pub selector: Felt, - pub calldata: Vec, - pub starknet_messages: Vec, - pub appchain_messages: Vec, -} - -#[derive(Debug, Clone, PartialEq, Eq, Serialize)] -pub struct BatcherInput { - pub calls: Vec, - pub block_number: Felt, - pub prev_state_root: Felt, - pub block_hash: Felt, -} - -// TODO: import this form katana instead of redefining it once it is merged. -pub type BlockHeight = u64; -#[derive(Debug, Serialize, Deserialize)] -pub struct PublishedStateDiff { - pub prev_state_root: Felt, - pub state_root: Felt, - pub prev_height: Option, - pub prev_commitment: Option, - pub proof: serde_json::Value, -} - -#[derive(Debug, Serialize, Deserialize, PartialEq, Eq)] -pub struct StarknetOsOutput { - /// The root before. - pub initial_root: Felt, - /// The root after. - pub final_root: Felt, - /// The previous block number. - pub prev_block_number: Felt, - /// The current block number. - pub new_block_number: Felt, - /// The previous block hash. - pub prev_block_hash: Felt, - /// The current block hash. - pub new_block_hash: Felt, - /// The hash of the OS program, if the aggregator was used. Zero if the OS was used directly. - pub os_program_hash: Felt, - /// The hash of the OS config. - pub starknet_os_config_hash: Felt, - /// Whether KZG data availability was used. - pub use_kzg_da: Felt, - /// Indicates whether previous state values are included in the state update information. - pub full_output: Felt, - /// Messages from L2 to L1. - pub messages_to_l1: Vec, - /// Messages from L1 to L2. - pub messages_to_l2: Vec, - /// The list of contracts that were changed. - pub contracts: Vec, - /// The list of classes that were declared. A map from class hash to compiled class hash. - // pub classes: HashMap, - pub classes: Vec<(Felt, Felt)>, -} - -#[derive(Debug, Clone, PartialEq, Deserialize, Serialize, Eq)] -pub struct ContractChanges { - /// The address of the contract. - pub addr: Felt, - /// The new nonce of the contract (for account contracts). - pub nonce: Felt, - /// The new class hash (if changed). - // pub class_hash: Option, - pub class_hash: Felt, - /// A map from storage key to its new value. - pub storage_changes: Vec<(Felt, Felt)>, -} - -#[cfg(test)] -mod batcher_args_tests { - use cairo_proof_parser::{from_felts, to_felts}; - - use super::*; - - #[test] - fn test_batcher_args_no_calls() { - let no_calls = BatcherInput { - calls: vec![], - block_number: Felt::from(1u64), - prev_state_root: Felt::from(42u64), - block_hash: Felt::from(52u64), - }; - - let serialized = to_felts(&no_calls).unwrap(); - let expected = [0u64, 1, 42, 52].into_iter().map(Felt::from).collect::>(); - assert_eq!(serialized, expected); - } - - #[test] - fn test_batcher_args_single_call() { - let no_calls = BatcherInput { - calls: vec![BatcherCall { - to: Felt::from(1u64), - selector: Felt::from(2u64), - calldata: vec![Felt::from(3u64), Felt::from(4u64)], - starknet_messages: Vec::new(), - appchain_messages: Vec::new(), - }], - block_number: Felt::from(1u64), - prev_state_root: Felt::from(42u64), - block_hash: Felt::from(52u64), - }; - - let serialized = to_felts(&no_calls).unwrap(); - let expected = - [1u64, 1, 2, 2, 3, 4, 0, 0, 1, 42, 52].into_iter().map(Felt::from).collect::>(); - assert_eq!(serialized, expected); - } - - #[test] - fn test_parse_program_output() { - let output = - [0, 0, 0, 1, 2, 0x34, 0x2a, 0, 0u64].into_iter().map(Felt::from).collect::>(); - - let parsed = from_felts::(&output).unwrap(); - let expected = BatcherOutput { - padding: [Felt::from(0u64); 2], - prev_state_root: Felt::from(0u64), - new_state_root: Felt::from(1u64), - block_number: Felt::from(2u64), - block_hash: Felt::from(52u64), - config_hash: Felt::from(42u64), - message_to_starknet_segment: vec![], - message_to_appchain_segment: vec![], - }; - - assert_eq!(parsed, expected); - } -} diff --git a/crates/saya/core/src/prover/program_input.rs b/crates/saya/core/src/prover/program_input.rs deleted file mode 100644 index e00a91770b..0000000000 --- a/crates/saya/core/src/prover/program_input.rs +++ /dev/null @@ -1,697 +0,0 @@ -use std::str::FromStr; - -use anyhow::bail; -use bigdecimal::BigDecimal; -use katana_primitives::contract::ContractAddress; -use katana_primitives::state::StateUpdates; -use katana_primitives::trace::{CallInfo, EntryPointType}; -use katana_primitives::transaction::{L1HandlerTx, TxHash}; -use katana_rpc_types::trace::TxExecutionInfo; -use serde::ser::{SerializeSeq, Serializer}; -use serde::{Deserialize, Deserializer, Serialize}; -use starknet::core::types::{Call, Felt}; - -/// Based on https://github.com/cartridge-gg/piltover/blob/2be9d46f00c9c71e2217ab74341f77b09f034c81/src/snos_output.cairo#L19-L20 -/// With the new state root computed by the prover. -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, Default)] -pub struct ProgramInput { - pub prev_state_root: Felt, - pub block_number: u64, - pub block_hash: Felt, - pub config_hash: Felt, - #[serde(serialize_with = "MessageToStarknet::serialize_message_to_starknet")] - #[serde(deserialize_with = "MessageToStarknet::deserialize_message_to_starknet")] - pub message_to_starknet_segment: Vec, - #[serde(serialize_with = "MessageToAppchain::serialize_message_to_appchain")] - #[serde(deserialize_with = "MessageToAppchain::deserialize_message_to_appchain")] - pub message_to_appchain_segment: Vec, - #[serde(flatten)] - pub state_updates: StateUpdates, - #[serde(serialize_with = "serialize_world_da")] - pub world_da: Option>, -} - -fn serialize_world_da(element: &Option>, serializer: S) -> Result -where - S: Serializer, -{ - if let Some(da) = element { - let mut seq = serializer.serialize_seq(Some(da.len()))?; - - for d in da { - // let decimal: BigDecimal = d.to_bigint().into(); // Convert with no decimal places - // let num = decimal.to_string(); - // seq.serialize_element(&num)?; - seq.serialize_element(&d)?; - } - - seq.end() - } else { - Err(serde::ser::Error::custom("Compute `world_da` first")) - } -} - -fn get_messages_recursively(info: &CallInfo) -> Vec { - let mut messages = vec![]; - - // By default, `from_address` must correspond to the contract address that - // is sending the message. In the case of library calls, `code_address` is `None`, - // we then use the `caller_address` instead (which can also be an account). - let from_address = - if let Some(code_address) = info.code_address { code_address } else { info.caller_address }; - - messages.extend(info.l2_to_l1_messages.iter().map(|m| MessageToStarknet { - from_address, - to_address: ContractAddress::from(m.to_address), - payload: m.payload.clone(), - })); - - info.inner_calls.iter().for_each(|call| { - messages.extend(get_messages_recursively(call)); - }); - - messages -} - -pub fn extract_messages( - exec_infos: &[TxExecutionInfo], - l1_transactions: &[(TxHash, &L1HandlerTx)], -) -> (Vec, Vec) { - // extract messages to starknet (ie l2 -> l1) - let message_to_starknet_segment = exec_infos - .iter() - .flat_map(|t| t.trace.execute_call_info.iter().chain(t.trace.validate_call_info.iter()).chain(t.trace.fee_transfer_call_info.iter())) // Take into account both validate and execute calls. - .flat_map(get_messages_recursively) - .collect(); - - // extract messages to appchain (ie l1 -> l2) - let message_to_appchain_segment = { - // get the call infos from the trace and the corresponding tx hash - let calls = exec_infos.iter().filter_map(|t| { - let calls = t.trace.execute_call_info.as_ref()?; - // Not present if not a l1 handler tx. - l1_transactions.iter().find(|tx| tx.0 == t.hash).map(|(_, tx)| (tx, calls)) - }); - - // filter only the l1 handler tx - let l1_handlers = calls.filter(|(_, c)| c.entry_point_type == EntryPointType::L1Handler); - - // build messages - l1_handlers - .map(|(t, c)| MessageToAppchain { - nonce: t.nonce, - payload: c.calldata.clone(), - from_address: c.caller_address, - to_address: c.contract_address, - selector: c.entry_point_selector, - }) - .collect() - }; - - (message_to_starknet_segment, message_to_appchain_segment) -} - -pub fn extract_execute_calls(exec_infos: &[TxExecutionInfo]) -> Vec { - // Ignoring the inner calls at this point. - exec_infos - .iter() - .filter_map(|t| t.trace.execute_call_info.clone()) - .map(|c| Call { - to: c.contract_address.into(), - selector: c.entry_point_selector, - calldata: c.calldata, - }) - .collect() -} - -impl ProgramInput { - /// Extracts the storage updates for the given world, and flattens them into a single vector - /// that represent the serialized DA. The length is not included as the array contains - /// serialiazed struct with two members: key and value. - /// TODO: migrate to cainome + simple rust vec for better devX in the future. - pub fn fill_da(&mut self, world: Felt) { - let updates = self - .state_updates - .storage_updates - .get(&ContractAddress::from(world)) - .unwrap_or(&std::collections::BTreeMap::new()) - .iter() - .flat_map(|(k, v)| vec![*k, *v]) - .collect::>(); - - self.world_da = Some(updates); - } - - pub fn combine(mut self, latter: ProgramInput) -> anyhow::Result { - self.message_to_appchain_segment.extend(latter.message_to_appchain_segment); - self.message_to_starknet_segment.extend(latter.message_to_starknet_segment); - - // the later state should overwrite the previous one. - latter.state_updates.deployed_contracts.into_iter().for_each(|(k, v)| { - self.state_updates.deployed_contracts.insert(k, v); - }); - latter.state_updates.declared_classes.into_iter().for_each(|(k, v)| { - self.state_updates.declared_classes.insert(k, v); - }); - latter.state_updates.nonce_updates.into_iter().for_each(|(k, v)| { - self.state_updates.nonce_updates.insert(k, v); - }); - latter.state_updates.storage_updates.into_iter().for_each(|(c, h)| { - h.into_iter().for_each(|(k, v)| { - self.state_updates.storage_updates.entry(c).or_default().insert(k, v); - }); - }); - - if self.world_da.is_none() || latter.world_da.is_none() { - bail!("Both world_da must be present to combine them"); - } - - let mut world_da = self.world_da.unwrap_or_default(); - for later in latter.world_da.unwrap_or_default().chunks(2) { - let mut replaced = false; - for earlier in world_da.chunks_mut(2) { - if later[0] == earlier[0] { - earlier[1] = later[1]; - replaced = true; - continue; - } - } - - if !replaced { - world_da.extend(later) - } - } - - // The block number is the one from the last block. - Ok(ProgramInput { - prev_state_root: self.prev_state_root, - block_number: latter.block_number, - block_hash: latter.block_hash, - config_hash: self.config_hash, - message_to_appchain_segment: self.message_to_appchain_segment, - message_to_starknet_segment: self.message_to_starknet_segment, - state_updates: self.state_updates, - world_da: Some(world_da), - }) - } - - pub fn da_as_calldata(&self, world: Felt) -> Vec { - let updates = self - .state_updates - .storage_updates - .get(&ContractAddress::from(world)) - .unwrap_or(&std::collections::BTreeMap::new()) - .iter() - .flat_map(|(k, v)| vec![*k, *v]) - .collect::>(); - - updates - } - // TODO: change to use cainome/serde_felt - fn serialize_to_prover_args(&self) -> Vec { - let mut out = vec![ - self.prev_state_root, - Felt::from(self.block_number), - self.block_hash, - self.config_hash, - ]; - - out.push(Felt::from(self.state_updates.nonce_updates.len())); - for (k, v) in &self.state_updates.nonce_updates { - out.push(**k); - out.push(*v); - } - - out.push(Felt::from(self.state_updates.storage_updates.len())); - for (c, h) in &self.state_updates.storage_updates { - out.push(**c); - out.push(Felt::from(h.len())); - for (k, v) in h { - out.push(*k); - out.push(*v); - } - } - - out.push(Felt::from(self.state_updates.deployed_contracts.len())); - for (k, v) in &self.state_updates.deployed_contracts { - out.push(**k); - out.push(*v); - } - - out.push(Felt::from(self.state_updates.declared_classes.len())); - for (k, v) in &self.state_updates.declared_classes { - out.push(*k); - out.push(*v); - } - - let starknet_messages = self - .message_to_starknet_segment - .iter() - .flat_map(|m| m.serialize().unwrap()) - .collect::>(); - out.push(Felt::from(starknet_messages.len())); - out.extend(starknet_messages); - - let appchain_messages = self - .message_to_appchain_segment - .iter() - .flat_map(|m| m.serialize().unwrap()) - .collect::>(); - - out.push(Felt::from(appchain_messages.len())); - out.extend(appchain_messages); - - out.push(Felt::from(self.world_da.as_ref().unwrap().len() / 2)); - out.extend(self.world_da.as_ref().unwrap().iter().cloned()); - - out.push(Felt::from(0u64)); // Proofs - - out - } - - pub fn prepare_differ_args(inputs: Vec) -> String { - let serialized = - inputs.iter().flat_map(|input| input.serialize_to_prover_args()).collect::>(); - - let joined = serialized - .iter() - .map(|f| BigDecimal::from(f.to_bigint()).to_string()) - .collect::>(); - - format!("[{} {}]", inputs.len(), joined.join(" ")) - } -} - -/// Based on https://github.com/cartridge-gg/piltover/blob/2be9d46f00c9c71e2217ab74341f77b09f034c81/src/messaging/output_process.cairo#L16 -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, Default, PartialOrd, Ord)] -pub struct MessageToStarknet { - pub from_address: ContractAddress, - pub to_address: ContractAddress, - pub payload: Vec, -} - -impl MessageToStarknet { - pub fn serialize_message_to_starknet( - messages: &[MessageToStarknet], - serializer: S, - ) -> Result - where - S: Serializer, - { - let mut seq = serializer.serialize_seq(Some(messages.len()))?; - for message in messages { - let serialized = message.serialize().unwrap(); - // Instead of adding serialized as an array, add each element individually - for field_element in serialized { - // let decimal: BigDecimal = field_element.to_bigint().into(); // Assuming no - // decimal places for simplicity let num = decimal.to_string(); - // seq.serialize_element(&num)?; - seq.serialize_element(&field_element)?; - } - } - seq.end() - } - - pub fn serialize(&self) -> anyhow::Result> { - let mut result = vec![*self.from_address, *self.to_address]; - result.push(Felt::from(self.payload.len())); - result.extend(self.payload.iter().cloned()); - Ok(result) - } - - fn deserialize_message_to_starknet<'de, D>( - deserializer: D, - ) -> Result, D::Error> - where - D: Deserializer<'de>, - { - struct MessageToStarknetVisitor; - - impl<'de> serde::de::Visitor<'de> for MessageToStarknetVisitor { - type Value = Vec; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("a flat list of integers for MessageToStarknet") - } - - fn visit_seq(self, mut seq: V) -> Result - where - V: serde::de::SeqAccess<'de>, - { - let mut messages = Vec::new(); - while let Some(from_address) = seq - .next_element::()? - .map(|num| Felt::from_str(&num.to_string()).unwrap()) - { - let to_address = seq - .next_element::()? - .map(|num| Felt::from_str(&num.to_string()).unwrap()) - .unwrap_or_default(); - - let payload_length_str = seq.next_element::()?.unwrap_or_default(); - // TODO: for compatibility reason, the length can be in either decimal or hex - // format. maybe should just expect all values to be in hex format. - let payload_length = payload_length_str - .parse::() - .or_else(|_| { - usize::from_str_radix( - payload_length_str - .strip_prefix("0x") - .unwrap_or(&payload_length_str), - 16, - ) - }) - .expect("invalid length value"); - - let mut payload = Vec::new(); - for _ in 0..payload_length { - if let Some(element) = seq - .next_element::()? - .map(|num| Felt::from_str(&num.to_string()).unwrap()) - { - payload.push(element); - } - } - messages.push(MessageToStarknet { - from_address: ContractAddress::from(from_address), - to_address: ContractAddress::from(to_address), - payload, - }); - } - Ok(messages) - } - } - - deserializer.deserialize_seq(MessageToStarknetVisitor) - } -} - -/// Based on https://github.com/cartridge-gg/piltover/blob/2be9d46f00c9c71e2217ab74341f77b09f034c81/src/messaging/output_process.cairo#L28 -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, Default, PartialOrd, Ord)] -pub struct MessageToAppchain { - pub from_address: ContractAddress, - pub to_address: ContractAddress, - pub nonce: Felt, - pub selector: Felt, - pub payload: Vec, -} - -impl MessageToAppchain { - pub fn serialize_message_to_appchain( - messages: &[MessageToAppchain], - serializer: S, - ) -> Result - where - S: Serializer, - { - let mut seq = serializer.serialize_seq(Some(messages.len()))?; - for message in messages { - let serialized = message.serialize().unwrap(); - for field_element in serialized { - // let decimal: BigDecimal = field_element.to_bigint().into(); // Assuming no - // decimal places for simplicity let num = decimal.to_string(); - // seq.serialize_element(&num)?; - seq.serialize_element(&field_element)?; - } - } - seq.end() - } - - pub fn serialize(&self) -> anyhow::Result> { - let mut result = vec![*self.from_address, *self.to_address, self.nonce, self.selector]; - result.push(Felt::from(self.payload.len())); - result.extend(self.payload.iter().cloned()); - Ok(result) - } - - fn deserialize_message_to_appchain<'de, D>( - deserializer: D, - ) -> Result, D::Error> - where - D: Deserializer<'de>, - { - struct MessageToAppchainVisitor; - - impl<'de> serde::de::Visitor<'de> for MessageToAppchainVisitor { - type Value = Vec; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("a flat list of integers for MessageToAppchain") - } - - fn visit_seq(self, mut seq: V) -> Result - where - V: serde::de::SeqAccess<'de>, - { - let mut messages = Vec::new(); - while let Some(from_address) = seq - .next_element::()? - .map(|num| Felt::from_str(&num.to_string()).unwrap()) - { - let to_address = seq - .next_element::()? - .map(|num| Felt::from_str(&num.to_string()).unwrap()) - .unwrap_or_default(); - let nonce = seq - .next_element::()? - .map(|num| Felt::from_str(&num.to_string()).unwrap()) - .unwrap_or_default(); - let selector = seq - .next_element::()? - .map(|num| Felt::from_str(&num.to_string()).unwrap()) - .unwrap_or_default(); - - let payload_length_str = seq.next_element::()?.unwrap_or_default(); - // TODO: for compatibility reason, the length can be in either decimal or hex - // format. maybe should just expect all values to be in hex format. - let payload_length = payload_length_str - .parse::() - .or_else(|_| { - usize::from_str_radix( - payload_length_str - .strip_prefix("0x") - .unwrap_or(&payload_length_str), - 16, - ) - }) - .expect("invalid length value"); - - let mut payload = Vec::new(); - for _ in 0..payload_length { - if let Some(element) = seq - .next_element::()? - .map(|num| Felt::from_str(&num.to_string()).unwrap()) - { - payload.push(element); - } - } - messages.push(MessageToAppchain { - from_address: ContractAddress::from(from_address), - to_address: ContractAddress::from(to_address), - nonce, - selector, - payload, - }); - } - Ok(messages) - } - } - - deserializer.deserialize_seq(MessageToAppchainVisitor) - } -} - -#[cfg(test)] -mod tests { - use std::str::FromStr; - - use katana_primitives::{address, felt}; - - use super::*; - - #[test] - fn test_deserialize_input() -> anyhow::Result<()> { - let input = r#"{ - "prev_state_root":"0x65", - "block_number": 102, - "block_hash":"0x67", - "config_hash":"0x68", - "message_to_starknet_segment":["0x69","0x6a","0x1","0x1"], - "message_to_appchain_segment":["0x6c","0x6d","0x6e","0x6f","0x1","0x70"], - "storage_updates":{ - "0x2a": { - "0x7dc": "0x514", - "0x7da": "0x4b0" - } - }, - "nonce_updates":{ - "0x457": "0x56ce", - "0x45c": "0x56cf" - }, - "deployed_contracts":{ - "0x3": "0x1a102c21" - }, - "declared_classes":{ - "0x4d2": "0x3039" - }, - "deprecated_declared_classes": [], - "replaced_classes": {} - }"#; - let mut expected = ProgramInput { - prev_state_root: Felt::from_str("101")?, - block_number: 102, - block_hash: Felt::from_str("103")?, - config_hash: Felt::from_str("104")?, - message_to_starknet_segment: vec![MessageToStarknet { - from_address: address!("105"), - to_address: address!("106"), - payload: vec![felt!("1")], - }], - message_to_appchain_segment: vec![MessageToAppchain { - from_address: address!("108"), - to_address: address!("109"), - nonce: felt!("110"), - selector: felt!("111"), - payload: vec![Felt::from_str("112")?], - }], - state_updates: StateUpdates { - storage_updates: vec![( - address!("42"), - vec![ - (felt!("2010"), felt!("1200")), - (Felt::from_str("2012")?, Felt::from_str("1300")?), - ] - .into_iter() - .collect(), - )] - .into_iter() - .collect(), - - nonce_updates: vec![ - (address!("1111"), felt!("22222")), - (address!("1116"), felt!("22223")), - ] - .into_iter() - .collect(), - - deployed_contracts: vec![(address!("3"), felt!("437267489"))].into_iter().collect(), - - declared_classes: vec![(Felt::from_str("1234")?, Felt::from_str("12345")?)] - .into_iter() - .collect(), - - ..Default::default() - }, - world_da: None, - }; - let mut deserialized = serde_json::from_str::(input)?; - assert_eq!(expected, deserialized); - - deserialized.fill_da(Felt::from_str("42")?); - expected.world_da = Some(vec![ - Felt::from_str("2010")?, - Felt::from_str("1200")?, - Felt::from_str("2012")?, - Felt::from_str("1300")?, - ]); - - Ok(()) - } - - #[test] - fn test_serialize_input() -> anyhow::Result<()> { - use std::str::FromStr; - - let input = ProgramInput { - prev_state_root: Felt::from_str("101")?, - block_number: 102, - block_hash: Felt::from_str("103")?, - config_hash: felt!("104"), - message_to_starknet_segment: vec![MessageToStarknet { - from_address: address!("105"), - to_address: address!("106"), - payload: vec![felt!("1")], - }], - message_to_appchain_segment: vec![MessageToAppchain { - from_address: address!("108"), - to_address: address!("109"), - nonce: felt!("110"), - selector: felt!("111"), - payload: vec![felt!("112")], - }], - state_updates: StateUpdates { - storage_updates: vec![( - address!("42"), - vec![(felt!("2010"), felt!("1200")), (felt!("2012"), felt!("1300"))] - .into_iter() - .collect(), - )] - .into_iter() - .collect(), - - nonce_updates: vec![ - (address!("1111"), felt!("22222")), - (address!("1116"), felt!("22223")), - ] - .into_iter() - .collect(), - - deployed_contracts: vec![(address!("3"), felt!("437267489"))].into_iter().collect(), - declared_classes: vec![(felt!("1234"), felt!("12345"))].into_iter().collect(), - - ..Default::default() - }, - world_da: Some(vec![felt!("2010"), felt!("1200"), felt!("2012"), felt!("1300")]), - }; - - let serialized = serde_json::to_string::(&input.clone())?; - let deserialized = serde_json::from_str::(&serialized)?; - assert_eq!(input, deserialized); - - Ok(()) - } - - #[test] - fn test_serialize_to_prover_args() -> anyhow::Result<()> { - let input = r#"{ - "prev_state_root":"0x65", - "block_number":102, - "block_hash":"0x67", - "config_hash":"0x68", - "nonce_updates":{ - "0x457": "0x56ce" - }, - "storage_updates":{ - "0x14d": { - "0x115c": "0x22b" - } - }, - "deployed_contracts":{ - "0x1046a": "0x1e61" - }, - "declared_classes":{ - "0x15b38": "0x1869f" - }, - "deprecated_declared_classes": [], - "replaced_classes": {}, - "message_to_starknet_segment":["0x7b","0x1c8","0x7b","0x80"], - "message_to_appchain_segment":["0x6c","0x6d","0x6e","0x6f","0x1","0x70"] - }"#; - let mut input = serde_json::from_str::(input)?; - input.fill_da(felt!("333")); - - let serialized = input.serialize_to_prover_args(); - - let expected = vec![ - 101, 102, 103, 104, 1, 1111, 22222, 1, 333, 1, 4444, 555, 1, 66666, 7777, 1, 88888, - 99999, 4, 123, 456, 1, 128, 6, 108, 109, 110, 111, 1, 112, 1, 4444, 555, 0u64, - ] - .into_iter() - .map(Felt::from) - .collect::>(); - - assert_eq!(serialized, expected); - - Ok(()) - } -} diff --git a/crates/saya/core/src/verifier/mod.rs b/crates/saya/core/src/verifier/mod.rs deleted file mode 100644 index 232c474d36..0000000000 --- a/crates/saya/core/src/verifier/mod.rs +++ /dev/null @@ -1,46 +0,0 @@ -//! Verifiers backends. -//! -//! Verifiers are deployed on the verifier layer (chain) -//! where facts and proofs are registered and verified. -//! -//! Verifier implementations are used to provide -//! an interface to query the on-chain verifier, but also -//! submitting facts and proofs. - -use ::starknet::core::types::Felt; -use serde::{Deserialize, Serialize}; - -use crate::error::Error; -use crate::SayaStarknetAccount; - -mod starknet; -pub mod utils; - -/// Supported verifiers. -#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] -pub enum VerifierIdentifier { - HerodotusStarknetSepolia(Felt), - StarkwareEthereum, -} - -pub async fn verify( - verifier: VerifierIdentifier, - serialized_proof: Vec, - account: &SayaStarknetAccount, - cairo_version: Felt, -) -> Result<(String, Felt), Error> { - match verifier { - VerifierIdentifier::HerodotusStarknetSepolia(fact_registry_address) => { - starknet::starknet_verify( - fact_registry_address, - serialized_proof.clone(), - cairo_version, - account, - ) - .await - } - VerifierIdentifier::StarkwareEthereum => { - unimplemented!("Herodotus Starknet not yet supported") - } - } -} diff --git a/crates/saya/core/src/verifier/starknet.rs b/crates/saya/core/src/verifier/starknet.rs deleted file mode 100644 index a9e3eb1654..0000000000 --- a/crates/saya/core/src/verifier/starknet.rs +++ /dev/null @@ -1,87 +0,0 @@ -use std::time::Duration; -use std::vec; - -use dojo_utils::{TransactionExt, TxnConfig}; -use itertools::Itertools; -use starknet::accounts::{Account, ConnectedAccount}; -use starknet::core::types::{Call, Felt}; -use starknet::core::utils::get_selector_from_name; -use starknet_crypto::poseidon_hash_many; -use tokio::time::sleep; -use tracing::{info, trace}; - -use super::utils::wait_for_sent_transaction; -use crate::error::{Error, ProverError}; -use crate::{retry, SayaStarknetAccount, LOG_TARGET}; - -const CHUNK_SIZE: usize = 800; -pub async fn starknet_verify( - fact_registry_address: Felt, - serialized_proof: Vec, - cairo_version: Felt, - account: &SayaStarknetAccount, -) -> Result<(String, Felt), Error> { - if serialized_proof.len() > CHUNK_SIZE { - trace!(target: LOG_TARGET, - "Calldata too long at: {} felts, transaction could fail, splitting it.", - serialized_proof.len() - ); - } - - let txn_config = TxnConfig { wait: true, receipt: true, ..Default::default() }; - - let mut hashes = Vec::new(); - - for fragment in serialized_proof.into_iter().chunks(CHUNK_SIZE).into_iter() { - sleep(Duration::from_secs(12)).await; - let nonce = account.get_nonce().await?; - let mut fragment = fragment.collect::>(); - let hash = poseidon_hash_many(&fragment); - hashes.push(hash); - fragment.insert(0, fragment.len().into()); - let tx = retry!( - account - .execute_v1(vec![Call { - to: fact_registry_address, - selector: get_selector_from_name("publish_fragment").expect("invalid selector"), - calldata: fragment.clone(), - }]) - .nonce(nonce) - .send_with_cfg(&txn_config) - ) - .map_err(|e| ProverError::SendTransactionError(e.to_string()))?; - - wait_for_sent_transaction(tx.clone(), account).await?; - - trace!(target: LOG_TARGET, "Sent `publish_fragment` transaction {:#x}", tx.transaction_hash); - } - - info!(target: LOG_TARGET, "Sent all proof fragments."); - - let calldata = [Felt::from(hashes.len() as u64)] - .into_iter() - .chain(hashes.into_iter()) - .chain([cairo_version].into_iter()) - .collect::>(); - - sleep(Duration::from_secs(2)).await; - let nonce = account.get_nonce().await?; - - let tx = retry!( - account - .execute_v1(vec![Call { - to: fact_registry_address, - selector: get_selector_from_name("verify_and_register_fact_from_fragments") - .expect("invalid selector"), - calldata: calldata.clone(), - }]) - .nonce(nonce) - .send_with_cfg(&txn_config) - ) - .map_err(|e| ProverError::SendTransactionError(e.to_string()))?; - - let transaction_hash = format!("{:#x}", tx.transaction_hash); - wait_for_sent_transaction(tx, account).await?; - - Ok((transaction_hash, nonce + Felt::ONE)) -} diff --git a/crates/saya/core/src/verifier/utils.rs b/crates/saya/core/src/verifier/utils.rs deleted file mode 100644 index 39b6327d72..0000000000 --- a/crates/saya/core/src/verifier/utils.rs +++ /dev/null @@ -1,61 +0,0 @@ -use std::time::Duration; - -use starknet::accounts::ConnectedAccount; -use starknet::core::types::{ - InvokeTransactionResult, TransactionExecutionStatus, TransactionStatus, -}; -use starknet::providers::Provider; -use tokio::time::sleep; -use tracing::trace; - -use crate::error::Error; -use crate::{SayaStarknetAccount, LOG_TARGET}; - -pub async fn wait_for_sent_transaction( - tx: InvokeTransactionResult, - account: &SayaStarknetAccount, -) -> Result<(), Error> { - let start_fetching = std::time::Instant::now(); - let wait_for = Duration::from_secs(60); - - let execution_status = loop { - if start_fetching.elapsed() > wait_for { - return Err(Error::TimeoutError(format!( - "Transaction not mined in {} seconds.", - wait_for.as_secs() - ))); - } - - let status = match account.provider().get_transaction_status(tx.transaction_hash).await { - Ok(status) => status, - Err(_e) => { - sleep(Duration::from_secs(1)).await; - continue; - } - }; - - break match status { - TransactionStatus::Received => { - trace!(target: LOG_TARGET, "Transaction received."); - sleep(Duration::from_secs(1)).await; - continue; - } - TransactionStatus::Rejected => { - return Err(Error::TransactionRejected(tx.transaction_hash.to_string())); - } - TransactionStatus::AcceptedOnL2(execution_status) => execution_status, - TransactionStatus::AcceptedOnL1(execution_status) => execution_status, - }; - }; - match execution_status { - TransactionExecutionStatus::Succeeded => { - trace!(target: LOG_TARGET, "Transaction accepted on L2."); - } - TransactionExecutionStatus::Reverted => { - // Return a custom error when the transaction is reverted - return Err(Error::TransactionFailed(tx.transaction_hash.to_string())); - } - } - - Ok(()) -} diff --git a/crates/saya/provider/Cargo.toml b/crates/saya/provider/Cargo.toml deleted file mode 100644 index 002e3d09f3..0000000000 --- a/crates/saya/provider/Cargo.toml +++ /dev/null @@ -1,35 +0,0 @@ -[package] -description = "Saya providers to fetch block data from Katana." -edition.workspace = true -license-file.workspace = true -name = "saya-provider" -repository.workspace = true -version.workspace = true - -[dependencies] -katana-db.workspace = true -katana-executor.workspace = true -katana-primitives.workspace = true -katana-provider.workspace = true -katana-rpc-api = { workspace = true, features = [ "client" ] } -katana-rpc-types.workspace = true - -alloy-primitives.workspace = true -anyhow.workspace = true -async-trait.workspace = true -auto_impl.workspace = true -convert_case.workspace = true -flate2.workspace = true -futures.workspace = true -jsonrpsee = { workspace = true, features = [ "client" ] } -katana-cairo.workspace = true -lazy_static.workspace = true -num-traits.workspace = true -serde.workspace = true -serde_json.workspace = true -serde_with.workspace = true -starknet.workspace = true -thiserror.workspace = true -tokio.workspace = true -tracing.workspace = true -url.workspace = true diff --git a/crates/saya/provider/src/error.rs b/crates/saya/provider/src/error.rs deleted file mode 100644 index 6a32acd45d..0000000000 --- a/crates/saya/provider/src/error.rs +++ /dev/null @@ -1,16 +0,0 @@ -//! Errors related to providers. - -/// Possible errors returned by the provider. -#[derive(Debug, thiserror::Error)] -pub enum ProviderError { - #[error(transparent)] - Anyhow(#[from] anyhow::Error), - #[error(transparent)] - KatanaProvider(#[from] katana_provider::error::ProviderError), - #[error("Block {0:?} not found.")] - BlockNotFound(katana_primitives::block::BlockIdOrTag), - #[error(transparent)] - StarknetProvider(#[from] starknet::providers::ProviderError), - #[error("Value out of range")] - ValueOutOfRange, -} diff --git a/crates/saya/provider/src/lib.rs b/crates/saya/provider/src/lib.rs deleted file mode 100644 index 49aa867419..0000000000 --- a/crates/saya/provider/src/lib.rs +++ /dev/null @@ -1,13 +0,0 @@ -//! Saya providers. -//! -//! A provider in Saya is responsible of fetching blocks data -//! and state updates from Katana. -pub mod error; -pub mod provider; -pub mod rpc; - -pub use provider::Provider; - -pub type ProviderResult = Result; - -const LOG_TARGET: &str = "provider"; diff --git a/crates/saya/provider/src/provider.rs b/crates/saya/provider/src/provider.rs deleted file mode 100644 index 3cfc8eb78c..0000000000 --- a/crates/saya/provider/src/provider.rs +++ /dev/null @@ -1,44 +0,0 @@ -use katana_primitives::block::{BlockNumber, SealedBlock}; -use katana_primitives::state::StateUpdatesWithClasses; -use katana_rpc_types::trace::TxExecutionInfo; -use starknet::core::types::Felt; - -use crate::ProviderResult; - -#[async_trait::async_trait] -#[auto_impl::auto_impl(&, Box, Arc)] -pub trait Provider { - /// Fetches the current block number of underlying chain. - async fn block_number(&self) -> ProviderResult; - - /// Fetches a block with it's transactions. - /// - /// # Arguments - /// - /// * `block_number` - The block to fetch. - async fn fetch_block(&self, block_number: BlockNumber) -> ProviderResult; - - /// Fetches the state updates related to a given block. - /// Returns the [`StateUpdatesWithClasses`] and the serialiazed - /// state update for data availability layer. - /// - /// # Arguments - /// - /// * `block_number` - The block to fetch. - async fn fetch_state_updates( - &self, - block_number: BlockNumber, - ) -> ProviderResult<(StateUpdatesWithClasses, Vec)>; - - /// Fetches the transactions executions info for a given block. - /// This method returns the all the executions info for each - /// transaction in a block. - /// - /// # Arguments - /// - /// * `block_number` - The block to fetch. - async fn fetch_transactions_executions( - &self, - block_number: BlockNumber, - ) -> ProviderResult>; -} diff --git a/crates/saya/provider/src/rpc/mod.rs b/crates/saya/provider/src/rpc/mod.rs deleted file mode 100644 index 9f0914047c..0000000000 --- a/crates/saya/provider/src/rpc/mod.rs +++ /dev/null @@ -1,190 +0,0 @@ -//! Provider to fetch Katana data from RPC. -//! -//! The transport here is fixed to JSON RPC. -use std::sync::Arc; - -use anyhow::anyhow; -use jsonrpsee::http_client::HttpClientBuilder; -use katana_primitives::block::{BlockIdOrTag, BlockNumber, GasPrices, Header, SealedBlock}; -use katana_primitives::chain::ChainId; -use katana_primitives::class::ContractClass; -use katana_primitives::conversion::rpc as rpc_converter; -use katana_primitives::da::L1DataAvailabilityMode; -use katana_primitives::state::StateUpdatesWithClasses; -use katana_primitives::transaction::TxWithHash; -use katana_primitives::version::ProtocolVersion; -use katana_rpc_api::saya::SayaApiClient; -use katana_rpc_types::class::{RpcContractClass, RpcSierraContractClass}; -use katana_rpc_types::trace::TxExecutionInfo; -use num_traits::ToPrimitive; -use starknet::core::types::{ - ContractClass as StarknetRsContractClass, Felt, MaybePendingBlockWithTxs, - MaybePendingStateUpdate, -}; -use starknet::providers::jsonrpc::HttpTransport; -use starknet::providers::{JsonRpcClient, Provider as StarknetProvider}; -use tracing::trace; -use url::Url; - -use crate::provider::Provider; -use crate::rpc::{state as state_converter, transaction as tx_converter}; -use crate::{ProviderResult, LOG_TARGET}; - -mod state; -mod transaction; - -/// A JSON RPC provider. -#[derive(Debug)] -pub struct JsonRpcProvider { - /// The RPC URL that must be kept for custom endpoints. - rpc_url: String, - /// The Starknet provider. - starknet_provider: Arc>, - /// Chain id detected from the `starknet_provider`. - chain_id: ChainId, -} - -impl JsonRpcProvider { - /// Initializes a new [`JsonRpcProvider`]. - /// Will attempt to fetch the chain id from the provider. - /// - /// # Arguments - /// - /// * `rpc_url` - The RPC url to fetch data from. Must be up and running to fetch the chain id. - pub async fn new(rpc_url: Url) -> ProviderResult { - let starknet_provider = Arc::new(JsonRpcClient::new(HttpTransport::new(rpc_url.clone()))); - - let chain_id: ChainId = starknet_provider.chain_id().await?.into(); - - Ok(Self { starknet_provider, chain_id, rpc_url: rpc_url.to_string() }) - } - - /// Returns the internal [`ChainId`]. - pub fn chain_id(&self) -> ChainId { - self.chain_id - } -} - -#[async_trait::async_trait] -impl Provider for JsonRpcProvider { - async fn block_number(&self) -> ProviderResult { - Ok(self.starknet_provider.block_number().await?) - } - - async fn fetch_block(&self, block_number: BlockNumber) -> ProviderResult { - let block = match self - .starknet_provider - .get_block_with_txs(BlockIdOrTag::Number(block_number)) - .await? - { - MaybePendingBlockWithTxs::Block(b) => b, - MaybePendingBlockWithTxs::PendingBlock(_) => { - panic!("PendingBlock should not be fetched") - } - }; - - let txs: Vec = block - .transactions - .iter() - .map(|tx_rpc| tx_converter::tx_from_rpc(tx_rpc, self.chain_id)) - .collect::, _>>()?; - - Ok(SealedBlock { - hash: block.block_hash, - header: Header { - events_count: 0, - state_diff_length: 0, - transaction_count: 0, - events_commitment: Felt::ZERO, - receipts_commitment: Felt::ZERO, - state_diff_commitment: Felt::ZERO, - transactions_commitment: Felt::ZERO, - parent_hash: block.parent_hash, - number: block.block_number, - l1_gas_prices: GasPrices::new( - block.l1_gas_price.price_in_wei.to_u128().unwrap(), - block.l1_gas_price.price_in_fri.to_u128().unwrap(), - ), - l1_data_gas_prices: GasPrices::new( - block.l1_data_gas_price.price_in_wei.to_u128().unwrap(), - block.l1_data_gas_price.price_in_fri.to_u128().unwrap(), - ), - l1_da_mode: match block.l1_da_mode { - starknet::core::types::L1DataAvailabilityMode::Blob => { - L1DataAvailabilityMode::Blob - } - starknet::core::types::L1DataAvailabilityMode::Calldata => { - L1DataAvailabilityMode::Calldata - } - }, - timestamp: block.timestamp, - state_root: block.new_root, - sequencer_address: block.sequencer_address.into(), - protocol_version: ProtocolVersion::parse(&block.starknet_version).unwrap(), - }, - body: txs, - }) - } - - async fn fetch_state_updates( - &self, - block_number: BlockNumber, - ) -> ProviderResult<(StateUpdatesWithClasses, Vec)> { - let rpc_state_update = match self - .starknet_provider - .get_state_update(BlockIdOrTag::Number(block_number)) - .await? - { - MaybePendingStateUpdate::Update(su) => su, - MaybePendingStateUpdate::PendingUpdate(_) => { - return Err(anyhow!("PendingUpdate should not be fetched").into()); - } - }; - - let serialized_state_update = - state_converter::state_diff_to_felts(&rpc_state_update.state_diff); - let state_updates = state_converter::state_updates_from_rpc(&rpc_state_update)?; - - let mut state_updates_with_classes = - StateUpdatesWithClasses { state_updates, ..Default::default() }; - - for class_hash in state_updates_with_classes.state_updates.declared_classes.keys() { - match self - .starknet_provider - .get_class(BlockIdOrTag::Number(block_number), class_hash) - .await? - { - StarknetRsContractClass::Legacy(legacy) => { - trace!(target: LOG_TARGET, version = "cairo 0", %class_hash, "Set contract class."); - - let (.., class) = rpc_converter::legacy_rpc_to_class(&legacy)?; - state_updates_with_classes.classes.insert(*class_hash, class); - } - StarknetRsContractClass::Sierra(s) => { - trace!(target: LOG_TARGET, version = "cairo 1", %class_hash, "Set contract class."); - - let class = RpcSierraContractClass::try_from(s).unwrap(); - let class = ContractClass::try_from(RpcContractClass::Class(class)).unwrap(); - - state_updates_with_classes.classes.insert(*class_hash, class); - } - } - } - - Ok((state_updates_with_classes, serialized_state_update)) - } - - async fn fetch_transactions_executions( - &self, - block_number: BlockNumber, - ) -> ProviderResult> { - trace!(target: LOG_TARGET, block_number = %block_number, "Fetching transactions executions."); - - let client = HttpClientBuilder::default().build(&self.rpc_url).unwrap(); - - let block_id = BlockIdOrTag::Number(block_number); - let traces = client.transaction_executions_by_block(block_id).await.unwrap(); - - Ok(traces) - } -} diff --git a/crates/saya/provider/src/rpc/state.rs b/crates/saya/provider/src/rpc/state.rs deleted file mode 100644 index e36677fe97..0000000000 --- a/crates/saya/provider/src/rpc/state.rs +++ /dev/null @@ -1,454 +0,0 @@ -//! State update conversion and data availability formatting. -//! -//! For data availability format, all the specification is available here: -//! . -//! -//! We use `U256` from alloy for easier computation (than working with felts). -//! -//! Optims: -//! Currently, the serialize functions are using `iter().find()` on arrays -//! to know if an address has been deployed or declared. -//! To avoid this overhead, we may want to first generate an hashmap of such -//! arrays to then have O(1) search. -use std::collections::{BTreeMap, HashSet}; - -use alloy_primitives::U256; -use katana_primitives::contract::ContractAddress; -use katana_primitives::state::StateUpdates; -use num_traits::ToPrimitive; -use starknet::core::types::{ - ContractStorageDiffItem, DeclaredClassItem, DeployedContractItem, Felt, NonceUpdate, StateDiff, - StateUpdate, -}; - -use crate::ProviderResult; - -// 2 ^ 128 -const CLASS_INFO_FLAG_TRUE: &str = "100000000000000000000000000000000"; - -/// Converts the [`StateUpdate`] RPC type into [`StateUpdate`] Katana primitive. -/// # Arguments -/// -/// * `state_update` - The RPC state update to convert. -pub fn state_updates_from_rpc(state_update: &StateUpdate) -> ProviderResult { - let mut out = StateUpdates::default(); - - let state_diff = &state_update.state_diff; - - for contract_diff in &state_diff.storage_diffs { - let ContractStorageDiffItem { address, storage_entries: entries } = contract_diff; - - let address: ContractAddress = (*address).into(); - - let contract_entry = out.storage_updates.entry(address).or_insert_with(BTreeMap::new); - - for e in entries { - contract_entry.insert(e.key, e.value); - } - } - - for nonce_update in &state_diff.nonces { - let NonceUpdate { contract_address, nonce: new_nonce } = *nonce_update; - out.nonce_updates.insert(contract_address.into(), new_nonce); - } - - for deployed in &state_diff.deployed_contracts { - let DeployedContractItem { address, class_hash } = *deployed; - out.deployed_contracts.insert(address.into(), class_hash); - } - - for decl in &state_diff.declared_classes { - let DeclaredClassItem { class_hash, compiled_class_hash } = decl; - out.declared_classes.insert(*class_hash, *compiled_class_hash); - } - - Ok(out) -} - -/// Converts the [`StateDiff`] from RPC types into a [`Vec`]. -/// -/// Currently, Katana does not support `replaced_classes` and `deprecated_declared_classes`: -/// . -/// -/// For this reason, the [`StateDiff`] serialized here does not take in account -/// the contracts that has only been upgraded via `replace_class` syscall. -/// -/// # Arguments -/// -/// * `state_diff` - The [`StateDiff`] to serialize. -pub fn state_diff_to_felts(state_diff: &StateDiff) -> Vec { - let mut data = vec![]; - - // Order matters here, storage then nonce then deployed. - let mut processed_addresses = serialize_storage_updates(state_diff, &mut data); - serialize_nonce_updates(state_diff, &mut processed_addresses, &mut data); - serialize_deployed_updates(state_diff, &mut processed_addresses, &mut data); - - // Iterate over all the declared classes. - data.push(state_diff.declared_classes.len().into()); - - for decl in &state_diff.declared_classes { - let DeclaredClassItem { class_hash, compiled_class_hash } = decl; - data.push(*class_hash); - data.push(*compiled_class_hash); - } - - data.insert(0, processed_addresses.len().into()); - - data -} - -/// Serializes for the DA all the contracts that have at least one storage update. -/// This may include nonce and/or deployed-declared updates. -/// Returns a [`HashSet`] of all the contract addresses that -/// were uniquely processed. -/// -/// # Arguments -/// -/// * `state_diff` - The state diff to process. -/// * `out` - The output buffer to serialize into. -fn serialize_storage_updates(state_diff: &StateDiff, out: &mut Vec) -> HashSet { - let mut processed_addresses = HashSet::new(); - - for contract_diff in &state_diff.storage_diffs { - let ContractStorageDiffItem { address, storage_entries: entries } = contract_diff; - - processed_addresses.insert(*address); - - let deployed_replaced = - state_diff.deployed_contracts.iter().find(|c| c.address == *address); - // Currently, Katana does not populate the replaced_classes. - //.or_else(|| state_diff.replaced_classes.get(&addr)); - - out.push(*address); - - out.push(compute_update_meta_info( - state_diff.nonces.iter().find(|c| c.contract_address == *address).map(|c| c.nonce), - entries.len() as u64, - deployed_replaced.is_none(), - )); - - if let Some(c) = deployed_replaced { - out.push(c.class_hash); - } - - for e in entries { - out.push(e.key); - out.push(e.value); - } - } - - processed_addresses -} - -/// Serializes for the DA all the contracts that have at least one nonce update. -/// This may include deployed-declared updates. -/// -/// # Arguments -/// -/// * `state_diff` - The state diff to process. -/// * `processed_addresses` - A list of already processed addresses to avoid duplication. -/// * `out` - The output buffer to serialize into. -fn serialize_nonce_updates( - state_diff: &StateDiff, - processed_addresses: &mut HashSet, - out: &mut Vec, -) { - for nonce_update in &state_diff.nonces { - let NonceUpdate { contract_address, nonce: new_nonce } = *nonce_update; - - if !processed_addresses.insert(contract_address) { - continue; - } - - let deployed_replaced = - state_diff.deployed_contracts.iter().find(|c| c.address == contract_address); - // Currently, Katana does not populate the replaced_classes. - //.or_else(|| state_diff.replaced_classes.get(&addr)); - - out.push(contract_address); - - out.push(compute_update_meta_info(Some(new_nonce), 0, deployed_replaced.is_none())); - - if let Some(c) = deployed_replaced { - out.push(c.class_hash); - } - } -} - -/// Serializes for the DA all the contracts that have been deployed -/// or their class hash replaced only. -/// -/// # Arguments -/// -/// * `state_diff` - The state diff to process. -/// * `processed_addresses` - A list of already processed addresses to avoid duplication. -/// * `out` - The output buffer to serialize into. -fn serialize_deployed_updates( - state_diff: &StateDiff, - processed_addresses: &mut HashSet, - out: &mut Vec, -) { - for deployed in &state_diff.deployed_contracts { - let DeployedContractItem { address, class_hash } = *deployed; - - if !processed_addresses.insert(address) { - continue; - } - - out.push(address); - out.push(compute_update_meta_info(None, 0, false)); - out.push(class_hash); - } -} - -/// Formats the contract meta information. -/// -/// |---padding---|---class info flag---|---new nonce---|---# storage updates---| -/// 127 bits 1 bit 64 bits 64 bits -/// -/// # Arguments -/// -/// * `new_nonce` - The new nonce for the contract address, None otherwise. -/// * `n_storage_updates` - The count of storage updates for the contract address. -/// * `is_storage_only` - True if the contract address was only modified with storage updates. False -/// if the contract was deployed or it's class hash replaced during this state update. -fn compute_update_meta_info( - new_nonce: Option, - n_storage_updates: u64, - is_storage_only: bool, -) -> Felt { - let mut meta = if is_storage_only { - U256::from(0) - } else { - U256::from_str_radix(CLASS_INFO_FLAG_TRUE, 16).unwrap() - }; - - if let Some(nonce) = new_nonce { - // At the moment, v0.11 and forward are packing the nonce into 64 bits. - let nonce_u64: u64 = nonce.to_u64().expect("Nonce too large for DA serialization"); - meta += U256::from((nonce_u64 as u128) << 64) - } - - meta += U256::from(n_storage_updates); - - Felt::from_hex(format!("0x{:064x}", meta).as_str()).unwrap() -} - -#[cfg(test)] -mod tests { - use starknet::core::types::StorageEntry; - use starknet::macros::{felt, selector}; - - use super::*; - - #[test] - fn compute_update_meta_info_no_flag() { - let info = compute_update_meta_info(Some(Felt::ONE), 1, true); - assert_eq!(info, felt!("0x00000000000000010000000000000001")); - } - - #[test] - fn compute_update_meta_info_with_flag() { - let info = compute_update_meta_info(Some(Felt::ONE), 1, false); - assert_eq!(info, felt!("0x100000000000000010000000000000001")); - } - - #[test] - fn serialize_storage_updates_only() { - let contract_addr = selector!("addr1"); - - let sd = StateDiff { - storage_diffs: vec![ContractStorageDiffItem { - address: contract_addr, - storage_entries: vec![ - StorageEntry { key: felt!("0x0"), value: felt!("0x1") }, - StorageEntry { key: felt!("0xa"), value: felt!("0xb") }, - ], - }], - deprecated_declared_classes: Default::default(), - declared_classes: Default::default(), - deployed_contracts: Default::default(), - replaced_classes: Default::default(), - nonces: Default::default(), - }; - - let mut data = vec![]; - let addresses = serialize_storage_updates(&sd, &mut data); - assert_eq!(addresses.len(), 1); - assert_eq!(*addresses.get(&contract_addr).unwrap(), contract_addr); - - assert_eq!(data.len(), 6); - assert_eq!(data[0], contract_addr); - assert_eq!(data[1], felt!("0x2")); - assert_eq!(data[2], felt!("0x0")); - assert_eq!(data[3], felt!("0x1")); - assert_eq!(data[4], felt!("0xa")); - assert_eq!(data[5], felt!("0xb")); - } - - #[test] - fn serialize_nonce_updates_only() { - let contract_address = selector!("account1"); - - let sd = StateDiff { - storage_diffs: Default::default(), - deprecated_declared_classes: Default::default(), - declared_classes: Default::default(), - deployed_contracts: Default::default(), - replaced_classes: Default::default(), - nonces: vec![NonceUpdate { contract_address, nonce: felt!("0xff") }], - }; - - let mut data = vec![]; - let mut processed_addresses = HashSet::new(); - - serialize_nonce_updates(&sd, &mut processed_addresses, &mut data); - - assert_eq!(data.len(), 2); - assert_eq!(data[0], contract_address); - assert_eq!(data[1], felt!("0x00000000000000ff0000000000000000")); - } - - #[test] - fn serialize_deployed_updates_only() { - let address = selector!("addr1"); - let class_hash = selector!("classhash1"); - - let sd = StateDiff { - storage_diffs: Default::default(), - deprecated_declared_classes: Default::default(), - declared_classes: Default::default(), - deployed_contracts: vec![DeployedContractItem { address, class_hash }], - replaced_classes: Default::default(), - nonces: Default::default(), - }; - - let mut data = vec![]; - let mut processed_addresses = HashSet::new(); - - serialize_deployed_updates(&sd, &mut processed_addresses, &mut data); - - assert_eq!(data.len(), 3); - assert_eq!(data[0], address); - assert_eq!(data[1], felt!("0x100000000000000000000000000000000")); - assert_eq!(data[2], class_hash); - } - - #[test] - fn state_diff_to_felts_full() { - // Account 1: nonce update + storage updates + deployed + declared. - let a1_addr = selector!("a1"); - let a1_ch = selector!("a1_ch"); - let a1_cch = selector!("a1_cch"); - let a1_nonce = felt!("0xf1"); - - // Account 2: nonce update. - let a2_addr = selector!("a2"); - let a2_nonce = felt!("0xf2"); - - // Contract 1: storage updates + deployed + declared. - let c1_addr = selector!("c1"); - let c1_ch = selector!("c1_ch"); - let c1_cch = selector!("c1_cch"); - - // Contract 2: storage updates only. - let c2_addr = selector!("c2"); - - // Contract 3: only deployed and declared. - let c3_addr = selector!("c3"); - let c3_ch = selector!("c3_ch"); - let c3_cch = selector!("c3_cch"); - - // Contract 4: only declared. - let c4_ch = selector!("c4_ch"); - let c4_cch = selector!("c4_cch"); - - let sd = StateDiff { - storage_diffs: vec![ - ContractStorageDiffItem { - address: a1_addr, - storage_entries: vec![StorageEntry { key: felt!("0x0"), value: felt!("0xa1") }], - }, - ContractStorageDiffItem { - address: c1_addr, - storage_entries: vec![StorageEntry { key: felt!("0x0"), value: felt!("0xc1") }], - }, - ContractStorageDiffItem { - address: c2_addr, - storage_entries: vec![ - StorageEntry { key: felt!("0x0"), value: felt!("0xc2") }, - StorageEntry { key: felt!("0x1"), value: felt!("0xc2") }, - ], - }, - ], - deployed_contracts: vec![ - DeployedContractItem { address: a1_addr, class_hash: a1_ch }, - DeployedContractItem { address: c1_addr, class_hash: c1_ch }, - DeployedContractItem { address: c3_addr, class_hash: c3_ch }, - ], - nonces: vec![ - NonceUpdate { contract_address: a1_addr, nonce: a1_nonce }, - NonceUpdate { contract_address: a2_addr, nonce: a2_nonce }, - ], - declared_classes: vec![ - DeclaredClassItem { class_hash: a1_ch, compiled_class_hash: a1_cch }, - DeclaredClassItem { class_hash: c1_ch, compiled_class_hash: c1_cch }, - DeclaredClassItem { class_hash: c3_ch, compiled_class_hash: c3_cch }, - DeclaredClassItem { class_hash: c4_ch, compiled_class_hash: c4_cch }, - ], - deprecated_declared_classes: Default::default(), - replaced_classes: Default::default(), - }; - - let data = state_diff_to_felts(&sd); - - assert_eq!(data.len(), 31); - - // Only 5 contract updates, no duplication expected. - assert_eq!(data[0], felt!("5")); - - // We follow the order of storage updates first, then nonce updates (that have no - // storage update), then deployed updated and finally declare updates. - - // Storage updates (which may include other updates). - assert_eq!(data[1], a1_addr); - assert_eq!(data[2], felt!("0x100000000000000f10000000000000001")); - assert_eq!(data[3], a1_ch); - assert_eq!(data[4], felt!("0x0")); - assert_eq!(data[5], felt!("0xa1")); - - assert_eq!(data[6], c1_addr); - assert_eq!(data[7], felt!("0x100000000000000000000000000000001")); - assert_eq!(data[8], c1_ch); - assert_eq!(data[9], felt!("0x0")); - assert_eq!(data[10], felt!("0xc1")); - - assert_eq!(data[11], c2_addr); - assert_eq!(data[12], felt!("0x00000000000000000000000000000002")); - assert_eq!(data[13], felt!("0x0")); - assert_eq!(data[14], felt!("0xc2")); - assert_eq!(data[15], felt!("0x1")); - assert_eq!(data[16], felt!("0xc2")); - - // Nonce updates only. - assert_eq!(data[17], a2_addr); - assert_eq!(data[18], felt!("0x00000000000000f20000000000000000")); - - // Deployed only. - assert_eq!(data[19], c3_addr); - assert_eq!(data[20], felt!("0x100000000000000000000000000000000")); - assert_eq!(data[21], c3_ch); - - // Declare updates. - assert_eq!(data[22], felt!("4")); - assert_eq!(data[23], a1_ch); - assert_eq!(data[24], a1_cch); - assert_eq!(data[25], c1_ch); - assert_eq!(data[26], c1_cch); - assert_eq!(data[27], c3_ch); - assert_eq!(data[28], c3_cch); - assert_eq!(data[29], c4_ch); - assert_eq!(data[30], c4_cch); - } -} diff --git a/crates/saya/provider/src/rpc/state_diff.rs b/crates/saya/provider/src/rpc/state_diff.rs deleted file mode 100644 index aee6e87b70..0000000000 --- a/crates/saya/provider/src/rpc/state_diff.rs +++ /dev/null @@ -1,9 +0,0 @@ -use std::collections::HashSet; - -use starknet::core::types::{ - ContractStorageDiffItem, DeclaredClassItem, DeployedContractItem, FieldElement, NonceUpdate, - StateDiff, -}; - -// 2 ^ 128 -const CLASS_INFO_FLAG_TRUE: &str = "0x100000000000000000000000000000000"; diff --git a/crates/saya/provider/src/rpc/transaction.rs b/crates/saya/provider/src/rpc/transaction.rs deleted file mode 100644 index 2550040adc..0000000000 --- a/crates/saya/provider/src/rpc/transaction.rs +++ /dev/null @@ -1,189 +0,0 @@ -//! Transactions related conversions. -use katana_primitives::chain::ChainId; -use katana_primitives::da::DataAvailabilityMode; -use katana_primitives::fee::{ResourceBounds, ResourceBoundsMapping}; -use katana_primitives::transaction::{ - DeclareTx, DeclareTxV1, DeclareTxV2, DeclareTxV3, DeployAccountTx, DeployAccountTxV1, - DeployAccountTxV3, InvokeTx, InvokeTxV1, InvokeTxV3, L1HandlerTx, Tx, TxWithHash, -}; -use num_traits::ToPrimitive; -use starknet::core::types::{ - DeclareTransaction, DeployAccountTransaction, InvokeTransaction, Transaction, -}; - -use crate::ProviderResult; - -pub fn tx_from_rpc(tx_rpc: &Transaction, chain_id: ChainId) -> ProviderResult { - match tx_rpc { - Transaction::Invoke(tx_e) => match tx_e { - InvokeTransaction::V0(tx) => Ok(TxWithHash { - hash: tx.transaction_hash, - transaction: { - Tx::Invoke(InvokeTx::V1(InvokeTxV1 { - max_fee: tx.max_fee.to_u128().expect("valid u128"), - chain_id, - calldata: tx.calldata.clone(), - signature: tx.signature.clone(), - ..Default::default() - })) - }, - }), - InvokeTransaction::V1(tx) => Ok(TxWithHash { - hash: tx.transaction_hash, - transaction: Tx::Invoke(InvokeTx::V1(InvokeTxV1 { - max_fee: tx.max_fee.to_u128().expect("valid u128"), - chain_id, - calldata: tx.calldata.clone(), - signature: tx.signature.clone(), - nonce: tx.nonce, - sender_address: tx.sender_address.into(), - })), - }), - InvokeTransaction::V3(tx) => Ok(TxWithHash { - hash: tx.transaction_hash, - transaction: Tx::Invoke(InvokeTx::V3(InvokeTxV3 { - chain_id, - sender_address: tx.sender_address.into(), - nonce: tx.nonce, - calldata: tx.calldata.clone(), - signature: tx.signature.clone(), - resource_bounds: from_rpc_resource_bounds(tx.resource_bounds.clone()), - tip: tx.tip, - paymaster_data: tx.paymaster_data.clone(), - account_deployment_data: tx.account_deployment_data.clone(), - nonce_data_availability_mode: from_rpc_da_mode(tx.nonce_data_availability_mode), - fee_data_availability_mode: from_rpc_da_mode(tx.fee_data_availability_mode), - })), - }), - }, - Transaction::L1Handler(tx) => { - // Seems we have data loss from only this content from the transaction. - // The receipt may be required to complete the data. - // (or use directly the database...) - Ok(TxWithHash { - hash: tx.transaction_hash, - transaction: Tx::L1Handler(L1HandlerTx { - nonce: tx.nonce.into(), - chain_id, - version: 0u8.into(), - calldata: tx.calldata.clone(), - contract_address: tx.contract_address.into(), - entry_point_selector: tx.entry_point_selector, - ..Default::default() - }), - }) - } - Transaction::Declare(tx_e) => match tx_e { - DeclareTransaction::V0(tx) => Ok(TxWithHash { - hash: tx.transaction_hash, - transaction: Tx::Declare(DeclareTx::V1(DeclareTxV1 { - max_fee: tx.max_fee.to_u128().expect("valid u128"), - chain_id, - class_hash: tx.class_hash, - signature: tx.signature.clone(), - sender_address: tx.sender_address.into(), - ..Default::default() - })), - }), - DeclareTransaction::V1(tx) => Ok(TxWithHash { - hash: tx.transaction_hash, - transaction: Tx::Declare(DeclareTx::V1(DeclareTxV1 { - nonce: tx.nonce, - max_fee: tx.max_fee.to_u128().expect("valid u128"), - chain_id, - class_hash: tx.class_hash, - signature: tx.signature.clone(), - sender_address: tx.sender_address.into(), - })), - }), - DeclareTransaction::V2(tx) => Ok(TxWithHash { - hash: tx.transaction_hash, - transaction: Tx::Declare(DeclareTx::V2(DeclareTxV2 { - nonce: tx.nonce, - max_fee: tx.max_fee.to_u128().expect("valid u128"), - chain_id, - class_hash: tx.class_hash, - signature: tx.signature.clone(), - sender_address: tx.sender_address.into(), - compiled_class_hash: tx.compiled_class_hash, - })), - }), - DeclareTransaction::V3(tx) => Ok(TxWithHash { - hash: tx.transaction_hash, - transaction: Tx::Declare(DeclareTx::V3(DeclareTxV3 { - chain_id, - sender_address: tx.sender_address.into(), - nonce: tx.nonce, - signature: tx.signature.clone(), - class_hash: tx.class_hash, - compiled_class_hash: tx.compiled_class_hash, - resource_bounds: from_rpc_resource_bounds(tx.resource_bounds.clone()), - tip: tx.tip, - paymaster_data: tx.paymaster_data.clone(), - account_deployment_data: tx.account_deployment_data.clone(), - nonce_data_availability_mode: from_rpc_da_mode(tx.nonce_data_availability_mode), - fee_data_availability_mode: from_rpc_da_mode(tx.fee_data_availability_mode), - })), - }), - }, - Transaction::DeployAccount(tx_e) => match tx_e { - DeployAccountTransaction::V1(tx) => Ok(TxWithHash { - hash: tx.transaction_hash, - transaction: Tx::DeployAccount(DeployAccountTx::V1(DeployAccountTxV1 { - nonce: tx.nonce, - max_fee: tx.max_fee.to_u128().expect("valid u128"), - chain_id, - class_hash: tx.class_hash, - signature: tx.signature.clone(), - contract_address_salt: tx.contract_address_salt, - constructor_calldata: tx.constructor_calldata.clone(), - // contract_address field is missing in tx, to be checked. - ..Default::default() - })), - }), - DeployAccountTransaction::V3(tx) => Ok(TxWithHash { - hash: tx.transaction_hash, - transaction: Tx::DeployAccount(DeployAccountTx::V3(DeployAccountTxV3 { - chain_id, - nonce: tx.nonce, - signature: tx.signature.clone(), - class_hash: tx.class_hash, - // contract_address field is missing in tx, to be checked. - contract_address: Default::default(), - contract_address_salt: tx.contract_address_salt, - constructor_calldata: tx.constructor_calldata.clone(), - resource_bounds: from_rpc_resource_bounds(tx.resource_bounds.clone()), - tip: tx.tip, - paymaster_data: tx.paymaster_data.clone(), - nonce_data_availability_mode: from_rpc_da_mode(tx.nonce_data_availability_mode), - fee_data_availability_mode: from_rpc_da_mode(tx.fee_data_availability_mode), - })), - }), - }, - Transaction::Deploy(_) => { - panic!("Deploy transaction not supported"); - } - } -} - -fn from_rpc_da_mode(mode: starknet::core::types::DataAvailabilityMode) -> DataAvailabilityMode { - match mode { - starknet::core::types::DataAvailabilityMode::L1 => DataAvailabilityMode::L1, - starknet::core::types::DataAvailabilityMode::L2 => DataAvailabilityMode::L2, - } -} - -fn from_rpc_resource_bounds( - rpc_bounds: starknet::core::types::ResourceBoundsMapping, -) -> ResourceBoundsMapping { - ResourceBoundsMapping { - l1_gas: ResourceBounds { - max_amount: rpc_bounds.l1_gas.max_amount, - max_price_per_unit: rpc_bounds.l1_gas.max_price_per_unit, - }, - l2_gas: ResourceBounds { - max_amount: rpc_bounds.l2_gas.max_amount, - max_price_per_unit: rpc_bounds.l2_gas.max_price_per_unit, - }, - } -}