// Copyright 2024 RISC Zero, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// This code is automatically generated

#include "fp.h"
#include "fpext.h"

#include <cstdint>

constexpr size_t kInvRate = 4;

// clang-format off
namespace risc0::circuit::recursion {

FpExt poly_fp(size_t cycle, size_t steps, FpExt* poly_mix, Fp** args) {
  size_t mask = steps - 1;
  // loc(unknown)
  Fp x0(0);
  // loc(unknown)
  Fp x1(1);
  // loc(unknown)
  Fp x2(2);
  // loc(unknown)
  Fp x3(3);
  // loc(unknown)
  Fp x4(4);
  // loc(unknown)
  Fp x5(5);
  // loc(unknown)
  Fp x6(6);
  // loc(unknown)
  Fp x7(7);
  // loc(unknown)
  Fp x8(8);
  // loc(unknown)
  Fp x9(9);
  // loc(unknown)
  Fp x10(10);
  // loc(unknown)
  Fp x11(2013265910);
  // loc(unknown)
  Fp x12(65536);
  // loc(unknown)
  Fp x13(1509949441);
  // loc(unknown)
  Fp x14(16);
  // loc(unknown)
  Fp x15(32);
  // loc(unknown)
  Fp x16(64);
  // loc(unknown)
  Fp x17(128);
  // loc(unknown)
  Fp x18(2005401601);
  // loc(unknown)
  Fp x19(256);
  // loc(unknown)
  Fp x20(512);
  // loc(unknown)
  Fp x21(1024);
  // loc(unknown)
  Fp x22(2048);
  // loc(unknown)
  Fp x23(4096);
  // loc(unknown)
  Fp x24(8192);
  // loc(unknown)
  Fp x25(16384);
  // loc(unknown)
  Fp x26(32768);
  // loc(unknown)
  Fp x27(2013235201);
  // loc(unknown)
  Fp x28(131072);
  // loc(unknown)
  Fp x29(262144);
  // loc(unknown)
  Fp x30(524288);
  // loc(unknown)
  Fp x31(1048576);
  // loc(unknown)
  Fp x32(2097152);
  // loc(unknown)
  Fp x33(4194304);
  // loc(unknown)
  Fp x34(8388608);
  // loc(unknown)
  Fp x35(16777216);
  // loc(unknown)
  Fp x36(33554432);
  // loc(unknown)
  Fp x37(67108864);
  // loc(unknown)
  Fp x38(134217728);
  // loc(unknown)
  Fp x39(268435456);
  // loc(unknown)
  Fp x40(536870912);
  // loc(unknown)
  Fp x41(1073741824);
  // loc(unknown)
  Fp x42(268435454);
  // loc(unknown)
  Fp x43(943718400);
  // loc(unknown)
  Fp x44(262278199);
  // loc(unknown)
  Fp x45(127253399);
  // loc(unknown)
  Fp x46(314968988);
  // loc(unknown)
  Fp x47(246143118);
  // loc(unknown)
  Fp x48(157582794);
  // loc(unknown)
  Fp x49(118043943);
  // loc(unknown)
  Fp x50(454905424);
  // loc(unknown)
  Fp x51(815798990);
  // loc(unknown)
  Fp x52(1004040026);
  // loc(unknown)
  Fp x53(1773108264);
  // loc(unknown)
  Fp x54(1066694495);
  // loc(unknown)
  Fp x55(1930780904);
  // loc(unknown)
  Fp x56(1180307149);
  // loc(unknown)
  Fp x57(1464793095);
  // loc(unknown)
  Fp x58(1660766320);
  // loc(unknown)
  Fp x59(1389166148);
  // loc(unknown)
  Fp x60(343354132);
  // loc(unknown)
  Fp x61(1307439985);
  // loc(unknown)
  Fp x62(638242172);
  // loc(unknown)
  Fp x63(525458520);
  // loc(unknown)
  Fp x64(1964135730);
  // loc(unknown)
  Fp x65(1751797115);
  // loc(unknown)
  Fp x66(1421525369);
  // loc(unknown)
  Fp x67(831813382);
  // loc(unknown)
  Fp x68(1003792297);
  // loc(unknown)
  Fp x69(1006235079);
  // loc(unknown)
  Fp x70(1090783436);
  // loc(unknown)
  Fp x71(1111203133);
  // loc(unknown)
  Fp x72(1124078057);
  // loc(unknown)
  Fp x73(1150912935);
  // loc(unknown)
  Fp x74(1170029417);
  // loc(unknown)
  Fp x75(117294666);
  // loc(unknown)
  Fp x76(1201063290);
  // loc(unknown)
  Fp x77(1206940496);
  // loc(unknown)
  Fp x78(1209164052);
  // loc(unknown)
  Fp x79(1213686459);
  // loc(unknown)
  Fp x80(1221257987);
  // loc(unknown)
  Fp x81(1239734761);
  // loc(unknown)
  Fp x82(1262312258);
  // loc(unknown)
  Fp x83(1269493554);
  // loc(unknown)
  Fp x84(1282239129);
  // loc(unknown)
  Fp x85(128479034);
  // loc(unknown)
  Fp x86(1290028279);
  // loc(unknown)
  Fp x87(1291790245);
  // loc(unknown)
  Fp x88(1296144415);
  // loc(unknown)
  Fp x89(1303271640);
  // loc(unknown)
  Fp x90(1333667262);
  // loc(unknown)
  Fp x91(1338899225);
  // loc(unknown)
  Fp x92(1339793538);
  // loc(unknown)
  Fp x93(1380248020);
  // loc(unknown)
  Fp x94(1393671120);
  // loc(unknown)
  Fp x95(1401020792);
  // loc(unknown)
  Fp x96(140621810);
  // loc(unknown)
  Fp x97(1454563174);
  // loc(unknown)
  Fp x98(150307788);
  // loc(unknown)
  Fp x99(1507936940);
  // loc(unknown)
  Fp x100(1518763784);
  // loc(unknown)
  Fp x101(1545325389);
  // loc(unknown)
  Fp x102(1587822577);
  // loc(unknown)
  Fp x103(1608891156);
  // loc(unknown)
  Fp x104(162506101);
  // loc(unknown)
  Fp x105(1647665372);
  // loc(unknown)
  Fp x106(1647670797);
  // loc(unknown)
  Fp x107(1649953458);
  // loc(unknown)
  Fp x108(1672219447);
  // loc(unknown)
  Fp x109(1687379185);
  // loc(unknown)
  Fp x110(1715719711);
  // loc(unknown)
  Fp x111(1718628547);
  // loc(unknown)
  Fp x112(172614232);
  // loc(unknown)
  Fp x113(1737016378);
  // loc(unknown)
  Fp x114(1740472809);
  // loc(unknown)
  Fp x115(1781980094);
  // loc(unknown)
  Fp x116(1832911930);
  // loc(unknown)
  Fp x117(1845603984);
  // loc(unknown)
  Fp x118(1889603648);
  // loc(unknown)
  Fp x119(1889898);
  // loc(unknown)
  Fp x120(1896271507);
  // loc(unknown)
  Fp x121(1917549072);
  // loc(unknown)
  Fp x122(1917861751);
  // loc(unknown)
  Fp x123(1989924532);
  // loc(unknown)
  Fp x124(1997503974);
  // loc(unknown)
  Fp x125(202271745);
  // loc(unknown)
  Fp x126(204228775);
  // loc(unknown)
  Fp x127(228520958);
  // loc(unknown)
  Fp x128(238616145);
  // loc(unknown)
  Fp x129(241306552);
  // loc(unknown)
  Fp x130(273790406);
  // loc(unknown)
  Fp x131(306391314);
  // loc(unknown)
  Fp x132(342857858);
  // loc(unknown)
  Fp x133(390340387);
  // loc(unknown)
  Fp x134(395622276);
  // loc(unknown)
  Fp x135(427731030);
  // loc(unknown)
  Fp x136(459826664);
  // loc(unknown)
  Fp x137(51256176);
  // loc(unknown)
  Fp x138(53007114);
  // loc(unknown)
  Fp x139(540703332);
  // loc(unknown)
  Fp x140(588764636);
  // loc(unknown)
  Fp x141(608401422);
  // loc(unknown)
  Fp x142(622609176);
  // loc(unknown)
  Fp x143(641665156);
  // loc(unknown)
  Fp x144(686842369);
  // loc(unknown)
  Fp x145(695835963);
  // loc(unknown)
  Fp x146(708123747);
  // loc(unknown)
  Fp x147(714957516);
  // loc(unknown)
  Fp x148(716894289);
  // loc(unknown)
  Fp x149(738091882);
  // loc(unknown)
  Fp x150(755691969);
  // loc(unknown)
  Fp x151(781141772);
  // loc(unknown)
  Fp x152(78845751);
  // loc(unknown)
  Fp x153(790726260);
  // loc(unknown)
  Fp x154(809508074);
  // loc(unknown)
  Fp x155(813674331);
  // loc(unknown)
  Fp x156(825405577);
  // loc(unknown)
  Fp x157(897025192);
  // loc(unknown)
  Fp x158(925018226);
  // loc(unknown)
  Fp x159(930036496);
  // loc(unknown)
  Fp x160(942439428);
  // loc(unknown)
  Fp x161(989176635);
  // loc(unknown)
  Fp x162(989618631);
  // loc(unknown)
  Fp x163(993455846);
  // loc(unknown)
  Fp x164(1042892522);
  // loc(unknown)
  Fp x165(1065075039);
  // loc(unknown)
  Fp x166(1079030649);
  // loc(unknown)
  Fp x167(1080533265);
  // loc(unknown)
  Fp x168(1099252725);
  // loc(unknown)
  Fp x169(1147522062);
  // loc(unknown)
  Fp x170(1150410028);
  // loc(unknown)
  Fp x171(1198261138);
  // loc(unknown)
  Fp x172(1215259350);
  // loc(unknown)
  Fp x173(1257820264);
  // loc(unknown)
  Fp x174(1293938517);
  // loc(unknown)
  Fp x175(1402624179);
  // loc(unknown)
  Fp x176(142102402);
  // loc(unknown)
  Fp x177(1424297384);
  // loc(unknown)
  Fp x178(1463323727);
  // loc(unknown)
  Fp x179(1478577620);
  // loc(unknown)
  Fp x180(1507649755);
  // loc(unknown)
  Fp x181(1549062383);
  // loc(unknown)
  Fp x182(1567618575);
  // loc(unknown)
  Fp x183(1584033957);
  // loc(unknown)
  Fp x184(158646617);
  // loc(unknown)
  Fp x185(1608853840);
  // loc(unknown)
  Fp x186(1622328571);
  // loc(unknown)
  Fp x187(162510541);
  // loc(unknown)
  Fp x188(1663353317);
  // loc(unknown)
  Fp x189(1664590951);
  // loc(unknown)
  Fp x190(1748789933);
  // loc(unknown)
  Fp x191(1827572010);
  // loc(unknown)
  Fp x192(1841795381);
  // loc(unknown)
  Fp x193(1891637550);
  // loc(unknown)
  Fp x194(1908416316);
  // loc(unknown)
  Fp x195(1910423126);
  // loc(unknown)
  Fp x196(192082241);
  // loc(unknown)
  Fp x197(1950429111);
  // loc(unknown)
  Fp x198(217046702);
  // loc(unknown)
  Fp x199(27129487);
  // loc(unknown)
  Fp x200(447555988);
  // loc(unknown)
  Fp x201(457372011);
  // loc(unknown)
  Fp x202(538103555);
  // loc(unknown)
  Fp x203(552696906);
  // loc(unknown)
  Fp x204(59510015);
  // loc(unknown)
  Fp x205(623051854);
  // loc(unknown)
  Fp x206(760115692);
  // loc(unknown)
  Fp x207(76770019);
  // loc(unknown)
  Fp x208(855276054);
  // loc(unknown)
  Fp x209(862495875);
  // loc(unknown)
  Fp x210(890243564);
  // loc(unknown)
  Fp x211(946500736);
  // loc(unknown)
  Fp x212(497520322);
  // loc(unknown)
  Fp x213(1001081699);
  // loc(unknown)
  Fp x214(106789798);
  // loc(unknown)
  Fp x215(1083257840);
  // loc(unknown)
  Fp x216(111593398);
  // loc(unknown)
  Fp x217(1188752902);
  // loc(unknown)
  Fp x218(13683276);
  // loc(unknown)
  Fp x219(1389833583);
  // loc(unknown)
  Fp x220(1461037801);
  // loc(unknown)
  Fp x221(1558116381);
  // loc(unknown)
  Fp x222(1792686146);
  // loc(unknown)
  Fp x223(1867716110);
  // loc(unknown)
  Fp x224(1928969209);
  // loc(unknown)
  Fp x225(1942928017);
  // loc(unknown)
  Fp x226(1974912880);
  // loc(unknown)
  Fp x227(1997365680);
  // loc(unknown)
  Fp x228(20525701);
  // loc(unknown)
  Fp x229(375892129);
  // loc(unknown)
  Fp x230(51866717);
  // loc(unknown)
  Fp x231(606789471);
  // loc(unknown)
  Fp x232(658182609);
  // loc(unknown)
  Fp x233(65998480);
  // loc(unknown)
  Fp x234(801504236);
  // loc(unknown)
  Fp x235(918610824);
  // loc(unknown)
  Fp x236(98371040);
  // loc(unknown)
  Fp x237(1930103076);
  // loc(unknown)
  Fp x238(1052077299);
  // loc(unknown)
  Fp x239(1540960371);
  // loc(unknown)
  Fp x240(924863639);
  // loc(unknown)
  Fp x241(1365519753);
  // loc(unknown)
  Fp x242(1726563304);
  // loc(unknown)
  Fp x243(440300254);
  // loc(unknown)
  Fp x244(1891545577);
  // loc(unknown)
  Fp x245(822033215);
  // loc(unknown)
  Fp x246(1111544260);
  // loc(unknown)
  Fp x247(308575117);
  // loc(unknown)
  Fp x248(1708681573);
  // loc(unknown)
  Fp x249(1240419708);
  // loc(unknown)
  Fp x250(1199068823);
  // loc(unknown)
  Fp x251(1186174623);
  // loc(unknown)
  Fp x252(1551596046);
  // loc(unknown)
  Fp x253(1886977120);
  // loc(unknown)
  Fp x254(1327682690);
  // loc(unknown)
  Fp x255(1210751726);
  // loc(unknown)
  Fp x256(1810596765);
  // loc(unknown)
  Fp x257(53041581);
  // loc(unknown)
  Fp x258(723038058);
  // loc(unknown)
  Fp x259(1439947916);
  // loc(unknown)
  Fp x260(1136469704);
  // loc(unknown)
  Fp x261(205609311);
  // loc(unknown)
  Fp x262(1883820770);
  // loc(unknown)
  Fp x263(14387587);
  // loc(unknown)
  Fp x264(720724951);
  // loc(unknown)
  Fp x265(1854174607);
  // loc(unknown)
  Fp x266(1629316321);
  // loc(unknown)
  Fp x267(530151394);
  // loc(unknown)
  Fp x268(1679178250);
  // loc(unknown)
  Fp x269(1549779579);
  // loc(unknown)
  Fp x270(48375137);
  // loc(unknown)
  Fp x271(976057819);
  // loc(unknown)
  Fp x272(463976218);
  // loc(unknown)
  Fp x273(875839332);
  // loc(unknown)
  Fp x274(1946596189);
  // loc(unknown)
  Fp x275(434078361);
  // loc(unknown)
  Fp x276(1878280202);
  // loc(unknown)
  Fp x277(1363837384);
  // loc(unknown)
  Fp x278(1470845646);
  // loc(unknown)
  Fp x279(1792450386);
  // loc(unknown)
  Fp x280(1040977421);
  // loc(unknown)
  Fp x281(12);
  // loc(unknown)
  Fp x282(48);
  // loc(unknown)
  Fp x283(192);
  // loc("zirgen/circuit/recursion/recursion.cpp":23:3)
  FpExt x284 = FpExt(0);
  // loc("top(recursion::Top)/code(recursion::Code)/select(OneHot)/micro_ops(Reg)"("./zirgen/components/mux.h":49:25))
  auto x285 = args[0][1 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/code(recursion::Code)/inst(Mux)/micro_ops(recursion::MicroInsts)/inst[0](recursion::MicroInst)/opcode(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x286 = args[0][8 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/code(recursion::Code)/write_addr(Reg)"("zirgen/circuit/recursion/top.cpp":23:49))
  auto x287 = args[0][0 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[0](recursion::MicroOp)/decode(OneHot)/extract(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x288 = args[2][100 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[0](recursion::MicroOp)/decode(OneHot)/add(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x289 = args[2][91 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[0](recursion::MicroOp)/decode(OneHot)/sub(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x290 = args[2][92 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[0](recursion::MicroOp)/decode(OneHot)/mul(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x291 = args[2][93 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[0](recursion::MicroOp)/decode(OneHot)/inv(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x292 = args[2][94 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[0](recursion::MicroOp)/decode(OneHot)/eq(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x293 = args[2][95 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[0](recursion::MicroOp)/decode(OneHot)/read_iop_header(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x294 = args[2][96 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[0](recursion::MicroOp)/decode(OneHot)/read_iop_body(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x295 = args[2][97 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[0](recursion::MicroOp)/decode(OneHot)/mix_rng(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x296 = args[2][98 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[0](recursion::MicroOp)/decode(OneHot)/select(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x297 = args[2][99 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("./zirgen/components/onehot.h":46:19)
  auto x298 = x288 * x10;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x299 = x290 * x2;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x300 = x291 * x3;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x301 = x292 * x4;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x302 = x293 * x5;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x303 = x294 * x6;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x304 = x295 * x7;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x305 = x296 * x8;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x306 = x297 * x9;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x307 = x289 + x299;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x308 = x307 + x300;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x309 = x308 + x301;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x310 = x309 + x302;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x311 = x310 + x303;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x312 = x311 + x304;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x313 = x312 + x305;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x314 = x313 + x306;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x315 = x314 + x298;
  // loc("./zirgen/components/onehot.h":40:8)
  auto x316 = x315 - x286;
  // loc("./zirgen/components/onehot.h":40:8)
  FpExt x317 = x284 + x316 * poly_mix[0];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[0](recursion::MicroOp)/decode(OneHot)/constop(Reg)"("zirgen/circuit/recursion/micro.cpp":19:44))
  auto x318 = args[2][90 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/code(recursion::Code)/inst(Mux)/micro_ops(recursion::MicroInsts)/inst[0](recursion::MicroInst)/operand[0](Reg)"("zirgen/circuit/recursion/micro.cpp":14:17))
  auto x319 = args[0][9 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/code(recursion::Code)/inst(Mux)/micro_ops(recursion::MicroInsts)/inst[0](recursion::MicroInst)/operand[2](Reg)"("zirgen/circuit/recursion/micro.cpp":16:17))
  auto x320 = args[0][11 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/code(recursion::Code)/inst(Mux)/micro_ops(recursion::MicroInsts)/inst[0](recursion::MicroInst)/operand[1](Reg)"("zirgen/circuit/recursion/micro.cpp":15:17))
  auto x321 = args[0][10 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  auto x322 = args[2][5 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  FpExt x323 = x284 + x322 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x324 = args[2][6 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x325 = x323 + x324 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x326 = args[2][7 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x327 = x325 + x326 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x328 = args[2][8 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x329 = x327 + x328 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x330 = args[2][9 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x331 = x329 + x330 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  auto x332 = args[2][10 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  FpExt x333 = x331 + x332 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x334 = args[2][11 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x335 = x333 + x334 * poly_mix[6];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x336 = args[2][12 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x337 = x335 + x336 * poly_mix[7];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x338 = args[2][13 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x339 = x337 + x338 * poly_mix[8];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x340 = args[2][14 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x341 = x339 + x340 * poly_mix[9];
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x342 = args[2][15 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x343 = x342 - x287;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x344 = x341 + x343 * poly_mix[10];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x345 = args[2][16 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x346 = x345 - x319;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x347 = x344 + x346 * poly_mix[11];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x348 = args[2][17 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x349 = x348 - x321;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x350 = x347 + x349 * poly_mix[12];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x351 = args[2][18 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x352 = x351 - x320;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x353 = x350 + x352 * poly_mix[13];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x354 = args[2][19 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x355 = x353 + x354 * poly_mix[14];
  // loc("zirgen/circuit/recursion/micro.cpp":19:44)
  FpExt x356 = x317 + x318 * x355 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x357 = x322 - x319;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x358 = x284 + x357 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x359 = x332 - x321;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x360 = x358 + x359 * poly_mix[1];
  // loc("zirgen/circuit/recursion/micro.cpp":28:30)
  auto x361 = x324 + x334;
  // loc("zirgen/circuit/recursion/micro.cpp":28:30)
  auto x362 = x326 + x336;
  // loc("zirgen/circuit/recursion/micro.cpp":28:30)
  auto x363 = x328 + x338;
  // loc("zirgen/circuit/recursion/micro.cpp":28:30)
  auto x364 = x330 + x340;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x365 = x360 + x343 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x366 = x345 - x361;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x367 = x365 + x366 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x368 = x348 - x362;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x369 = x367 + x368 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x370 = x351 - x363;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x371 = x369 + x370 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x372 = x354 - x364;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x373 = x371 + x372 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":25:42)
  FpExt x374 = x356 + x289 * x373 * poly_mix[16];
  // loc("zirgen/circuit/recursion/micro.cpp":34:30)
  auto x375 = x324 - x334;
  // loc("zirgen/circuit/recursion/micro.cpp":34:30)
  auto x376 = x326 - x336;
  // loc("zirgen/circuit/recursion/micro.cpp":34:30)
  auto x377 = x328 - x338;
  // loc("zirgen/circuit/recursion/micro.cpp":34:30)
  auto x378 = x330 - x340;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x379 = x345 - x375;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x380 = x365 + x379 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x381 = x348 - x376;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x382 = x380 + x381 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x383 = x351 - x377;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x384 = x382 + x383 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x385 = x354 - x378;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x386 = x384 + x385 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":31:42)
  FpExt x387 = x374 + x290 * x386 * poly_mix[23];
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x388 = x324 * x334;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x389 = x324 * x336;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x390 = x324 * x338;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x391 = x324 * x340;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x392 = x326 * x340;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x393 = x328 * x340;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x394 = x330 * x340;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x395 = x326 * x334;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x396 = x326 * x336;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x397 = x326 * x338;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x398 = x328 * x334;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x399 = x328 * x336;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x400 = x328 * x338;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x401 = x330 * x334;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x402 = x330 * x336;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x403 = x330 * x338;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x404 = x394 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x405 = x389 + x395;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x406 = x390 + x396;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x407 = x391 + x397;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x408 = x392 + x400;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x409 = x393 + x403;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x410 = x409 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x411 = x406 + x398;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x412 = x407 + x399;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x413 = x408 + x402;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x414 = x411 + x404;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x415 = x412 + x401;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x416 = x405 + x410;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x417 = x413 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x418 = x388 + x417;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x419 = x345 - x418;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x420 = x365 + x419 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x421 = x348 - x416;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x422 = x420 + x421 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x423 = x351 - x414;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x424 = x422 + x423 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x425 = x354 - x415;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x426 = x424 + x425 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":37:42)
  FpExt x427 = x387 + x291 * x426 * poly_mix[30];
  // loc("zirgen/circuit/recursion/micro.cpp":43:56)
  auto x428 = x292 * x321;
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  FpExt x429 = x358 + x332 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x430 = x429 + x334 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x431 = x430 + x336 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x432 = x431 + x338 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x433 = x432 + x340 * poly_mix[5];
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x434 = x324 * x345;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x435 = x324 * x348;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x436 = x324 * x351;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x437 = x324 * x354;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x438 = x326 * x354;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x439 = x328 * x354;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x440 = x330 * x354;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x441 = x326 * x345;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x442 = x326 * x348;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x443 = x326 * x351;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x444 = x328 * x345;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x445 = x328 * x348;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x446 = x328 * x351;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x447 = x330 * x345;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x448 = x330 * x348;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x449 = x330 * x351;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x450 = x440 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x451 = x435 + x441;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x452 = x436 + x442;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x453 = x437 + x443;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x454 = x438 + x446;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x455 = x439 + x449;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x456 = x455 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x457 = x452 + x444;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x458 = x453 + x445;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x459 = x454 + x448;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x460 = x457 + x450;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x461 = x458 + x447;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x462 = x451 + x456;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x463 = x459 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x464 = x434 + x463;
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  auto x465 = x1 - x464;
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  FpExt x466 = x433 + x465 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  auto x467 = x0 - x462;
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  FpExt x468 = x466 + x467 * poly_mix[7];
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  auto x469 = x0 - x460;
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  FpExt x470 = x468 + x469 * poly_mix[8];
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  auto x471 = x0 - x461;
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  FpExt x472 = x470 + x471 * poly_mix[9];
  // loc("zirgen/circuit/recursion/micro.cpp":43:56)
  FpExt x473 = x427 + x428 * x472 * poly_mix[37];
  // loc("zirgen/circuit/recursion/micro.cpp":50:62)
  auto x474 = x1 - x321;
  // loc("zirgen/circuit/recursion/micro.cpp":50:62)
  auto x475 = x292 * x474;
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[0](recursion::MicroOp)/extra(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x476 = args[2][101 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/micro.cpp":61:19)
  auto x477 = x1 - x345;
  // loc("zirgen/circuit/recursion/micro.cpp":61:9)
  auto x478 = x345 * x477;
  // loc("zirgen/circuit/recursion/micro.cpp":61:9)
  FpExt x479 = x433 + x478 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":63:8)
  auto x480 = x476 * x324;
  // loc("zirgen/circuit/recursion/micro.cpp":63:8)
  auto x481 = x480 - x477;
  // loc("zirgen/circuit/recursion/micro.cpp":63:8)
  FpExt x482 = x479 + x481 * poly_mix[7];
  // loc("zirgen/circuit/recursion/micro.cpp":65:9)
  FpExt x483 = x482 + x434 * poly_mix[8];
  // loc("zirgen/circuit/recursion/micro.cpp":50:62)
  FpExt x484 = x473 + x475 * x483 * poly_mix[47];
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  auto x485 = x0 - x345;
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  FpExt x486 = x386 + x485 * poly_mix[7];
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  auto x487 = x0 - x348;
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  FpExt x488 = x486 + x487 * poly_mix[8];
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  auto x489 = x0 - x351;
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  FpExt x490 = x488 + x489 * poly_mix[9];
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  auto x491 = x0 - x354;
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  FpExt x492 = x490 + x491 * poly_mix[10];
  // loc("zirgen/circuit/recursion/micro.cpp":68:41)
  FpExt x493 = x484 + x293 * x492 * poly_mix[56];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x494 = x344 + x345 * poly_mix[11];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x495 = x494 + x348 * poly_mix[12];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x496 = x495 + x351 * poly_mix[13];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x497 = x496 + x354 * poly_mix[14];
  // loc("zirgen/circuit/recursion/micro.cpp":75:54)
  FpExt x498 = x493 + x294 * x497 * poly_mix[67];
  // loc("zirgen/circuit/recursion/micro.cpp":94:9)
  auto x499 = x319 * x348;
  // loc("zirgen/circuit/recursion/micro.cpp":94:9)
  FpExt x500 = x341 + x499 * poly_mix[10];
  // loc("zirgen/circuit/recursion/micro.cpp":95:9)
  auto x501 = x321 * x351;
  // loc("zirgen/circuit/recursion/micro.cpp":95:9)
  FpExt x502 = x500 + x501 * poly_mix[11];
  // loc("zirgen/circuit/recursion/micro.cpp":96:9)
  auto x503 = x321 * x354;
  // loc("zirgen/circuit/recursion/micro.cpp":96:9)
  FpExt x504 = x502 + x503 * poly_mix[12];
  // loc("zirgen/circuit/recursion/micro.cpp":82:52)
  FpExt x505 = x498 + x295 * x504 * poly_mix[82];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[2](recursion::MicroOp)/extra(Reg)"("zirgen/circuit/recursion/micro.cpp":107:71))
  auto x506 = args[2][125 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("zirgen/circuit/recursion/micro.cpp":107:15)
  auto x507 = x320 * x506;
  // loc("zirgen/circuit/recursion/micro.cpp":109:11)
  auto x508 = x507 * x12;
  // loc("zirgen/circuit/recursion/micro.cpp":109:11)
  auto x509 = x508 + x326;
  // loc("zirgen/circuit/recursion/micro.cpp":110:11)
  auto x510 = x509 * x12;
  // loc("zirgen/circuit/recursion/micro.cpp":110:11)
  auto x511 = x510 + x324;
  // loc("zirgen/circuit/recursion/micro.cpp":111:11)
  auto x512 = x511 * x12;
  // loc("zirgen/circuit/recursion/micro.cpp":111:11)
  auto x513 = x512 + x336;
  // loc("zirgen/circuit/recursion/micro.cpp":112:11)
  auto x514 = x513 * x12;
  // loc("zirgen/circuit/recursion/micro.cpp":112:11)
  auto x515 = x514 + x334;
  // loc("zirgen/circuit/recursion/micro.cpp":114:5)
  auto x516 = x476 - x515;
  // loc("zirgen/circuit/recursion/micro.cpp":114:5)
  FpExt x517 = x360 + x516 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x518 = x517 + x343 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x519 = x345 - x515;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x520 = x518 + x519 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x521 = x520 + x348 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x522 = x521 + x351 * poly_mix[6];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x523 = x522 + x354 * poly_mix[7];
  // loc("zirgen/circuit/recursion/micro.cpp":98:46)
  FpExt x524 = x505 + x296 * x523 * poly_mix[95];
  // loc("zirgen/circuit/recursion/micro.cpp":119:31)
  auto x525 = x320 * x324;
  // loc("zirgen/circuit/recursion/micro.cpp":119:17)
  auto x526 = x321 + x525;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x527 = x332 - x526;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x528 = x358 + x527 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x529 = x528 + x343 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x530 = x345 - x334;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x531 = x529 + x530 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x532 = x348 - x336;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x533 = x531 + x532 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x534 = x351 - x338;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x535 = x533 + x534 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x536 = x354 - x340;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x537 = x535 + x536 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":117:45)
  FpExt x538 = x524 + x297 * x537 * poly_mix[102];
  // loc("zirgen/circuit/recursion/micro.cpp":134:15)
  auto x539 = x321 * x320;
  // loc("zirgen/circuit/recursion/micro.cpp":135:30)
  auto x540 = x1 - x320;
  // loc("zirgen/circuit/recursion/micro.cpp":135:15)
  auto x541 = x321 * x540;
  // loc("zirgen/circuit/recursion/micro.cpp":134:15)
  auto x542 = x539 * x330;
  // loc("zirgen/circuit/recursion/micro.cpp":136:15)
  auto x543 = x474 * x320;
  // loc("zirgen/circuit/recursion/micro.cpp":137:15)
  auto x544 = x474 * x540;
  // loc("zirgen/circuit/recursion/micro.cpp":135:15)
  auto x545 = x541 * x328;
  // loc("zirgen/circuit/recursion/micro.cpp":136:15)
  auto x546 = x543 * x326;
  // loc("zirgen/circuit/recursion/micro.cpp":137:15)
  auto x547 = x544 * x324;
  // loc("zirgen/circuit/recursion/micro.cpp":134:15)
  auto x548 = x542 + x545;
  // loc("zirgen/circuit/recursion/micro.cpp":134:15)
  auto x549 = x548 + x546;
  // loc("zirgen/circuit/recursion/micro.cpp":134:15)
  auto x550 = x549 + x547;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x551 = x433 + x343 * poly_mix[6];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x552 = x345 - x550;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x553 = x551 + x552 * poly_mix[7];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x554 = x553 + x348 * poly_mix[8];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x555 = x554 + x351 * poly_mix[9];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x556 = x555 + x354 * poly_mix[10];
  // loc("zirgen/circuit/recursion/micro.cpp":130:46)
  FpExt x557 = x538 + x288 * x556 * poly_mix[103];
  // loc("zirgen/circuit/recursion/micro.cpp":153:34)
  auto x558 = x287 + x1;
  // loc("top(recursion::Top)/code(recursion::Code)/inst(Mux)/micro_ops(recursion::MicroInsts)/inst[1](recursion::MicroInst)/opcode(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x559 = args[0][12 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[1](recursion::MicroOp)/decode(OneHot)/add(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x560 = args[2][103 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[1](recursion::MicroOp)/decode(OneHot)/sub(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x561 = args[2][104 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[1](recursion::MicroOp)/decode(OneHot)/mul(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x562 = args[2][105 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[1](recursion::MicroOp)/decode(OneHot)/inv(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x563 = args[2][106 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[1](recursion::MicroOp)/decode(OneHot)/eq(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x564 = args[2][107 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[1](recursion::MicroOp)/decode(OneHot)/read_iop_header(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x565 = args[2][108 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[1](recursion::MicroOp)/decode(OneHot)/read_iop_body(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x566 = args[2][109 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[1](recursion::MicroOp)/decode(OneHot)/mix_rng(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x567 = args[2][110 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[1](recursion::MicroOp)/decode(OneHot)/select(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x568 = args[2][111 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[1](recursion::MicroOp)/decode(OneHot)/extract(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x569 = args[2][112 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("./zirgen/components/onehot.h":46:19)
  auto x570 = x561 * x2;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x571 = x562 * x3;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x572 = x563 * x4;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x573 = x564 * x5;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x574 = x565 * x6;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x575 = x566 * x7;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x576 = x567 * x8;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x577 = x568 * x9;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x578 = x569 * x10;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x579 = x560 + x570;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x580 = x579 + x571;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x581 = x580 + x572;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x582 = x581 + x573;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x583 = x582 + x574;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x584 = x583 + x575;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x585 = x584 + x576;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x586 = x585 + x577;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x587 = x586 + x578;
  // loc("./zirgen/components/onehot.h":40:8)
  auto x588 = x587 - x559;
  // loc("./zirgen/components/onehot.h":40:8)
  FpExt x589 = x557 + x588 * poly_mix[104];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[1](recursion::MicroOp)/decode(OneHot)/constop(Reg)"("zirgen/circuit/recursion/micro.cpp":19:44))
  auto x590 = args[2][102 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/code(recursion::Code)/inst(Mux)/micro_ops(recursion::MicroInsts)/inst[1](recursion::MicroInst)/operand[0](Reg)"("zirgen/circuit/recursion/micro.cpp":14:17))
  auto x591 = args[0][13 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/code(recursion::Code)/inst(Mux)/micro_ops(recursion::MicroInsts)/inst[1](recursion::MicroInst)/operand[2](Reg)"("zirgen/circuit/recursion/micro.cpp":16:17))
  auto x592 = args[0][15 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/code(recursion::Code)/inst(Mux)/micro_ops(recursion::MicroInsts)/inst[1](recursion::MicroInst)/operand[1](Reg)"("zirgen/circuit/recursion/micro.cpp":15:17))
  auto x593 = args[0][14 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  auto x594 = args[2][20 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  FpExt x595 = x284 + x594 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x596 = args[2][21 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x597 = x595 + x596 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x598 = args[2][22 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x599 = x597 + x598 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x600 = args[2][23 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x601 = x599 + x600 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x602 = args[2][24 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x603 = x601 + x602 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  auto x604 = args[2][25 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  FpExt x605 = x603 + x604 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x606 = args[2][26 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x607 = x605 + x606 * poly_mix[6];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x608 = args[2][27 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x609 = x607 + x608 * poly_mix[7];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x610 = args[2][28 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x611 = x609 + x610 * poly_mix[8];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x612 = args[2][29 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x613 = x611 + x612 * poly_mix[9];
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x614 = args[2][30 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x615 = x614 - x558;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x616 = x613 + x615 * poly_mix[10];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x617 = args[2][31 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x618 = x617 - x591;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x619 = x616 + x618 * poly_mix[11];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x620 = args[2][32 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x621 = x620 - x593;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x622 = x619 + x621 * poly_mix[12];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x623 = args[2][33 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x624 = x623 - x592;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x625 = x622 + x624 * poly_mix[13];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x626 = args[2][34 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x627 = x625 + x626 * poly_mix[14];
  // loc("zirgen/circuit/recursion/micro.cpp":19:44)
  FpExt x628 = x589 + x590 * x627 * poly_mix[105];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x629 = x594 - x591;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x630 = x284 + x629 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x631 = x604 - x593;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x632 = x630 + x631 * poly_mix[1];
  // loc("zirgen/circuit/recursion/micro.cpp":28:30)
  auto x633 = x596 + x606;
  // loc("zirgen/circuit/recursion/micro.cpp":28:30)
  auto x634 = x598 + x608;
  // loc("zirgen/circuit/recursion/micro.cpp":28:30)
  auto x635 = x600 + x610;
  // loc("zirgen/circuit/recursion/micro.cpp":28:30)
  auto x636 = x602 + x612;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x637 = x632 + x615 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x638 = x617 - x633;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x639 = x637 + x638 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x640 = x620 - x634;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x641 = x639 + x640 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x642 = x623 - x635;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x643 = x641 + x642 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x644 = x626 - x636;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x645 = x643 + x644 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":25:42)
  FpExt x646 = x628 + x560 * x645 * poly_mix[107];
  // loc("zirgen/circuit/recursion/micro.cpp":34:30)
  auto x647 = x596 - x606;
  // loc("zirgen/circuit/recursion/micro.cpp":34:30)
  auto x648 = x598 - x608;
  // loc("zirgen/circuit/recursion/micro.cpp":34:30)
  auto x649 = x600 - x610;
  // loc("zirgen/circuit/recursion/micro.cpp":34:30)
  auto x650 = x602 - x612;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x651 = x617 - x647;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x652 = x637 + x651 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x653 = x620 - x648;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x654 = x652 + x653 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x655 = x623 - x649;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x656 = x654 + x655 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x657 = x626 - x650;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x658 = x656 + x657 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":31:42)
  FpExt x659 = x646 + x561 * x658 * poly_mix[108];
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x660 = x596 * x606;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x661 = x596 * x608;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x662 = x596 * x610;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x663 = x596 * x612;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x664 = x598 * x612;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x665 = x600 * x612;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x666 = x602 * x612;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x667 = x598 * x606;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x668 = x598 * x608;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x669 = x598 * x610;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x670 = x600 * x606;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x671 = x600 * x608;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x672 = x600 * x610;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x673 = x602 * x606;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x674 = x602 * x608;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x675 = x602 * x610;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x676 = x666 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x677 = x661 + x667;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x678 = x662 + x668;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x679 = x663 + x669;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x680 = x664 + x672;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x681 = x665 + x675;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x682 = x681 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x683 = x678 + x670;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x684 = x679 + x671;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x685 = x680 + x674;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x686 = x683 + x676;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x687 = x684 + x673;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x688 = x677 + x682;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x689 = x685 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x690 = x660 + x689;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x691 = x617 - x690;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x692 = x637 + x691 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x693 = x620 - x688;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x694 = x692 + x693 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x695 = x623 - x686;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x696 = x694 + x695 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x697 = x626 - x687;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x698 = x696 + x697 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":37:42)
  FpExt x699 = x659 + x562 * x698 * poly_mix[109];
  // loc("zirgen/circuit/recursion/micro.cpp":43:56)
  auto x700 = x563 * x593;
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  FpExt x701 = x630 + x604 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x702 = x701 + x606 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x703 = x702 + x608 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x704 = x703 + x610 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x705 = x704 + x612 * poly_mix[5];
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x706 = x596 * x617;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x707 = x596 * x620;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x708 = x596 * x623;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x709 = x596 * x626;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x710 = x598 * x626;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x711 = x600 * x626;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x712 = x602 * x626;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x713 = x598 * x617;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x714 = x598 * x620;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x715 = x598 * x623;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x716 = x600 * x617;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x717 = x600 * x620;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x718 = x600 * x623;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x719 = x602 * x617;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x720 = x602 * x620;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x721 = x602 * x623;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x722 = x712 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x723 = x707 + x713;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x724 = x708 + x714;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x725 = x709 + x715;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x726 = x710 + x718;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x727 = x711 + x721;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x728 = x727 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x729 = x724 + x716;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x730 = x725 + x717;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x731 = x726 + x720;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x732 = x729 + x722;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x733 = x730 + x719;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x734 = x723 + x728;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x735 = x731 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x736 = x706 + x735;
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  auto x737 = x1 - x736;
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  FpExt x738 = x705 + x737 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  auto x739 = x0 - x734;
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  FpExt x740 = x738 + x739 * poly_mix[7];
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  auto x741 = x0 - x732;
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  FpExt x742 = x740 + x741 * poly_mix[8];
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  auto x743 = x0 - x733;
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  FpExt x744 = x742 + x743 * poly_mix[9];
  // loc("zirgen/circuit/recursion/micro.cpp":43:56)
  FpExt x745 = x699 + x700 * x744 * poly_mix[110];
  // loc("zirgen/circuit/recursion/micro.cpp":50:62)
  auto x746 = x1 - x593;
  // loc("zirgen/circuit/recursion/micro.cpp":50:62)
  auto x747 = x563 * x746;
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[1](recursion::MicroOp)/extra(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x748 = args[2][113 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/micro.cpp":61:19)
  auto x749 = x1 - x617;
  // loc("zirgen/circuit/recursion/micro.cpp":61:9)
  auto x750 = x617 * x749;
  // loc("zirgen/circuit/recursion/micro.cpp":61:9)
  FpExt x751 = x705 + x750 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":63:8)
  auto x752 = x748 * x596;
  // loc("zirgen/circuit/recursion/micro.cpp":63:8)
  auto x753 = x752 - x749;
  // loc("zirgen/circuit/recursion/micro.cpp":63:8)
  FpExt x754 = x751 + x753 * poly_mix[7];
  // loc("zirgen/circuit/recursion/micro.cpp":65:9)
  FpExt x755 = x754 + x706 * poly_mix[8];
  // loc("zirgen/circuit/recursion/micro.cpp":50:62)
  FpExt x756 = x745 + x747 * x755 * poly_mix[111];
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  auto x757 = x0 - x617;
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  FpExt x758 = x658 + x757 * poly_mix[7];
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  auto x759 = x0 - x620;
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  FpExt x760 = x758 + x759 * poly_mix[8];
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  auto x761 = x0 - x623;
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  FpExt x762 = x760 + x761 * poly_mix[9];
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  auto x763 = x0 - x626;
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  FpExt x764 = x762 + x763 * poly_mix[10];
  // loc("zirgen/circuit/recursion/micro.cpp":68:41)
  FpExt x765 = x756 + x564 * x764 * poly_mix[112];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x766 = x616 + x617 * poly_mix[11];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x767 = x766 + x620 * poly_mix[12];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x768 = x767 + x623 * poly_mix[13];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x769 = x768 + x626 * poly_mix[14];
  // loc("zirgen/circuit/recursion/micro.cpp":75:54)
  FpExt x770 = x765 + x565 * x769 * poly_mix[113];
  // loc("zirgen/circuit/recursion/micro.cpp":94:9)
  auto x771 = x591 * x620;
  // loc("zirgen/circuit/recursion/micro.cpp":94:9)
  FpExt x772 = x613 + x771 * poly_mix[10];
  // loc("zirgen/circuit/recursion/micro.cpp":95:9)
  auto x773 = x593 * x623;
  // loc("zirgen/circuit/recursion/micro.cpp":95:9)
  FpExt x774 = x772 + x773 * poly_mix[11];
  // loc("zirgen/circuit/recursion/micro.cpp":96:9)
  auto x775 = x593 * x626;
  // loc("zirgen/circuit/recursion/micro.cpp":96:9)
  FpExt x776 = x774 + x775 * poly_mix[12];
  // loc("zirgen/circuit/recursion/micro.cpp":82:52)
  FpExt x777 = x770 + x566 * x776 * poly_mix[114];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[0](recursion::MicroOp)/extra(Reg)"("zirgen/circuit/recursion/micro.cpp":107:71))
  auto x778 = args[2][101 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/micro.cpp":107:15)
  auto x779 = x592 * x778;
  // loc("zirgen/circuit/recursion/micro.cpp":109:11)
  auto x780 = x779 * x12;
  // loc("zirgen/circuit/recursion/micro.cpp":109:11)
  auto x781 = x780 + x598;
  // loc("zirgen/circuit/recursion/micro.cpp":110:11)
  auto x782 = x781 * x12;
  // loc("zirgen/circuit/recursion/micro.cpp":110:11)
  auto x783 = x782 + x596;
  // loc("zirgen/circuit/recursion/micro.cpp":111:11)
  auto x784 = x783 * x12;
  // loc("zirgen/circuit/recursion/micro.cpp":111:11)
  auto x785 = x784 + x608;
  // loc("zirgen/circuit/recursion/micro.cpp":112:11)
  auto x786 = x785 * x12;
  // loc("zirgen/circuit/recursion/micro.cpp":112:11)
  auto x787 = x786 + x606;
  // loc("zirgen/circuit/recursion/micro.cpp":114:5)
  auto x788 = x748 - x787;
  // loc("zirgen/circuit/recursion/micro.cpp":114:5)
  FpExt x789 = x632 + x788 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x790 = x789 + x615 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x791 = x617 - x787;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x792 = x790 + x791 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x793 = x792 + x620 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x794 = x793 + x623 * poly_mix[6];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x795 = x794 + x626 * poly_mix[7];
  // loc("zirgen/circuit/recursion/micro.cpp":98:46)
  FpExt x796 = x777 + x567 * x795 * poly_mix[115];
  // loc("zirgen/circuit/recursion/micro.cpp":119:31)
  auto x797 = x592 * x596;
  // loc("zirgen/circuit/recursion/micro.cpp":119:17)
  auto x798 = x593 + x797;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x799 = x604 - x798;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x800 = x630 + x799 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x801 = x800 + x615 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x802 = x617 - x606;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x803 = x801 + x802 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x804 = x620 - x608;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x805 = x803 + x804 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x806 = x623 - x610;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x807 = x805 + x806 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x808 = x626 - x612;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x809 = x807 + x808 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":117:45)
  FpExt x810 = x796 + x568 * x809 * poly_mix[116];
  // loc("zirgen/circuit/recursion/micro.cpp":134:15)
  auto x811 = x593 * x592;
  // loc("zirgen/circuit/recursion/micro.cpp":135:30)
  auto x812 = x1 - x592;
  // loc("zirgen/circuit/recursion/micro.cpp":135:15)
  auto x813 = x593 * x812;
  // loc("zirgen/circuit/recursion/micro.cpp":134:15)
  auto x814 = x811 * x602;
  // loc("zirgen/circuit/recursion/micro.cpp":136:15)
  auto x815 = x746 * x592;
  // loc("zirgen/circuit/recursion/micro.cpp":137:15)
  auto x816 = x746 * x812;
  // loc("zirgen/circuit/recursion/micro.cpp":135:15)
  auto x817 = x813 * x600;
  // loc("zirgen/circuit/recursion/micro.cpp":136:15)
  auto x818 = x815 * x598;
  // loc("zirgen/circuit/recursion/micro.cpp":137:15)
  auto x819 = x816 * x596;
  // loc("zirgen/circuit/recursion/micro.cpp":134:15)
  auto x820 = x814 + x817;
  // loc("zirgen/circuit/recursion/micro.cpp":134:15)
  auto x821 = x820 + x818;
  // loc("zirgen/circuit/recursion/micro.cpp":134:15)
  auto x822 = x821 + x819;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x823 = x705 + x615 * poly_mix[6];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x824 = x617 - x822;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x825 = x823 + x824 * poly_mix[7];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x826 = x825 + x620 * poly_mix[8];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x827 = x826 + x623 * poly_mix[9];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x828 = x827 + x626 * poly_mix[10];
  // loc("zirgen/circuit/recursion/micro.cpp":130:46)
  FpExt x829 = x810 + x569 * x828 * poly_mix[118];
  // loc("zirgen/circuit/recursion/micro.cpp":153:34)
  auto x830 = x287 + x2;
  // loc("top(recursion::Top)/code(recursion::Code)/inst(Mux)/micro_ops(recursion::MicroInsts)/inst[2](recursion::MicroInst)/opcode(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x831 = args[0][16 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[2](recursion::MicroOp)/decode(OneHot)/add(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x832 = args[2][115 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[2](recursion::MicroOp)/decode(OneHot)/sub(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x833 = args[2][116 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[2](recursion::MicroOp)/decode(OneHot)/mul(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x834 = args[2][117 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[2](recursion::MicroOp)/decode(OneHot)/inv(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x835 = args[2][118 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[2](recursion::MicroOp)/decode(OneHot)/eq(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x836 = args[2][119 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[2](recursion::MicroOp)/decode(OneHot)/read_iop_header(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x837 = args[2][120 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[2](recursion::MicroOp)/decode(OneHot)/read_iop_body(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x838 = args[2][121 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[2](recursion::MicroOp)/decode(OneHot)/mix_rng(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x839 = args[2][122 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[2](recursion::MicroOp)/decode(OneHot)/select(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x840 = args[2][123 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[2](recursion::MicroOp)/decode(OneHot)/extract(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x841 = args[2][124 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("./zirgen/components/onehot.h":46:19)
  auto x842 = x833 * x2;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x843 = x834 * x3;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x844 = x835 * x4;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x845 = x836 * x5;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x846 = x837 * x6;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x847 = x838 * x7;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x848 = x839 * x8;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x849 = x840 * x9;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x850 = x841 * x10;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x851 = x832 + x842;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x852 = x851 + x843;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x853 = x852 + x844;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x854 = x853 + x845;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x855 = x854 + x846;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x856 = x855 + x847;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x857 = x856 + x848;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x858 = x857 + x849;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x859 = x858 + x850;
  // loc("./zirgen/components/onehot.h":40:8)
  auto x860 = x859 - x831;
  // loc("./zirgen/components/onehot.h":40:8)
  FpExt x861 = x829 + x860 * poly_mix[119];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[2](recursion::MicroOp)/decode(OneHot)/constop(Reg)"("zirgen/circuit/recursion/micro.cpp":19:44))
  auto x862 = args[2][114 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/code(recursion::Code)/inst(Mux)/micro_ops(recursion::MicroInsts)/inst[2](recursion::MicroInst)/operand[0](Reg)"("zirgen/circuit/recursion/micro.cpp":14:17))
  auto x863 = args[0][17 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/code(recursion::Code)/inst(Mux)/micro_ops(recursion::MicroInsts)/inst[2](recursion::MicroInst)/operand[2](Reg)"("zirgen/circuit/recursion/micro.cpp":16:17))
  auto x864 = args[0][19 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/code(recursion::Code)/inst(Mux)/micro_ops(recursion::MicroInsts)/inst[2](recursion::MicroInst)/operand[1](Reg)"("zirgen/circuit/recursion/micro.cpp":15:17))
  auto x865 = args[0][18 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  auto x866 = args[2][35 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  FpExt x867 = x284 + x866 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x868 = args[2][36 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x869 = x867 + x868 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x870 = args[2][37 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x871 = x869 + x870 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x872 = args[2][38 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x873 = x871 + x872 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x874 = args[2][39 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x875 = x873 + x874 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  auto x876 = args[2][40 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  FpExt x877 = x875 + x876 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x878 = args[2][41 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x879 = x877 + x878 * poly_mix[6];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x880 = args[2][42 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x881 = x879 + x880 * poly_mix[7];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x882 = args[2][43 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x883 = x881 + x882 * poly_mix[8];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x884 = args[2][44 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x885 = x883 + x884 * poly_mix[9];
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x886 = args[2][45 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x887 = x886 - x830;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x888 = x885 + x887 * poly_mix[10];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x889 = args[2][46 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x890 = x889 - x863;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x891 = x888 + x890 * poly_mix[11];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x892 = args[2][47 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x893 = x892 - x865;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x894 = x891 + x893 * poly_mix[12];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x895 = args[2][48 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x896 = x895 - x864;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x897 = x894 + x896 * poly_mix[13];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x898 = args[2][49 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x899 = x897 + x898 * poly_mix[14];
  // loc("zirgen/circuit/recursion/micro.cpp":19:44)
  FpExt x900 = x861 + x862 * x899 * poly_mix[120];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x901 = x866 - x863;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x902 = x284 + x901 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x903 = x876 - x865;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x904 = x902 + x903 * poly_mix[1];
  // loc("zirgen/circuit/recursion/micro.cpp":28:30)
  auto x905 = x868 + x878;
  // loc("zirgen/circuit/recursion/micro.cpp":28:30)
  auto x906 = x870 + x880;
  // loc("zirgen/circuit/recursion/micro.cpp":28:30)
  auto x907 = x872 + x882;
  // loc("zirgen/circuit/recursion/micro.cpp":28:30)
  auto x908 = x874 + x884;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x909 = x904 + x887 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x910 = x889 - x905;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x911 = x909 + x910 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x912 = x892 - x906;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x913 = x911 + x912 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x914 = x895 - x907;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x915 = x913 + x914 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x916 = x898 - x908;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x917 = x915 + x916 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":25:42)
  FpExt x918 = x900 + x832 * x917 * poly_mix[121];
  // loc("zirgen/circuit/recursion/micro.cpp":34:30)
  auto x919 = x868 - x878;
  // loc("zirgen/circuit/recursion/micro.cpp":34:30)
  auto x920 = x870 - x880;
  // loc("zirgen/circuit/recursion/micro.cpp":34:30)
  auto x921 = x872 - x882;
  // loc("zirgen/circuit/recursion/micro.cpp":34:30)
  auto x922 = x874 - x884;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x923 = x889 - x919;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x924 = x909 + x923 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x925 = x892 - x920;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x926 = x924 + x925 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x927 = x895 - x921;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x928 = x926 + x927 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x929 = x898 - x922;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x930 = x928 + x929 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":31:42)
  FpExt x931 = x918 + x833 * x930 * poly_mix[122];
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x932 = x868 * x878;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x933 = x868 * x880;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x934 = x868 * x882;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x935 = x868 * x884;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x936 = x870 * x884;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x937 = x872 * x884;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x938 = x874 * x884;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x939 = x870 * x878;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x940 = x870 * x880;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x941 = x870 * x882;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x942 = x872 * x878;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x943 = x872 * x880;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x944 = x872 * x882;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x945 = x874 * x878;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x946 = x874 * x880;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x947 = x874 * x882;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x948 = x938 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x949 = x933 + x939;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x950 = x934 + x940;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x951 = x935 + x941;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x952 = x936 + x944;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x953 = x937 + x947;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x954 = x953 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x955 = x950 + x942;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x956 = x951 + x943;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x957 = x952 + x946;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x958 = x955 + x948;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x959 = x956 + x945;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x960 = x949 + x954;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x961 = x957 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":40:30)
  auto x962 = x932 + x961;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x963 = x889 - x962;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x964 = x909 + x963 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x965 = x892 - x960;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x966 = x964 + x965 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x967 = x895 - x958;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x968 = x966 + x967 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x969 = x898 - x959;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x970 = x968 + x969 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":37:42)
  FpExt x971 = x931 + x834 * x970 * poly_mix[123];
  // loc("zirgen/circuit/recursion/micro.cpp":43:56)
  auto x972 = x835 * x865;
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  FpExt x973 = x902 + x876 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x974 = x973 + x878 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x975 = x974 + x880 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x976 = x975 + x882 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x977 = x976 + x884 * poly_mix[5];
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x978 = x868 * x889;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x979 = x868 * x892;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x980 = x868 * x895;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x981 = x868 * x898;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x982 = x870 * x898;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x983 = x872 * x898;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x984 = x874 * x898;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x985 = x870 * x889;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x986 = x870 * x892;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x987 = x870 * x895;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x988 = x872 * x889;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x989 = x872 * x892;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x990 = x872 * x895;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x991 = x874 * x889;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x992 = x874 * x892;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x993 = x874 * x895;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x994 = x984 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x995 = x979 + x985;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x996 = x980 + x986;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x997 = x981 + x987;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x998 = x982 + x990;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x999 = x983 + x993;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x1000 = x999 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x1001 = x996 + x988;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x1002 = x997 + x989;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x1003 = x998 + x992;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x1004 = x1001 + x994;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x1005 = x1002 + x991;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x1006 = x995 + x1000;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x1007 = x1003 * x11;
  // loc("zirgen/circuit/recursion/micro.cpp":48:23)
  auto x1008 = x978 + x1007;
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  auto x1009 = x1 - x1008;
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  FpExt x1010 = x977 + x1009 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  auto x1011 = x0 - x1006;
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  FpExt x1012 = x1010 + x1011 * poly_mix[7];
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  auto x1013 = x0 - x1004;
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  FpExt x1014 = x1012 + x1013 * poly_mix[8];
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  auto x1015 = x0 - x1005;
  // loc("zirgen/circuit/recursion/micro.cpp":48:8)
  FpExt x1016 = x1014 + x1015 * poly_mix[9];
  // loc("zirgen/circuit/recursion/micro.cpp":43:56)
  FpExt x1017 = x971 + x972 * x1016 * poly_mix[124];
  // loc("zirgen/circuit/recursion/micro.cpp":50:62)
  auto x1018 = x1 - x865;
  // loc("zirgen/circuit/recursion/micro.cpp":50:62)
  auto x1019 = x835 * x1018;
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[2](recursion::MicroOp)/extra(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1020 = args[2][125 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/micro.cpp":61:19)
  auto x1021 = x1 - x889;
  // loc("zirgen/circuit/recursion/micro.cpp":61:9)
  auto x1022 = x889 * x1021;
  // loc("zirgen/circuit/recursion/micro.cpp":61:9)
  FpExt x1023 = x977 + x1022 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":63:8)
  auto x1024 = x1020 * x868;
  // loc("zirgen/circuit/recursion/micro.cpp":63:8)
  auto x1025 = x1024 - x1021;
  // loc("zirgen/circuit/recursion/micro.cpp":63:8)
  FpExt x1026 = x1023 + x1025 * poly_mix[7];
  // loc("zirgen/circuit/recursion/micro.cpp":65:9)
  FpExt x1027 = x1026 + x978 * poly_mix[8];
  // loc("zirgen/circuit/recursion/micro.cpp":50:62)
  FpExt x1028 = x1017 + x1019 * x1027 * poly_mix[125];
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  auto x1029 = x0 - x889;
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  FpExt x1030 = x930 + x1029 * poly_mix[7];
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  auto x1031 = x0 - x892;
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  FpExt x1032 = x1030 + x1031 * poly_mix[8];
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  auto x1033 = x0 - x895;
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  FpExt x1034 = x1032 + x1033 * poly_mix[9];
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  auto x1035 = x0 - x898;
  // loc("zirgen/circuit/recursion/micro.cpp":73:8)
  FpExt x1036 = x1034 + x1035 * poly_mix[10];
  // loc("zirgen/circuit/recursion/micro.cpp":68:41)
  FpExt x1037 = x1028 + x836 * x1036 * poly_mix[126];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1038 = x888 + x889 * poly_mix[11];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1039 = x1038 + x892 * poly_mix[12];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1040 = x1039 + x895 * poly_mix[13];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1041 = x1040 + x898 * poly_mix[14];
  // loc("zirgen/circuit/recursion/micro.cpp":75:54)
  FpExt x1042 = x1037 + x837 * x1041 * poly_mix[127];
  // loc("zirgen/circuit/recursion/micro.cpp":94:9)
  auto x1043 = x863 * x892;
  // loc("zirgen/circuit/recursion/micro.cpp":94:9)
  FpExt x1044 = x885 + x1043 * poly_mix[10];
  // loc("zirgen/circuit/recursion/micro.cpp":95:9)
  auto x1045 = x865 * x895;
  // loc("zirgen/circuit/recursion/micro.cpp":95:9)
  FpExt x1046 = x1044 + x1045 * poly_mix[11];
  // loc("zirgen/circuit/recursion/micro.cpp":96:9)
  auto x1047 = x865 * x898;
  // loc("zirgen/circuit/recursion/micro.cpp":96:9)
  FpExt x1048 = x1046 + x1047 * poly_mix[12];
  // loc("zirgen/circuit/recursion/micro.cpp":82:52)
  FpExt x1049 = x1042 + x838 * x1048 * poly_mix[128];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/op[1](recursion::MicroOp)/extra(Reg)"("zirgen/circuit/recursion/micro.cpp":107:71))
  auto x1050 = args[2][113 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/micro.cpp":107:15)
  auto x1051 = x864 * x1050;
  // loc("zirgen/circuit/recursion/micro.cpp":109:11)
  auto x1052 = x1051 * x12;
  // loc("zirgen/circuit/recursion/micro.cpp":109:11)
  auto x1053 = x1052 + x870;
  // loc("zirgen/circuit/recursion/micro.cpp":110:11)
  auto x1054 = x1053 * x12;
  // loc("zirgen/circuit/recursion/micro.cpp":110:11)
  auto x1055 = x1054 + x868;
  // loc("zirgen/circuit/recursion/micro.cpp":111:11)
  auto x1056 = x1055 * x12;
  // loc("zirgen/circuit/recursion/micro.cpp":111:11)
  auto x1057 = x1056 + x880;
  // loc("zirgen/circuit/recursion/micro.cpp":112:11)
  auto x1058 = x1057 * x12;
  // loc("zirgen/circuit/recursion/micro.cpp":112:11)
  auto x1059 = x1058 + x878;
  // loc("zirgen/circuit/recursion/micro.cpp":114:5)
  auto x1060 = x1020 - x1059;
  // loc("zirgen/circuit/recursion/micro.cpp":114:5)
  FpExt x1061 = x904 + x1060 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x1062 = x1061 + x887 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x1063 = x889 - x1059;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1064 = x1062 + x1063 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1065 = x1064 + x892 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1066 = x1065 + x895 * poly_mix[6];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1067 = x1066 + x898 * poly_mix[7];
  // loc("zirgen/circuit/recursion/micro.cpp":98:46)
  FpExt x1068 = x1049 + x839 * x1067 * poly_mix[129];
  // loc("zirgen/circuit/recursion/micro.cpp":119:31)
  auto x1069 = x864 * x868;
  // loc("zirgen/circuit/recursion/micro.cpp":119:17)
  auto x1070 = x865 + x1069;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x1071 = x876 - x1070;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x1072 = x902 + x1071 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x1073 = x1072 + x887 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x1074 = x889 - x878;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1075 = x1073 + x1074 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x1076 = x892 - x880;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1077 = x1075 + x1076 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x1078 = x895 - x882;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1079 = x1077 + x1078 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x1080 = x898 - x884;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1081 = x1079 + x1080 * poly_mix[6];
  // loc("zirgen/circuit/recursion/micro.cpp":117:45)
  FpExt x1082 = x1068 + x840 * x1081 * poly_mix[130];
  // loc("zirgen/circuit/recursion/micro.cpp":134:15)
  auto x1083 = x865 * x864;
  // loc("zirgen/circuit/recursion/micro.cpp":135:30)
  auto x1084 = x1 - x864;
  // loc("zirgen/circuit/recursion/micro.cpp":135:15)
  auto x1085 = x865 * x1084;
  // loc("zirgen/circuit/recursion/micro.cpp":134:15)
  auto x1086 = x1083 * x874;
  // loc("zirgen/circuit/recursion/micro.cpp":136:15)
  auto x1087 = x1018 * x864;
  // loc("zirgen/circuit/recursion/micro.cpp":137:15)
  auto x1088 = x1018 * x1084;
  // loc("zirgen/circuit/recursion/micro.cpp":135:15)
  auto x1089 = x1085 * x872;
  // loc("zirgen/circuit/recursion/micro.cpp":136:15)
  auto x1090 = x1087 * x870;
  // loc("zirgen/circuit/recursion/micro.cpp":137:15)
  auto x1091 = x1088 * x868;
  // loc("zirgen/circuit/recursion/micro.cpp":134:15)
  auto x1092 = x1086 + x1089;
  // loc("zirgen/circuit/recursion/micro.cpp":134:15)
  auto x1093 = x1092 + x1090;
  // loc("zirgen/circuit/recursion/micro.cpp":134:15)
  auto x1094 = x1093 + x1091;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x1095 = x977 + x887 * poly_mix[6];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x1096 = x889 - x1094;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1097 = x1095 + x1096 * poly_mix[7];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1098 = x1097 + x892 * poly_mix[8];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1099 = x1098 + x895 * poly_mix[9];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1100 = x1099 + x898 * poly_mix[10];
  // loc("zirgen/circuit/recursion/micro.cpp":130:46)
  FpExt x1101 = x1082 + x841 * x1100 * poly_mix[131];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x1102 = x284 + x285 * x1101 * poly_mix[0];
  // loc("top(recursion::Top)/code(recursion::Code)/select(OneHot)/macro_ops(Reg)"("./zirgen/components/mux.h":49:25))
  auto x1103 = args[0][2 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x1104 = x284 + x319 * x284 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":17:3)
  auto x1105 = x334 - x287;
  // loc("zirgen/circuit/recursion/wom.cpp":17:3)
  FpExt x1106 = x284 + x1105 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1107 = x1106 + x336 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1108 = x1107 + x338 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1109 = x1108 + x340 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1110 = x1109 + x342 * poly_mix[4];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x1111 = x1104 + x321 * x1110 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x1112 = x334 - x865;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x1113 = x284 + x1112 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x1114 = x345 - x864;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x1115 = x1113 + x1114 * poly_mix[1];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1116 = x868 * x870;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1117 = x872 * x874;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1118 = x872 * x2;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1119 = x874 * x2;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1120 = x1117 * x2;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1121 = x868 + x1118;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1122 = x870 + x1119;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1123 = x1116 + x1120;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1124 = x876 * x878;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1125 = x876 * x4;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1126 = x878 * x4;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1127 = x1124 * x4;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1128 = x1121 + x1125;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1129 = x1122 + x1126;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1130 = x1123 + x1127;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1131 = x880 * x882;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1132 = x880 * x8;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1133 = x882 * x8;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1134 = x1131 * x8;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1135 = x1128 + x1132;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1136 = x1129 + x1133;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1137 = x1130 + x1134;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1138 = x884 * x886;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1139 = x884 * x14;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1140 = x886 * x14;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1141 = x1138 * x14;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1142 = x1135 + x1139;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1143 = x1136 + x1140;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1144 = x1137 + x1141;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1145 = x889 * x892;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1146 = x889 * x15;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1147 = x892 * x15;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1148 = x1145 * x15;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1149 = x1142 + x1146;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1150 = x1143 + x1147;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1151 = x1144 + x1148;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1152 = x895 * x898;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1153 = x895 * x16;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1154 = x898 * x16;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1155 = x1152 * x16;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1156 = x1149 + x1153;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1157 = x1150 + x1154;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1158 = x1151 + x1155;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1159 = args[2][50 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1160 = args[2][51 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1161 = x1159 * x1160;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1162 = x1159 * x17;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1163 = x1160 * x17;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1164 = x1161 * x17;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1165 = x1156 + x1162;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1166 = x1157 + x1163;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1167 = x1158 + x1164;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1168 = args[2][52 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1169 = args[2][53 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1170 = x1168 * x1169;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1171 = x1168 * x19;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1172 = x1169 * x19;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1173 = x1170 * x19;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1174 = x1165 + x1171;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1175 = x1166 + x1172;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1176 = x1167 + x1173;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1177 = args[2][54 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1178 = args[2][55 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1179 = x1177 * x1178;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1180 = x1177 * x20;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1181 = x1178 * x20;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1182 = x1179 * x20;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1183 = x1174 + x1180;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1184 = x1175 + x1181;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1185 = x1176 + x1182;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1186 = args[2][56 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1187 = args[2][57 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1188 = x1186 * x1187;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1189 = x1186 * x21;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1190 = x1187 * x21;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1191 = x1188 * x21;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1192 = x1183 + x1189;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1193 = x1184 + x1190;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1194 = x1185 + x1191;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1195 = args[2][58 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1196 = args[2][59 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1197 = x1195 * x1196;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1198 = x1195 * x22;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1199 = x1196 * x22;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1200 = x1197 * x22;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1201 = x1192 + x1198;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1202 = x1193 + x1199;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1203 = x1194 + x1200;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1204 = args[2][60 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1205 = args[2][61 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1206 = x1204 * x1205;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1207 = x1204 * x23;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1208 = x1205 * x23;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1209 = x1206 * x23;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1210 = x1201 + x1207;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1211 = x1202 + x1208;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1212 = x1203 + x1209;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1213 = args[2][62 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1214 = args[2][63 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1215 = x1213 * x1214;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1216 = x1213 * x24;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1217 = x1214 * x24;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1218 = x1215 * x24;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1219 = x1210 + x1216;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1220 = x1211 + x1217;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1221 = x1212 + x1218;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1222 = args[2][64 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1223 = args[2][65 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1224 = x1222 * x1223;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1225 = x1222 * x25;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1226 = x1223 * x25;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1227 = x1224 * x25;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1228 = x1219 + x1225;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1229 = x1220 + x1226;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1230 = x1221 + x1227;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1231 = args[2][66 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1232 = args[2][67 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1233 = x1231 * x1232;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1234 = x1231 * x26;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1235 = x1232 * x26;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1236 = x1233 * x26;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1237 = x1228 + x1234;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1238 = x1229 + x1235;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1239 = x1230 + x1236;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1240 = args[2][68 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1241 = args[2][69 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1242 = x1240 * x1241;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1243 = x1240 * x12;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1244 = x1241 * x12;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1245 = x1242 * x12;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1246 = x1237 + x1243;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1247 = x1238 + x1244;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1248 = x1239 + x1245;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1249 = args[2][70 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1250 = args[2][71 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1251 = x1249 * x1250;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1252 = x1249 * x28;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1253 = x1250 * x28;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1254 = x1251 * x28;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1255 = x1246 + x1252;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1256 = x1247 + x1253;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1257 = x1248 + x1254;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1258 = args[2][72 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1259 = args[2][73 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1260 = x1258 * x1259;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1261 = x1258 * x29;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1262 = x1259 * x29;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1263 = x1260 * x29;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1264 = x1255 + x1261;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1265 = x1256 + x1262;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1266 = x1257 + x1263;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1267 = args[2][74 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1268 = args[2][75 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1269 = x1267 * x1268;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1270 = x1267 * x30;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1271 = x1268 * x30;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1272 = x1269 * x30;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1273 = x1264 + x1270;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1274 = x1265 + x1271;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1275 = x1266 + x1272;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1276 = args[2][76 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1277 = args[2][77 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1278 = x1276 * x1277;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1279 = x1276 * x31;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1280 = x1277 * x31;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1281 = x1278 * x31;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1282 = x1273 + x1279;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1283 = x1274 + x1280;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1284 = x1275 + x1281;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1285 = args[2][78 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1286 = args[2][79 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1287 = x1285 * x1286;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1288 = x1285 * x32;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1289 = x1286 * x32;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1290 = x1287 * x32;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1291 = x1282 + x1288;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1292 = x1283 + x1289;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1293 = x1284 + x1290;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1294 = args[2][80 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1295 = args[2][81 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1296 = x1294 * x1295;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1297 = x1294 * x33;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1298 = x1295 * x33;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1299 = x1296 * x33;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1300 = x1291 + x1297;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1301 = x1292 + x1298;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1302 = x1293 + x1299;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1303 = args[2][82 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1304 = args[2][83 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1305 = x1303 * x1304;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1306 = x1303 * x34;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1307 = x1304 * x34;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1308 = x1305 * x34;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1309 = x1300 + x1306;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1310 = x1301 + x1307;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1311 = x1302 + x1308;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1312 = args[2][84 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1313 = args[2][85 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1314 = x1312 * x1313;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1315 = x1312 * x35;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1316 = x1313 * x35;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1317 = x1314 * x35;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1318 = x1309 + x1315;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1319 = x1310 + x1316;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1320 = x1311 + x1317;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1321 = args[2][86 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1322 = args[2][87 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1323 = x1321 * x1322;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1324 = x1321 * x36;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1325 = x1322 * x36;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1326 = x1323 * x36;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1327 = x1318 + x1324;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1328 = x1319 + x1325;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1329 = x1320 + x1326;
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_a[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1330 = args[2][88 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/bits_b[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1331 = args[2][89 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1332 = x1330 * x1331;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1333 = x1330 * x37;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1334 = x1331 * x37;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1335 = x1332 * x37;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1336 = x1327 + x1333;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1337 = x1328 + x1334;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1338 = x1329 + x1335;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1339 = x318 * x289;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1340 = x318 * x38;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1341 = x289 * x38;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1342 = x1339 * x38;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1343 = x1336 + x1340;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1344 = x1337 + x1341;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1345 = x1338 + x1342;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1346 = x290 * x291;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1347 = x290 * x39;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1348 = x291 * x39;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1349 = x1346 * x39;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1350 = x1343 + x1347;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1351 = x1344 + x1348;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1352 = x1345 + x1349;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1353 = x292 * x293;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1354 = x292 * x40;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1355 = x293 * x40;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1356 = x1353 * x40;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1357 = x1350 + x1354;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1358 = x1351 + x1355;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1359 = x1352 + x1356;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1360 = x294 * x295;
  // loc("zirgen/circuit/recursion/bits.cpp":78:19)
  auto x1361 = x294 * x41;
  // loc("zirgen/circuit/recursion/bits.cpp":79:19)
  auto x1362 = x295 * x41;
  // loc("zirgen/circuit/recursion/bits.cpp":80:19)
  auto x1363 = x1360 * x41;
  // loc("zirgen/circuit/recursion/bits.cpp":78:12)
  auto x1364 = x1357 + x1361;
  // loc("zirgen/circuit/recursion/bits.cpp":79:12)
  auto x1365 = x1358 + x1362;
  // loc("zirgen/circuit/recursion/bits.cpp":80:12)
  auto x1366 = x1359 + x1363;
  // loc("zirgen/circuit/recursion/bits.cpp":82:6)
  auto x1367 = x1364 - x336;
  // loc("zirgen/circuit/recursion/bits.cpp":82:6)
  FpExt x1368 = x1115 + x1367 * poly_mix[2];
  // loc("zirgen/circuit/recursion/bits.cpp":83:6)
  auto x1369 = x1365 - x348;
  // loc("zirgen/circuit/recursion/bits.cpp":83:6)
  FpExt x1370 = x1368 + x1369 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x1371 = x596 - x287;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x1372 = x1370 + x1371 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x1373 = x598 - x1366;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1374 = x1372 + x1373 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1375 = x1374 + x600 * poly_mix[6];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1376 = x1375 + x602 * poly_mix[7];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1377 = x1376 + x604 * poly_mix[8];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x1378 = x1111 + x320 * x1377 * poly_mix[5];
  // loc("top(recursion::Top)/code(recursion::Code)/inst(Mux)/macro_ops(recursion::MacroInst)/operand[2](Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1379 = args[0][20 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1380 = x868 * x1240;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1381 = x870 * x1241;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1382 = x870 * x2;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1383 = x1241 * x2;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1384 = x1381 * x2;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1385 = x868 + x1382;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1386 = x1240 + x1383;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1387 = x1380 + x1384;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1388 = x872 * x1249;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1389 = x872 * x4;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1390 = x1249 * x4;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1391 = x1388 * x4;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1392 = x1385 + x1389;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1393 = x1386 + x1390;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1394 = x1387 + x1391;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1395 = x874 * x1250;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1396 = x874 * x8;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1397 = x1250 * x8;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1398 = x1395 * x8;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1399 = x1392 + x1396;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1400 = x1393 + x1397;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1401 = x1394 + x1398;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1402 = x876 * x1258;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1403 = x876 * x14;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1404 = x1258 * x14;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1405 = x1402 * x14;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1406 = x1399 + x1403;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1407 = x1400 + x1404;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1408 = x1401 + x1405;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1409 = x878 * x1259;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1410 = x878 * x15;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1411 = x1259 * x15;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1412 = x1409 * x15;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1413 = x1406 + x1410;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1414 = x1407 + x1411;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1415 = x1408 + x1412;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1416 = x880 * x1267;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1417 = x880 * x16;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1418 = x1267 * x16;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1419 = x1416 * x16;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1420 = x1413 + x1417;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1421 = x1414 + x1418;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1422 = x1415 + x1419;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1423 = x882 * x1268;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1424 = x882 * x17;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1425 = x1268 * x17;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1426 = x1423 * x17;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1427 = x1420 + x1424;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1428 = x1421 + x1425;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1429 = x1422 + x1426;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1430 = x884 * x1276;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1431 = x884 * x19;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1432 = x1276 * x19;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1433 = x1430 * x19;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1434 = x1427 + x1431;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1435 = x1428 + x1432;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1436 = x1429 + x1433;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1437 = x886 * x1277;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1438 = x886 * x20;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1439 = x1277 * x20;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1440 = x1437 * x20;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1441 = x1434 + x1438;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1442 = x1435 + x1439;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1443 = x1436 + x1440;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1444 = x889 * x1285;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1445 = x889 * x21;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1446 = x1285 * x21;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1447 = x1444 * x21;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1448 = x1441 + x1445;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1449 = x1442 + x1446;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1450 = x1443 + x1447;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1451 = x892 * x1286;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1452 = x892 * x22;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1453 = x1286 * x22;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1454 = x1451 * x22;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1455 = x1448 + x1452;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1456 = x1449 + x1453;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1457 = x1450 + x1454;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1458 = x895 * x1294;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1459 = x895 * x23;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1460 = x1294 * x23;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1461 = x1458 * x23;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1462 = x1455 + x1459;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1463 = x1456 + x1460;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1464 = x1457 + x1461;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1465 = x898 * x1295;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1466 = x898 * x24;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1467 = x1295 * x24;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1468 = x1465 * x24;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1469 = x1462 + x1466;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1470 = x1463 + x1467;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1471 = x1464 + x1468;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1472 = x1159 * x1303;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1473 = x1159 * x25;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1474 = x1303 * x25;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1475 = x1472 * x25;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1476 = x1469 + x1473;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1477 = x1470 + x1474;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1478 = x1471 + x1475;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1479 = x1160 * x1304;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1480 = x1160 * x26;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1481 = x1304 * x26;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1482 = x1479 * x26;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1483 = x1476 + x1480;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1484 = x1477 + x1481;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1485 = x1478 + x1482;
  // loc("zirgen/circuit/recursion/bits.cpp":38:8)
  auto x1486 = x1483 - x336;
  // loc("zirgen/circuit/recursion/bits.cpp":38:8)
  FpExt x1487 = x1115 + x1486 * poly_mix[2];
  // loc("zirgen/circuit/recursion/bits.cpp":39:8)
  auto x1488 = x1484 - x348;
  // loc("zirgen/circuit/recursion/bits.cpp":39:8)
  FpExt x1489 = x1487 + x1488 * poly_mix[3];
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1490 = x1168 * x1312;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1491 = x1169 * x1313;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1492 = x1169 * x2;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1493 = x1313 * x2;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1494 = x1491 * x2;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1495 = x1168 + x1492;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1496 = x1312 + x1493;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1497 = x1490 + x1494;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1498 = x1177 * x1321;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1499 = x1177 * x4;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1500 = x1321 * x4;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1501 = x1498 * x4;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1502 = x1495 + x1499;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1503 = x1496 + x1500;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1504 = x1497 + x1501;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1505 = x1178 * x1322;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1506 = x1178 * x8;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1507 = x1322 * x8;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1508 = x1505 * x8;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1509 = x1502 + x1506;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1510 = x1503 + x1507;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1511 = x1504 + x1508;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1512 = x1186 * x1330;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1513 = x1186 * x14;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1514 = x1330 * x14;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1515 = x1512 * x14;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1516 = x1509 + x1513;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1517 = x1510 + x1514;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1518 = x1511 + x1515;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1519 = x1187 * x1331;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1520 = x1187 * x15;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1521 = x1331 * x15;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1522 = x1519 * x15;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1523 = x1516 + x1520;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1524 = x1517 + x1521;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1525 = x1518 + x1522;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1526 = x1195 * x318;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1527 = x1195 * x16;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1528 = x318 * x16;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1529 = x1526 * x16;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1530 = x1523 + x1527;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1531 = x1524 + x1528;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1532 = x1525 + x1529;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1533 = x1196 * x289;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1534 = x1196 * x17;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1535 = x289 * x17;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1536 = x1533 * x17;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1537 = x1530 + x1534;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1538 = x1531 + x1535;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1539 = x1532 + x1536;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1540 = x1204 * x290;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1541 = x1204 * x19;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1542 = x290 * x19;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1543 = x1540 * x19;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1544 = x1537 + x1541;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1545 = x1538 + x1542;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1546 = x1539 + x1543;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1547 = x1205 * x291;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1548 = x1205 * x20;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1549 = x291 * x20;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1550 = x1547 * x20;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1551 = x1544 + x1548;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1552 = x1545 + x1549;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1553 = x1546 + x1550;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1554 = x1213 * x292;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1555 = x1213 * x21;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1556 = x292 * x21;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1557 = x1554 * x21;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1558 = x1551 + x1555;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1559 = x1552 + x1556;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1560 = x1553 + x1557;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1561 = x1214 * x293;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1562 = x1214 * x22;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1563 = x293 * x22;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1564 = x1561 * x22;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1565 = x1558 + x1562;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1566 = x1559 + x1563;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1567 = x1560 + x1564;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1568 = x1222 * x294;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1569 = x1222 * x23;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1570 = x294 * x23;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1571 = x1568 * x23;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1572 = x1565 + x1569;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1573 = x1566 + x1570;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1574 = x1567 + x1571;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1575 = x1223 * x295;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1576 = x1223 * x24;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1577 = x295 * x24;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1578 = x1575 * x24;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1579 = x1572 + x1576;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1580 = x1573 + x1577;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1581 = x1574 + x1578;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1582 = x1231 * x296;
  // loc("zirgen/circuit/recursion/bits.cpp":34:21)
  auto x1583 = x1231 * x25;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1584 = x296 * x25;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1585 = x1582 * x25;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1586 = x1579 + x1583;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1587 = x1580 + x1584;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1588 = x1581 + x1585;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1589 = x1232 * x297;
  // loc("zirgen/circuit/recursion/bits.cpp":35:21)
  auto x1590 = x297 * x26;
  // loc("zirgen/circuit/recursion/bits.cpp":36:21)
  auto x1591 = x1589 * x26;
  // loc("zirgen/circuit/recursion/bits.cpp":34:14)
  auto x1592 = x1586 + x1235;
  // loc("zirgen/circuit/recursion/bits.cpp":35:14)
  auto x1593 = x1587 + x1590;
  // loc("zirgen/circuit/recursion/bits.cpp":36:14)
  auto x1594 = x1588 + x1591;
  // loc("zirgen/circuit/recursion/bits.cpp":38:8)
  auto x1595 = x1592 - x338;
  // loc("zirgen/circuit/recursion/bits.cpp":38:8)
  FpExt x1596 = x1489 + x1595 * poly_mix[4];
  // loc("zirgen/circuit/recursion/bits.cpp":39:8)
  auto x1597 = x1593 - x351;
  // loc("zirgen/circuit/recursion/bits.cpp":39:8)
  FpExt x1598 = x1596 + x1597 * poly_mix[5];
  // loc("zirgen/circuit/recursion/bits.cpp":44:30)
  auto x1599 = x1594 * x12;
  // loc("zirgen/circuit/recursion/bits.cpp":44:30)
  auto x1600 = x1599 + x1485;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x1601 = x284 + x1371 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x1602 = x598 - x1600;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1603 = x1601 + x1602 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1604 = x1603 + x600 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1605 = x1604 + x602 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1606 = x1605 + x604 * poly_mix[4];
  // loc("zirgen/circuit/recursion/bits.cpp":42:23)
  FpExt x1607 = x1598 + x1379 * x1606 * poly_mix[6];
  // loc("zirgen/circuit/recursion/bits.cpp":47:27)
  auto x1608 = x1 - x1379;
  // loc("zirgen/circuit/recursion/bits.cpp":51:53)
  auto x1609 = x1594 * x2;
  // loc("zirgen/circuit/recursion/bits.cpp":50:53)
  auto x1610 = x1485 * x2;
  // loc("zirgen/circuit/recursion/bits.cpp":50:19)
  auto x1611 = x336 + x348;
  // loc("zirgen/circuit/recursion/bits.cpp":51:19)
  auto x1612 = x338 + x351;
  // loc("zirgen/circuit/recursion/bits.cpp":50:19)
  auto x1613 = x1611 - x1610;
  // loc("zirgen/circuit/recursion/bits.cpp":51:19)
  auto x1614 = x1612 - x1609;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x1615 = x598 - x1613;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1616 = x1601 + x1615 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x1617 = x600 - x1614;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1618 = x1616 + x1617 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1619 = x1618 + x602 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x1620 = x1619 + x604 * poly_mix[4];
  // loc("zirgen/circuit/recursion/bits.cpp":47:27)
  FpExt x1621 = x1607 + x1608 * x1620 * poly_mix[11];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x1622 = x1378 + x559 * x1621 * poly_mix[14];
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1623 = x288 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1624 = x476 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1625 = x590 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1626 = x560 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1627 = x561 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1628 = x562 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1629 = x563 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1630 = x564 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1631 = x565 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1632 = x566 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1633 = x293 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1634 = x294 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1635 = x295 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1636 = x296 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1637 = x297 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1638 = x292 + x1633;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1639 = x1638 + x1634;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1640 = x1639 + x1635;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1641 = x1640 + x1636;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1642 = x1641 + x1637;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1643 = x1642 + x1623;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1644 = x1643 + x1624;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1645 = x1644 + x1625;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1646 = x1645 + x1626;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1647 = x1646 + x1627;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1648 = x1647 + x1628;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1649 = x1648 + x1629;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1650 = x1649 + x1630;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1651 = x1650 + x1631;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1652 = x1651 + x1632;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x1653 = x0 - x1652;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x1654 = x1653 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":125:20)
  auto x1655 = x1654 - x330;
  // loc("zirgen/circuit/recursion/sha.cpp":125:19)
  auto x1656 = x1655 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":126:20)
  auto x1657 = x1 - x1656;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  auto x1658 = x1656 * x1657;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  FpExt x1659 = x1115 + x1658 * poly_mix[2];
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1660 = x568 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1661 = x569 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1662 = x748 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1663 = x862 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1664 = x832 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1665 = x833 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1666 = x834 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1667 = x835 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1668 = x836 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1669 = x837 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1670 = x838 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1671 = x839 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1672 = x840 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1673 = x841 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1674 = x1020 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1675 = x567 + x1660;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1676 = x1675 + x1661;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1677 = x1676 + x1662;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1678 = x1677 + x1663;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1679 = x1678 + x1664;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1680 = x1679 + x1665;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1681 = x1680 + x1666;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1682 = x1681 + x1667;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1683 = x1682 + x1668;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1684 = x1683 + x1669;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1685 = x1684 + x1670;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1686 = x1685 + x1671;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1687 = x1686 + x1672;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1688 = x1687 + x1673;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1689 = x1688 + x1674;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x1690 = x1654 - x1689;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x1691 = x1690 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":129:21)
  auto x1692 = x1691 - x332;
  // loc("zirgen/circuit/recursion/sha.cpp":129:20)
  auto x1693 = x1692 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":130:21)
  auto x1694 = x1 - x1693;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  auto x1695 = x1693 * x1694;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  FpExt x1696 = x1659 + x1695 * poly_mix[3];
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1697 = x608 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1698 = x610 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1699 = x612 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1700 = x614 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1701 = x617 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1702 = x620 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1703 = x623 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1704 = x626 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1705 = x866 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1706 = x868 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1707 = x870 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1708 = x872 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1709 = x874 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1710 = x876 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1711 = x878 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1712 = x606 + x1697;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1713 = x1712 + x1698;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1714 = x1713 + x1699;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1715 = x1714 + x1700;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1716 = x1715 + x1701;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1717 = x1716 + x1702;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1718 = x1717 + x1703;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1719 = x1718 + x1704;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1720 = x1719 + x1705;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1721 = x1720 + x1706;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1722 = x1721 + x1707;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1723 = x1722 + x1708;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1724 = x1723 + x1709;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1725 = x1724 + x1710;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1726 = x1725 + x1711;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x1727 = x336 - x1726;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x1728 = x1727 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":125:20)
  auto x1729 = x1728 - x322;
  // loc("zirgen/circuit/recursion/sha.cpp":125:19)
  auto x1730 = x1729 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":126:20)
  auto x1731 = x1 - x1730;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  auto x1732 = x1730 * x1731;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  FpExt x1733 = x1696 + x1732 * poly_mix[4];
  // loc("zirgen/circuit/recursion/sha.cpp":127:32)
  auto x1734 = x338 + x1728;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1735 = x882 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1736 = x884 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1737 = x886 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1738 = x889 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1739 = x898 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1740 = x1159 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1741 = x1160 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1742 = x1168 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1743 = x1169 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1744 = x1177 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1745 = x1178 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1746 = x1186 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1747 = x1187 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1748 = x880 + x1735;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1749 = x1748 + x1736;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1750 = x1749 + x1737;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1751 = x1750 + x1738;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1752 = x1751 + x1147;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1753 = x1752 + x1153;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1754 = x1753 + x1739;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1755 = x1754 + x1740;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1756 = x1755 + x1741;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1757 = x1756 + x1742;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1758 = x1757 + x1743;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1759 = x1758 + x1744;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1760 = x1759 + x1745;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1761 = x1760 + x1746;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1762 = x1761 + x1747;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x1763 = x1734 - x1762;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x1764 = x1763 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":129:21)
  auto x1765 = x1764 - x324;
  // loc("zirgen/circuit/recursion/sha.cpp":129:20)
  auto x1766 = x1765 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":130:21)
  auto x1767 = x1 - x1766;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  auto x1768 = x1766 * x1767;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  FpExt x1769 = x1733 + x1768 * poly_mix[5];
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1770 = x1205 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1771 = x1213 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1772 = x1214 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1773 = x1222 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1774 = x1223 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1775 = x1231 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1776 = x1232 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1777 = x1240 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1778 = x1241 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1779 = x1249 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1780 = x1250 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1781 = x1258 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1782 = x1259 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1783 = x1267 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1784 = x1268 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1785 = x1204 + x1770;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1786 = x1785 + x1771;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1787 = x1786 + x1772;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1788 = x1787 + x1773;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1789 = x1788 + x1774;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1790 = x1789 + x1775;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1791 = x1790 + x1776;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1792 = x1791 + x1777;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1793 = x1792 + x1778;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1794 = x1793 + x1779;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1795 = x1794 + x1780;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1796 = x1795 + x1781;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1797 = x1796 + x1782;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1798 = x1797 + x1783;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1799 = x1798 + x1784;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x1800 = x348 - x1799;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x1801 = x1800 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":125:20)
  auto x1802 = x1801 - x326;
  // loc("zirgen/circuit/recursion/sha.cpp":125:19)
  auto x1803 = x1802 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":126:20)
  auto x1804 = x1 - x1803;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  auto x1805 = x1803 * x1804;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  FpExt x1806 = x1769 + x1805 * poly_mix[6];
  // loc("zirgen/circuit/recursion/sha.cpp":127:32)
  auto x1807 = x351 + x1801;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1808 = x1277 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1809 = x1285 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1810 = x1286 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1811 = x1294 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1812 = x1295 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1813 = x1303 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1814 = x1304 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1815 = x1312 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1816 = x1313 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1817 = x1321 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1818 = x1322 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1819 = x1330 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1820 = x1331 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1821 = x318 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x1822 = x289 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1823 = x1276 + x1808;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1824 = x1823 + x1809;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1825 = x1824 + x1810;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1826 = x1825 + x1811;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1827 = x1826 + x1812;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1828 = x1827 + x1813;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1829 = x1828 + x1814;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1830 = x1829 + x1815;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1831 = x1830 + x1816;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1832 = x1831 + x1817;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1833 = x1832 + x1818;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1834 = x1833 + x1819;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1835 = x1834 + x1820;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1836 = x1835 + x1821;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x1837 = x1836 + x1822;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x1838 = x1807 - x1837;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x1839 = x1838 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":129:21)
  auto x1840 = x1839 - x328;
  // loc("zirgen/circuit/recursion/sha.cpp":129:20)
  auto x1841 = x1840 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":130:21)
  auto x1842 = x1 - x1841;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  auto x1843 = x1841 * x1842;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  FpExt x1844 = x1806 + x1843 * poly_mix[7];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x1845 = x1622 + x591 * x1844 * poly_mix[30];
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  FpExt x1846 = x284 + x1658 * poly_mix[0];
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  FpExt x1847 = x1846 + x1695 * poly_mix[1];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[0](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1848 = args[2][26 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[1](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1849 = args[2][27 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[2](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1850 = args[2][28 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[3](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1851 = args[2][29 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[4](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1852 = args[2][30 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[5](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1853 = args[2][31 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[6](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1854 = args[2][32 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1855 = args[2][33 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1856 = args[2][34 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1857 = args[2][35 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1858 = args[2][36 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1859 = args[2][37 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1860 = args[2][38 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1861 = args[2][39 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1862 = args[2][40 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1863 = args[2][41 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1864 = args[2][42 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1865 = args[2][43 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1866 = args[2][44 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1867 = args[2][45 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1868 = args[2][46 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1869 = args[2][47 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1870 = args[2][48 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1871 = args[2][49 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1872 = args[2][50 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1873 = args[2][51 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1874 = args[2][52 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[27](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1875 = args[2][53 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[28](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1876 = args[2][54 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[29](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1877 = args[2][55 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[30](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1878 = args[2][56 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[31](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1879 = args[2][57 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[0](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1880 = args[2][26 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[1](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1881 = args[2][27 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[2](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1882 = args[2][28 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[3](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1883 = args[2][29 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[4](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1884 = args[2][30 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[5](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1885 = args[2][31 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[6](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1886 = args[2][32 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1887 = args[2][33 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1888 = args[2][34 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1889 = args[2][35 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1890 = args[2][36 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1891 = args[2][37 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1892 = args[2][38 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1893 = args[2][39 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1894 = args[2][40 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1895 = args[2][41 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1896 = args[2][42 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1897 = args[2][43 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1898 = args[2][44 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1899 = args[2][45 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1900 = args[2][46 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1901 = args[2][47 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1902 = args[2][48 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1903 = args[2][49 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1904 = args[2][50 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1905 = args[2][51 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1906 = args[2][52 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[27](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1907 = args[2][53 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[28](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1908 = args[2][54 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[29](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1909 = args[2][55 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[30](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1910 = args[2][56 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[31](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x1911 = args[2][57 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1912 = x1849 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1913 = x1850 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1914 = x1851 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1915 = x1852 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1916 = x1853 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1917 = x1854 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1918 = x1855 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1919 = x1856 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1920 = x1857 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1921 = x1858 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1922 = x1859 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1923 = x1860 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1924 = x1861 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1925 = x1862 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1926 = x1863 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1927 = x1865 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1928 = x1866 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1929 = x1867 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1930 = x1868 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1931 = x1869 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1932 = x1870 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1933 = x1871 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1934 = x1872 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1935 = x1873 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1936 = x1874 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1937 = x1875 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1938 = x1876 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1939 = x1877 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1940 = x1878 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1941 = x1879 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1942 = x1881 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1943 = x1882 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1944 = x1883 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1945 = x1884 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1946 = x1885 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1947 = x1886 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1948 = x1887 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1949 = x1888 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1950 = x1889 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1951 = x1890 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1952 = x1891 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1953 = x1892 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1954 = x1893 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1955 = x1894 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1956 = x1895 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1957 = x1897 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1958 = x1898 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1959 = x1899 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1960 = x1900 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1961 = x1901 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1962 = x1902 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1963 = x1903 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1964 = x1904 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1965 = x1905 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1966 = x1906 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1967 = x1907 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1968 = x1908 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1969 = x1909 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1970 = x1910 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x1971 = x1911 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1972 = x1848 + x1912;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1973 = x1864 + x1927;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1974 = x1880 + x1942;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1975 = x1896 + x1957;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1976 = x1972 + x1913;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1977 = x1973 + x1928;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1978 = x1974 + x1943;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1979 = x1975 + x1958;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1980 = x1976 + x1914;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1981 = x1977 + x1929;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1982 = x1978 + x1944;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1983 = x1979 + x1959;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1984 = x1980 + x1915;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1985 = x1981 + x1930;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1986 = x1982 + x1945;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1987 = x1983 + x1960;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1988 = x1984 + x1916;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1989 = x1985 + x1931;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1990 = x1986 + x1946;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1991 = x1987 + x1961;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1992 = x1988 + x1917;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1993 = x1989 + x1932;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1994 = x1990 + x1947;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1995 = x1991 + x1962;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1996 = x1992 + x1918;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1997 = x1993 + x1933;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1998 = x1994 + x1948;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x1999 = x1995 + x1963;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2000 = x1996 + x1919;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2001 = x1997 + x1934;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2002 = x1998 + x1949;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2003 = x1999 + x1964;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2004 = x2000 + x1920;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2005 = x2001 + x1935;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2006 = x2002 + x1950;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2007 = x2003 + x1965;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2008 = x2004 + x1921;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2009 = x2005 + x1936;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2010 = x2006 + x1951;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2011 = x2007 + x1966;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2012 = x2008 + x1922;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2013 = x2009 + x1937;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2014 = x2010 + x1952;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2015 = x2011 + x1967;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2016 = x2012 + x1923;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2017 = x2013 + x1938;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2018 = x2014 + x1953;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2019 = x2015 + x1968;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2020 = x2016 + x1924;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2021 = x2017 + x1939;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2022 = x2018 + x1954;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2023 = x2019 + x1969;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2024 = x2020 + x1925;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2025 = x2021 + x1940;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2026 = x2022 + x1955;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2027 = x2023 + x1970;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2028 = x2026 + x1956;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2029 = x2027 + x1971;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2030 = x2024 + x1926;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2031 = x2025 + x1941;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x2032 = x2030 + x2028;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x2033 = x2031 + x2029;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x2034 = x2032 - x1726;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x2035 = x2034 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":125:20)
  auto x2036 = x2035 - x322;
  // loc("zirgen/circuit/recursion/sha.cpp":125:19)
  auto x2037 = x2036 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":126:20)
  auto x2038 = x1 - x2037;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  auto x2039 = x2037 * x2038;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  FpExt x2040 = x1847 + x2039 * poly_mix[2];
  // loc("zirgen/circuit/recursion/sha.cpp":127:32)
  auto x2041 = x2033 + x2035;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x2042 = x2041 - x1762;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x2043 = x2042 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":129:21)
  auto x2044 = x2043 - x324;
  // loc("zirgen/circuit/recursion/sha.cpp":129:20)
  auto x2045 = x2044 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":130:21)
  auto x2046 = x1 - x2045;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  auto x2047 = x2045 * x2046;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  FpExt x2048 = x2040 + x2047 * poly_mix[3];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[0](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2049 = args[2][60 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[1](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2050 = args[2][61 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[2](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2051 = args[2][62 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[3](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2052 = args[2][63 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[4](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2053 = args[2][64 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[5](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2054 = args[2][65 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[6](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2055 = args[2][66 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2056 = args[2][67 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2057 = args[2][68 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2058 = args[2][69 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2059 = args[2][70 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2060 = args[2][71 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2061 = args[2][72 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2062 = args[2][73 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2063 = args[2][74 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2064 = args[2][75 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2065 = args[2][76 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2066 = args[2][77 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2067 = args[2][78 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2068 = args[2][79 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2069 = args[2][80 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2070 = args[2][81 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2071 = args[2][82 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2072 = args[2][83 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2073 = args[2][84 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2074 = args[2][85 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2075 = args[2][86 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[27](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2076 = args[2][87 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[28](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2077 = args[2][88 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[29](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2078 = args[2][89 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[30](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2079 = args[2][90 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[31](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2080 = args[2][91 * steps + ((cycle - kInvRate * 4) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[0](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2081 = args[2][60 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[1](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2082 = args[2][61 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[2](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2083 = args[2][62 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[3](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2084 = args[2][63 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[4](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2085 = args[2][64 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[5](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2086 = args[2][65 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[6](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2087 = args[2][66 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2088 = args[2][67 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2089 = args[2][68 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2090 = args[2][69 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2091 = args[2][70 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2092 = args[2][71 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2093 = args[2][72 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2094 = args[2][73 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2095 = args[2][74 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2096 = args[2][75 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2097 = args[2][76 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2098 = args[2][77 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2099 = args[2][78 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2100 = args[2][79 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2101 = args[2][80 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2102 = args[2][81 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2103 = args[2][82 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2104 = args[2][83 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2105 = args[2][84 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2106 = args[2][85 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2107 = args[2][86 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[27](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2108 = args[2][87 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[28](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2109 = args[2][88 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[29](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2110 = args[2][89 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[30](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2111 = args[2][90 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[31](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2112 = args[2][91 * steps + ((cycle - kInvRate * 68) & mask)];
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2113 = x2050 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2114 = x2051 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2115 = x2052 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2116 = x2053 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2117 = x2054 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2118 = x2055 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2119 = x2056 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2120 = x2057 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2121 = x2058 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2122 = x2059 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2123 = x2060 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2124 = x2061 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2125 = x2062 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2126 = x2063 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2127 = x2064 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2128 = x2066 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2129 = x2067 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2130 = x2068 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2131 = x2069 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2132 = x2070 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2133 = x2071 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2134 = x2072 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2135 = x2073 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2136 = x2074 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2137 = x2075 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2138 = x2076 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2139 = x2077 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2140 = x2078 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2141 = x2079 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2142 = x2080 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2143 = x2082 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2144 = x2083 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2145 = x2084 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2146 = x2085 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2147 = x2086 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2148 = x2087 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2149 = x2088 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2150 = x2089 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2151 = x2090 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2152 = x2091 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2153 = x2092 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2154 = x2093 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2155 = x2094 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2156 = x2095 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2157 = x2096 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2158 = x2098 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2159 = x2099 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2160 = x2100 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2161 = x2101 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2162 = x2102 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2163 = x2103 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2164 = x2104 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2165 = x2105 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2166 = x2106 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2167 = x2107 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2168 = x2108 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2169 = x2109 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2170 = x2110 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2171 = x2111 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x2172 = x2112 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2173 = x2049 + x2113;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2174 = x2065 + x2128;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2175 = x2081 + x2143;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2176 = x2097 + x2158;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2177 = x2173 + x2114;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2178 = x2174 + x2129;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2179 = x2175 + x2144;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2180 = x2176 + x2159;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2181 = x2177 + x2115;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2182 = x2178 + x2130;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2183 = x2179 + x2145;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2184 = x2180 + x2160;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2185 = x2181 + x2116;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2186 = x2182 + x2131;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2187 = x2183 + x2146;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2188 = x2184 + x2161;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2189 = x2185 + x2117;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2190 = x2186 + x2132;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2191 = x2187 + x2147;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2192 = x2188 + x2162;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2193 = x2189 + x2118;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2194 = x2190 + x2133;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2195 = x2191 + x2148;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2196 = x2192 + x2163;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2197 = x2193 + x2119;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2198 = x2194 + x2134;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2199 = x2195 + x2149;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2200 = x2196 + x2164;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2201 = x2197 + x2120;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2202 = x2198 + x2135;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2203 = x2199 + x2150;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2204 = x2200 + x2165;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2205 = x2201 + x2121;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2206 = x2202 + x2136;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2207 = x2203 + x2151;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2208 = x2204 + x2166;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2209 = x2205 + x2122;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2210 = x2206 + x2137;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2211 = x2207 + x2152;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2212 = x2208 + x2167;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2213 = x2209 + x2123;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2214 = x2210 + x2138;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2215 = x2211 + x2153;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2216 = x2212 + x2168;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2217 = x2213 + x2124;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2218 = x2214 + x2139;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2219 = x2215 + x2154;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2220 = x2216 + x2169;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2221 = x2217 + x2125;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2222 = x2218 + x2140;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2223 = x2219 + x2155;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2224 = x2220 + x2170;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2225 = x2221 + x2126;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2226 = x2222 + x2141;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2227 = x2223 + x2156;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2228 = x2224 + x2171;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2229 = x2227 + x2157;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2230 = x2228 + x2172;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2231 = x2225 + x2127;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x2232 = x2226 + x2142;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x2233 = x2231 + x2229;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x2234 = x2232 + x2230;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x2235 = x2233 - x1799;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x2236 = x2235 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":125:20)
  auto x2237 = x2236 - x326;
  // loc("zirgen/circuit/recursion/sha.cpp":125:19)
  auto x2238 = x2237 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":126:20)
  auto x2239 = x1 - x2238;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  auto x2240 = x2238 * x2239;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  FpExt x2241 = x2048 + x2240 * poly_mix[4];
  // loc("zirgen/circuit/recursion/sha.cpp":127:32)
  auto x2242 = x2234 + x2236;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x2243 = x2242 - x1837;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x2244 = x2243 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":129:21)
  auto x2245 = x2244 - x328;
  // loc("zirgen/circuit/recursion/sha.cpp":129:20)
  auto x2246 = x2245 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":130:21)
  auto x2247 = x1 - x2246;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  auto x2248 = x2246 * x2247;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  FpExt x2249 = x2241 + x2248 * poly_mix[5];
  // loc("zirgen/circuit/recursion/sha.cpp":115:21)
  auto x2250 = x866 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":115:21)
  auto x2251 = x868 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":115:21)
  auto x2252 = x870 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":115:21)
  auto x2253 = x872 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":115:21)
  auto x2254 = x874 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":115:21)
  auto x2255 = x876 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":115:21)
  auto x2256 = x878 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":115:21)
  auto x2257 = x1160 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":115:21)
  auto x2258 = x1168 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":115:21)
  auto x2259 = x1169 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":115:21)
  auto x2260 = x1177 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":115:21)
  auto x2261 = x1178 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":115:21)
  auto x2262 = x1186 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":115:21)
  auto x2263 = x1187 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":115:14)
  auto x2264 = x626 + x2250;
  // loc("zirgen/circuit/recursion/sha.cpp":115:14)
  auto x2265 = x1159 + x2257;
  // loc("zirgen/circuit/recursion/sha.cpp":115:14)
  auto x2266 = x2264 + x2251;
  // loc("zirgen/circuit/recursion/sha.cpp":115:14)
  auto x2267 = x2265 + x2258;
  // loc("zirgen/circuit/recursion/sha.cpp":115:14)
  auto x2268 = x2266 + x2252;
  // loc("zirgen/circuit/recursion/sha.cpp":115:14)
  auto x2269 = x2267 + x2259;
  // loc("zirgen/circuit/recursion/sha.cpp":115:14)
  auto x2270 = x2268 + x2253;
  // loc("zirgen/circuit/recursion/sha.cpp":115:14)
  auto x2271 = x2269 + x2260;
  // loc("zirgen/circuit/recursion/sha.cpp":115:14)
  auto x2272 = x2270 + x2254;
  // loc("zirgen/circuit/recursion/sha.cpp":115:14)
  auto x2273 = x2271 + x2261;
  // loc("zirgen/circuit/recursion/sha.cpp":115:14)
  auto x2274 = x2272 + x2255;
  // loc("zirgen/circuit/recursion/sha.cpp":115:14)
  auto x2275 = x2273 + x2262;
  // loc("zirgen/circuit/recursion/sha.cpp":115:14)
  auto x2276 = x2274 + x2256;
  // loc("zirgen/circuit/recursion/sha.cpp":115:14)
  auto x2277 = x2275 + x2263;
  // loc("zirgen/circuit/recursion/sha.cpp":248:71)
  auto x2278 = x1718 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":248:46)
  auto x2279 = x1754 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":248:61)
  auto x2280 = x2276 + x2278;
  // loc("zirgen/circuit/recursion/sha.cpp":248:36)
  auto x2281 = x2277 + x2279;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x2282 = x2249 + x1112 * poly_mix[6];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x2283 = x336 - x2281;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x2284 = x2282 + x2283 * poly_mix[7];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x2285 = x338 - x2280;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x2286 = x2284 + x2285 * poly_mix[8];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x2287 = x2286 + x340 * poly_mix[9];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x2288 = x2287 + x342 * poly_mix[10];
  // loc("zirgen/circuit/recursion/sha.cpp":249:71)
  auto x2289 = x1791 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":249:46)
  auto x2290 = x1829 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":249:61)
  auto x2291 = x1428 + x2289;
  // loc("zirgen/circuit/recursion/sha.cpp":249:36)
  auto x2292 = x1538 + x2290;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x2293 = x2288 + x1114 * poly_mix[11];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x2294 = x348 - x2292;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x2295 = x2293 + x2294 * poly_mix[12];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x2296 = x351 - x2291;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x2297 = x2295 + x2296 * poly_mix[13];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x2298 = x2297 + x354 * poly_mix[14];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x2299 = x2298 + x594 * poly_mix[15];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x2300 = x1845 + x593 * x2299 * poly_mix[38];
  // loc("zirgen/circuit/recursion/sha.cpp":179:15)
  auto x2301 = x336 * x42;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x2302 = x836 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x2303 = x837 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x2304 = x838 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x2305 = x839 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x2306 = x840 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x2307 = x841 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x2308 = x1020 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x2309 = x835 + x2302;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x2310 = x2309 + x2303;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x2311 = x2310 + x2304;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x2312 = x2311 + x2305;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x2313 = x2312 + x2306;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x2314 = x2313 + x2307;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x2315 = x2314 + x2308;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x2316 = x2301 - x2315;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x2317 = x2316 * x18;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x2318 = x2317 - x1681;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x2319 = x2318 * x18;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x2320 = x560 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x2321 = x561 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x2322 = x562 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x2323 = x563 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x2324 = x564 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x2325 = x565 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":104:17)
  auto x2326 = x566 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x2327 = x590 + x2320;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x2328 = x2327 + x2321;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x2329 = x2328 + x2322;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x2330 = x2329 + x2323;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x2331 = x2330 + x2324;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x2332 = x2331 + x2325;
  // loc("zirgen/circuit/recursion/sha.cpp":104:11)
  auto x2333 = x2332 + x2326;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x2334 = x2319 - x2333;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x2335 = x2334 * x18;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x2336 = x2335 - x1644;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x2337 = x2336 * x18;
  // loc("zirgen/circuit/recursion/sha.cpp":184:8)
  FpExt x2338 = x284 + x2337 * poly_mix[0];
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2339 = x835 + x836;
  // loc("zirgen/circuit/recursion/sha.cpp":193:14)
  auto x2340 = x295 + x296;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2341 = x2339 + x837;
  // loc("zirgen/circuit/recursion/sha.cpp":193:14)
  auto x2342 = x2340 + x297;
  // loc("zirgen/circuit/recursion/sha.cpp":193:14)
  auto x2343 = x2342 + x288;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2344 = x2341 + x838;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2345 = x2344 + x839;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2346 = x2345 + x840;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2347 = x2346 + x841;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2348 = x2347 + x1020;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2349 = x2348 + x567;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2350 = x2349 + x568;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2351 = x2350 + x569;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2352 = x2351 + x748;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2353 = x2352 + x862;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2354 = x2353 + x832;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2355 = x2354 + x833;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2356 = x2355 + x834;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2357 = x2356 + x590;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2358 = x2357 + x560;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2359 = x2358 + x561;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2360 = x2359 + x562;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2361 = x2360 + x563;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2362 = x2361 + x564;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2363 = x2362 + x565;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2364 = x2363 + x566;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2365 = x2364 + x292;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2366 = x2365 + x293;
  // loc("zirgen/circuit/recursion/sha.cpp":197:15)
  auto x2367 = x2366 + x294;
  // loc("zirgen/circuit/recursion/sha.cpp":214:10)
  auto x2368 = x2343 - x330;
  // loc("zirgen/circuit/recursion/sha.cpp":214:9)
  auto x2369 = x2368 * x2367;
  // loc("zirgen/circuit/recursion/sha.cpp":214:9)
  FpExt x2370 = x2338 + x2369 * poly_mix[1];
  // loc("zirgen/circuit/recursion/sha.cpp":216:9)
  FpExt x2371 = x2370 + x476 * poly_mix[2];
  // loc("zirgen/circuit/recursion/sha.cpp":177:27)
  FpExt x2372 = x1115 + x1608 * x2371 * poly_mix[2];
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x2373 = x336 - x2315;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x2374 = x2373 * x18;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x2375 = x2374 - x1681;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x2376 = x2375 * x18;
  // loc("zirgen/circuit/recursion/sha.cpp":134:6)
  auto x2377 = x0 - x2376;
  // loc("zirgen/circuit/recursion/sha.cpp":134:6)
  FpExt x2378 = x284 + x2377 * poly_mix[0];
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x2379 = x338 - x2333;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x2380 = x2379 * x18;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x2381 = x2380 - x1644;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x2382 = x2381 * x18;
  // loc("zirgen/circuit/recursion/sha.cpp":135:6)
  auto x2383 = x0 - x2382;
  // loc("zirgen/circuit/recursion/sha.cpp":135:6)
  FpExt x2384 = x2378 + x2383 * poly_mix[1];
  // loc("./zirgen/components/bits.h":68:23)
  FpExt x2385 = x2384 + x330 * poly_mix[2];
  // loc("zirgen/circuit/recursion/sha.cpp":218:23)
  FpExt x2386 = x2372 + x1379 * x2385 * poly_mix[5];
  // loc("./zirgen/components/bits.h":68:23)
  FpExt x2387 = x2386 + x332 * poly_mix[8];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[0](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2388 = args[2][26 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[1](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2389 = args[2][27 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[2](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2390 = args[2][28 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[3](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2391 = args[2][29 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[4](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2392 = args[2][30 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[5](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2393 = args[2][31 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[6](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2394 = args[2][32 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2395 = args[2][33 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2396 = args[2][34 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2397 = args[2][35 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2398 = args[2][36 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2399 = args[2][37 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2400 = args[2][38 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2401 = args[2][39 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2402 = args[2][40 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2403 = args[2][41 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2404 = args[2][42 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2405 = args[2][43 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2406 = args[2][44 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2407 = args[2][45 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2408 = args[2][46 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2409 = args[2][47 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2410 = args[2][48 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2411 = args[2][49 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2412 = args[2][50 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2413 = args[2][51 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2414 = args[2][52 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[27](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2415 = args[2][53 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[28](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2416 = args[2][54 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[29](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2417 = args[2][55 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[30](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2418 = args[2][56 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[31](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2419 = args[2][57 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[0](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2420 = args[2][60 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[1](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2421 = args[2][61 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[2](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2422 = args[2][62 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[3](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2423 = args[2][63 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[4](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2424 = args[2][64 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[5](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2425 = args[2][65 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[6](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2426 = args[2][66 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2427 = args[2][67 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2428 = args[2][68 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2429 = args[2][69 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2430 = args[2][70 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2431 = args[2][71 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2432 = args[2][72 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2433 = args[2][73 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2434 = args[2][74 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2435 = args[2][75 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2436 = args[2][76 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2437 = args[2][77 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2438 = args[2][78 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2439 = args[2][79 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2440 = args[2][80 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2441 = args[2][81 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2442 = args[2][82 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2443 = args[2][83 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2444 = args[2][84 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2445 = args[2][85 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2446 = args[2][86 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[27](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2447 = args[2][87 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[28](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2448 = args[2][88 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[29](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2449 = args[2][89 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[30](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2450 = args[2][90 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[31](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2451 = args[2][91 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[0](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2452 = args[2][60 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[1](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2453 = args[2][61 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[2](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2454 = args[2][62 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[3](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2455 = args[2][63 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[4](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2456 = args[2][64 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[5](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2457 = args[2][65 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[6](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2458 = args[2][66 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2459 = args[2][67 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2460 = args[2][68 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2461 = args[2][69 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2462 = args[2][70 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2463 = args[2][71 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2464 = args[2][72 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2465 = args[2][73 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2466 = args[2][74 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2467 = args[2][75 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2468 = args[2][76 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2469 = args[2][77 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2470 = args[2][78 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2471 = args[2][79 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2472 = args[2][80 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2473 = args[2][81 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2474 = args[2][82 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2475 = args[2][83 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2476 = args[2][84 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2477 = args[2][85 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2478 = args[2][86 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[27](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2479 = args[2][87 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[28](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2480 = args[2][88 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[29](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2481 = args[2][89 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[30](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2482 = args[2][90 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[31](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2483 = args[2][91 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[0](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2484 = args[2][26 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[1](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2485 = args[2][27 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[2](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2486 = args[2][28 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[3](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2487 = args[2][29 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[4](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2488 = args[2][30 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[5](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2489 = args[2][31 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[6](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2490 = args[2][32 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2491 = args[2][33 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2492 = args[2][34 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2493 = args[2][35 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2494 = args[2][36 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2495 = args[2][37 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2496 = args[2][38 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2497 = args[2][39 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2498 = args[2][40 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2499 = args[2][41 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2500 = args[2][42 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2501 = args[2][43 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2502 = args[2][44 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2503 = args[2][45 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2504 = args[2][46 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2505 = args[2][47 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2506 = args[2][48 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2507 = args[2][49 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2508 = args[2][50 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2509 = args[2][51 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2510 = args[2][52 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[27](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2511 = args[2][53 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[28](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2512 = args[2][54 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[29](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2513 = args[2][55 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[30](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2514 = args[2][56 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[31](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2515 = args[2][57 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[0](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2516 = args[2][60 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[1](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2517 = args[2][61 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[2](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2518 = args[2][62 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[3](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2519 = args[2][63 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[4](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2520 = args[2][64 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[5](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2521 = args[2][65 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[6](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2522 = args[2][66 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2523 = args[2][67 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2524 = args[2][68 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2525 = args[2][69 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2526 = args[2][70 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2527 = args[2][71 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2528 = args[2][72 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2529 = args[2][73 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2530 = args[2][74 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2531 = args[2][75 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2532 = args[2][76 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2533 = args[2][77 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2534 = args[2][78 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2535 = args[2][79 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2536 = args[2][80 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2537 = args[2][81 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2538 = args[2][82 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2539 = args[2][83 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2540 = args[2][84 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2541 = args[2][85 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2542 = args[2][86 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[27](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2543 = args[2][87 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[28](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2544 = args[2][88 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[29](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2545 = args[2][89 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[30](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2546 = args[2][90 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/e[31](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2547 = args[2][91 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[0](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2548 = args[2][26 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[1](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2549 = args[2][27 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[2](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2550 = args[2][28 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[3](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2551 = args[2][29 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[4](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2552 = args[2][30 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[5](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2553 = args[2][31 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[6](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2554 = args[2][32 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2555 = args[2][33 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2556 = args[2][34 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2557 = args[2][35 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2558 = args[2][36 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2559 = args[2][37 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2560 = args[2][38 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2561 = args[2][39 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2562 = args[2][40 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2563 = args[2][41 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2564 = args[2][42 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2565 = args[2][43 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2566 = args[2][44 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2567 = args[2][45 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2568 = args[2][46 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2569 = args[2][47 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2570 = args[2][48 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2571 = args[2][49 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2572 = args[2][50 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2573 = args[2][51 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2574 = args[2][52 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[27](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2575 = args[2][53 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[28](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2576 = args[2][54 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[29](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2577 = args[2][55 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[30](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2578 = args[2][56 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/a[31](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x2579 = args[2][57 * steps + ((cycle - kInvRate * 3) & mask)];
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2580 = x2388 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2581 = x2388 * x2484;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2582 = x2389 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2583 = x2389 * x2485;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2584 = x2390 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2585 = x2390 * x2486;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2586 = x2391 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2587 = x2391 * x2487;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2588 = x2392 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2589 = x2392 * x2488;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2590 = x2393 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2591 = x2393 * x2489;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2592 = x2394 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2593 = x2394 * x2490;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2594 = x2395 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2595 = x2395 * x2491;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2596 = x2396 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2597 = x2396 * x2492;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2598 = x2397 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2599 = x2397 * x2493;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2600 = x2398 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2601 = x2398 * x2494;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2602 = x2399 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2603 = x2399 * x2495;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2604 = x2400 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2605 = x2400 * x2496;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2606 = x2401 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2607 = x2401 * x2497;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2608 = x2402 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2609 = x2402 * x2498;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2610 = x2403 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2611 = x2403 * x2499;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2612 = x2404 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2613 = x2404 * x2500;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2614 = x2405 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2615 = x2405 * x2501;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2616 = x2406 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2617 = x2406 * x2502;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2618 = x2407 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2619 = x2407 * x2503;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2620 = x2408 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2621 = x2408 * x2504;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2622 = x2409 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2623 = x2409 * x2505;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2624 = x2410 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2625 = x2410 * x2506;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2626 = x2411 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2627 = x2411 * x2507;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2628 = x2412 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2629 = x2412 * x2508;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2630 = x2413 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2631 = x2413 * x2509;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2632 = x2414 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2633 = x2414 * x2510;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2634 = x2415 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2635 = x2415 * x2511;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2636 = x2416 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2637 = x2416 * x2512;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2638 = x2417 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2639 = x2417 * x2513;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2640 = x2418 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2641 = x2418 * x2514;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2642 = x2419 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x2643 = x2419 * x2515;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2644 = x2420 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2645 = x2420 * x2452;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2646 = x2421 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2647 = x2421 * x2453;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2648 = x2422 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2649 = x2422 * x2454;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2650 = x2423 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2651 = x2423 * x2455;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2652 = x2424 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2653 = x2424 * x2456;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2654 = x2425 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2655 = x2425 * x2457;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2656 = x2426 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2657 = x2426 * x2458;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2658 = x2427 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2659 = x2427 * x2459;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2660 = x2428 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2661 = x2428 * x2460;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2662 = x2429 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2663 = x2429 * x2461;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2664 = x2430 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2665 = x2430 * x2462;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2666 = x2431 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2667 = x2431 * x2463;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2668 = x2432 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2669 = x2432 * x2464;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2670 = x2433 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2671 = x2433 * x2465;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2672 = x2434 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2673 = x2434 * x2466;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2674 = x2435 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2675 = x2435 * x2467;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2676 = x2436 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2677 = x2436 * x2468;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2678 = x2437 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2679 = x2437 * x2469;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2680 = x2438 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2681 = x2438 * x2470;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2682 = x2439 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2683 = x2439 * x2471;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2684 = x2440 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2685 = x2440 * x2472;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2686 = x2441 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2687 = x2441 * x2473;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2688 = x2442 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2689 = x2442 * x2474;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2690 = x2443 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2691 = x2443 * x2475;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2692 = x2444 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2693 = x2444 * x2476;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2694 = x2445 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2695 = x2445 * x2477;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2696 = x2446 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2697 = x2446 * x2478;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2698 = x2447 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2699 = x2447 * x2479;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2700 = x2448 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2701 = x2448 * x2480;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2702 = x2449 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2703 = x2449 * x2481;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2704 = x2450 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2705 = x2450 * x2482;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2706 = x2451 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x2707 = x2451 * x2483;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2708 = x2580 * x2397;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2709 = x2581 * x2548;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2710 = x2582 * x2398;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2711 = x2583 * x2549;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2712 = x2584 * x2399;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2713 = x2585 * x2550;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2714 = x2586 * x2400;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2715 = x2587 * x2551;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2716 = x2588 * x2401;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2717 = x2589 * x2552;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2718 = x2590 * x2402;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2719 = x2591 * x2553;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2720 = x2592 * x2403;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2721 = x2593 * x2554;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2722 = x2594 * x2404;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2723 = x2595 * x2555;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2724 = x2596 * x2405;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2725 = x2597 * x2556;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2726 = x2598 * x2406;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2727 = x2599 * x2557;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2728 = x2600 * x2407;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2729 = x2601 * x2558;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2730 = x2602 * x2408;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2731 = x2603 * x2559;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2732 = x2604 * x2409;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2733 = x2605 * x2560;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2734 = x2606 * x2410;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2735 = x2607 * x2561;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2736 = x2608 * x2411;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2737 = x2609 * x2562;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2738 = x2610 * x2412;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2739 = x2611 * x2563;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2740 = x2612 * x2413;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2741 = x2613 * x2564;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2742 = x2614 * x2414;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2743 = x2615 * x2565;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2744 = x2616 * x2415;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2745 = x2617 * x2566;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2746 = x2618 * x2416;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2747 = x2619 * x2567;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2748 = x2620 * x2417;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2749 = x2621 * x2568;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2750 = x2622 * x2418;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2751 = x2623 * x2569;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2752 = x2624 * x2419;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2753 = x2625 * x2570;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2754 = x2626 * x2388;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2755 = x2627 * x2571;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2756 = x2628 * x2389;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2757 = x2629 * x2572;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2758 = x2630 * x2390;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2759 = x2631 * x2573;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2760 = x2632 * x2391;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2761 = x2633 * x2574;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2762 = x2634 * x2392;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2763 = x2635 * x2575;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2764 = x2636 * x2393;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2765 = x2637 * x2576;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2766 = x2638 * x2394;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2767 = x2639 * x2577;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2768 = x2640 * x2395;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2769 = x2641 * x2578;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2770 = x2642 * x2396;
  // loc("zirgen/circuit/recursion/sha.cpp":56:14)
  auto x2771 = x2643 * x2579;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2772 = x2644 * x2434;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2773 = x2646 * x2435;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2774 = x2648 * x2436;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2775 = x2650 * x2437;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2776 = x2652 * x2438;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2777 = x2654 * x2439;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2778 = x2656 * x2440;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2779 = x2658 * x2441;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2780 = x2660 * x2442;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2781 = x2662 * x2443;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2782 = x2664 * x2444;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2783 = x2666 * x2445;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2784 = x2668 * x2446;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2785 = x2670 * x2447;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2786 = x2672 * x2448;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2787 = x2674 * x2449;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2788 = x2676 * x2450;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2789 = x2678 * x2451;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2790 = x2680 * x2420;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2791 = x2682 * x2421;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2792 = x2684 * x2422;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2793 = x2686 * x2423;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2794 = x2688 * x2424;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2795 = x2690 * x2425;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2796 = x2692 * x2426;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2797 = x2694 * x2427;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2798 = x2696 * x2428;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2799 = x2698 * x2429;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2800 = x2700 * x2430;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2801 = x2702 * x2431;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2802 = x2704 * x2432;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x2803 = x2706 * x2433;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2804 = x1 - x2388;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2805 = x1 - x2389;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2806 = x1 - x2390;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2807 = x1 - x2391;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2808 = x1 - x2392;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2809 = x1 - x2393;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2810 = x1 - x2394;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2811 = x1 - x2395;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2812 = x1 - x2396;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2813 = x1 - x2397;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2814 = x1 - x2398;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2815 = x1 - x2399;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2816 = x1 - x2400;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2817 = x1 - x2401;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2818 = x1 - x2402;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2819 = x1 - x2403;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2820 = x1 - x2404;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2821 = x1 - x2405;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2822 = x1 - x2406;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2823 = x1 - x2407;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2824 = x1 - x2408;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2825 = x1 - x2409;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2826 = x1 - x2410;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2827 = x1 - x2411;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2828 = x1 - x2412;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2829 = x1 - x2413;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2830 = x1 - x2414;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2831 = x1 - x2415;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2832 = x1 - x2416;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2833 = x1 - x2417;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2834 = x1 - x2418;
  // loc("zirgen/circuit/recursion/sha.cpp":55:69)
  auto x2835 = x1 - x2419;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2836 = x1 - x2420;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2837 = x1 - x2421;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2838 = x1 - x2422;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2839 = x1 - x2423;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2840 = x1 - x2424;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2841 = x1 - x2425;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2842 = x1 - x2426;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2843 = x1 - x2427;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2844 = x1 - x2428;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2845 = x1 - x2429;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2846 = x1 - x2430;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2847 = x1 - x2431;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2848 = x1 - x2432;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2849 = x1 - x2433;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2850 = x1 - x2434;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2851 = x1 - x2435;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2852 = x1 - x2436;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2853 = x1 - x2437;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2854 = x1 - x2438;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2855 = x1 - x2439;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2856 = x1 - x2440;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2857 = x1 - x2441;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2858 = x1 - x2442;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2859 = x1 - x2443;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2860 = x1 - x2444;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2861 = x1 - x2445;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2862 = x1 - x2446;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2863 = x1 - x2447;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2864 = x1 - x2448;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2865 = x1 - x2449;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2866 = x1 - x2450;
  // loc("zirgen/circuit/recursion/sha.cpp":64:29)
  auto x2867 = x1 - x2451;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2868 = x1 - x2484;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2869 = x1 - x2485;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2870 = x1 - x2486;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2871 = x1 - x2487;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2872 = x1 - x2488;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2873 = x1 - x2489;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2874 = x1 - x2490;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2875 = x1 - x2491;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2876 = x1 - x2492;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2877 = x1 - x2493;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2878 = x1 - x2494;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2879 = x1 - x2495;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2880 = x1 - x2496;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2881 = x1 - x2497;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2882 = x1 - x2498;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2883 = x1 - x2499;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2884 = x1 - x2500;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2885 = x1 - x2501;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2886 = x1 - x2502;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2887 = x1 - x2503;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2888 = x1 - x2504;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2889 = x1 - x2505;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2890 = x1 - x2506;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2891 = x1 - x2507;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2892 = x1 - x2508;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2893 = x1 - x2509;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2894 = x1 - x2510;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2895 = x1 - x2511;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2896 = x1 - x2512;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2897 = x1 - x2513;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2898 = x1 - x2514;
  // loc("zirgen/circuit/recursion/sha.cpp":55:49)
  auto x2899 = x1 - x2515;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2900 = x1 - x2548;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2901 = x1 - x2549;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2902 = x1 - x2550;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2903 = x1 - x2551;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2904 = x1 - x2552;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2905 = x1 - x2553;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2906 = x1 - x2554;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2907 = x1 - x2555;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2908 = x1 - x2556;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2909 = x1 - x2557;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2910 = x1 - x2558;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2911 = x1 - x2559;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2912 = x1 - x2560;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2913 = x1 - x2561;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2914 = x1 - x2562;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2915 = x1 - x2563;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2916 = x1 - x2564;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2917 = x1 - x2565;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2918 = x1 - x2566;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2919 = x1 - x2567;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2920 = x1 - x2568;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2921 = x1 - x2569;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2922 = x1 - x2570;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2923 = x1 - x2571;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2924 = x1 - x2572;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2925 = x1 - x2573;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2926 = x1 - x2574;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2927 = x1 - x2575;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2928 = x1 - x2576;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2929 = x1 - x2577;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2930 = x1 - x2578;
  // loc("zirgen/circuit/recursion/sha.cpp":55:29)
  auto x2931 = x1 - x2579;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2932 = x2388 + x2397;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2933 = x2389 + x2398;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2934 = x2390 + x2399;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2935 = x2391 + x2400;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2936 = x2392 + x2401;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2937 = x2393 + x2402;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2938 = x2394 + x2403;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2939 = x2395 + x2404;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2940 = x2396 + x2405;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2941 = x2397 + x2406;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2942 = x2398 + x2407;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2943 = x2399 + x2408;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2944 = x2400 + x2409;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2945 = x2401 + x2410;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2946 = x2402 + x2411;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2947 = x2403 + x2412;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2948 = x2404 + x2413;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2949 = x2405 + x2414;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2950 = x2406 + x2415;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2951 = x2407 + x2416;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2952 = x2408 + x2417;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2953 = x2409 + x2418;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2954 = x2410 + x2419;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2955 = x2411 + x2388;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2956 = x2412 + x2389;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2957 = x2413 + x2390;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2958 = x2414 + x2391;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2959 = x2415 + x2392;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2960 = x2416 + x2393;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2961 = x2417 + x2394;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2962 = x2418 + x2395;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2963 = x2419 + x2396;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2964 = x2420 + x2434;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2965 = x2421 + x2435;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2966 = x2422 + x2436;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2967 = x2423 + x2437;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2968 = x2424 + x2438;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2969 = x2425 + x2439;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2970 = x2426 + x2440;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2971 = x2427 + x2441;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2972 = x2428 + x2442;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2973 = x2429 + x2443;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2974 = x2430 + x2444;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2975 = x2431 + x2445;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2976 = x2432 + x2446;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2977 = x2433 + x2447;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2978 = x2434 + x2448;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2979 = x2435 + x2449;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2980 = x2436 + x2450;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2981 = x2437 + x2451;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2982 = x2438 + x2420;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2983 = x2439 + x2421;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2984 = x2440 + x2422;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2985 = x2441 + x2423;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2986 = x2442 + x2424;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2987 = x2443 + x2425;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2988 = x2444 + x2426;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2989 = x2445 + x2427;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2990 = x2446 + x2428;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2991 = x2447 + x2429;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2992 = x2448 + x2430;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2993 = x2449 + x2431;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2994 = x2450 + x2432;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x2995 = x2451 + x2433;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x2996 = x2388 * x2868;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x2997 = x2389 * x2869;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x2998 = x2390 * x2870;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x2999 = x2391 * x2871;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3000 = x2392 * x2872;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3001 = x2393 * x2873;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3002 = x2394 * x2874;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3003 = x2395 * x2875;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3004 = x2396 * x2876;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3005 = x2397 * x2877;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3006 = x2398 * x2878;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3007 = x2399 * x2879;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3008 = x2400 * x2880;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3009 = x2401 * x2881;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3010 = x2402 * x2882;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3011 = x2403 * x2883;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3012 = x2404 * x2884;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3013 = x2405 * x2885;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3014 = x2406 * x2886;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3015 = x2407 * x2887;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3016 = x2408 * x2888;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3017 = x2409 * x2889;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3018 = x2410 * x2890;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3019 = x2411 * x2891;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3020 = x2412 * x2892;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3021 = x2413 * x2893;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3022 = x2414 * x2894;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3023 = x2415 * x2895;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3024 = x2416 * x2896;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3025 = x2417 * x2897;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3026 = x2418 * x2898;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3027 = x2419 * x2899;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3028 = x2581 * x2900;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3029 = x2583 * x2901;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3030 = x2585 * x2902;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3031 = x2587 * x2903;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3032 = x2589 * x2904;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3033 = x2591 * x2905;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3034 = x2593 * x2906;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3035 = x2595 * x2907;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3036 = x2597 * x2908;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3037 = x2599 * x2909;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3038 = x2601 * x2910;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3039 = x2603 * x2911;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3040 = x2605 * x2912;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3041 = x2607 * x2913;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3042 = x2609 * x2914;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3043 = x2611 * x2915;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3044 = x2613 * x2916;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3045 = x2615 * x2917;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3046 = x2617 * x2918;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3047 = x2619 * x2919;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3048 = x2621 * x2920;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3049 = x2623 * x2921;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3050 = x2625 * x2922;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3051 = x2627 * x2923;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3052 = x2629 * x2924;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3053 = x2631 * x2925;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3054 = x2633 * x2926;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3055 = x2635 * x2927;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3056 = x2637 * x2928;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3057 = x2639 * x2929;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3058 = x2641 * x2930;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3059 = x2643 * x2931;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3060 = x2804 * x2484;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3061 = x2805 * x2485;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3062 = x2806 * x2486;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3063 = x2807 * x2487;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3064 = x2808 * x2488;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3065 = x2809 * x2489;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3066 = x2810 * x2490;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3067 = x2811 * x2491;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3068 = x2812 * x2492;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3069 = x2813 * x2493;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3070 = x2814 * x2494;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3071 = x2815 * x2495;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3072 = x2816 * x2496;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3073 = x2817 * x2497;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3074 = x2818 * x2498;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3075 = x2819 * x2499;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3076 = x2820 * x2500;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3077 = x2821 * x2501;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3078 = x2822 * x2502;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3079 = x2823 * x2503;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3080 = x2824 * x2504;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3081 = x2825 * x2505;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3082 = x2826 * x2506;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3083 = x2827 * x2507;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3084 = x2828 * x2508;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3085 = x2829 * x2509;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3086 = x2830 * x2510;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3087 = x2831 * x2511;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3088 = x2832 * x2512;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3089 = x2833 * x2513;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3090 = x2834 * x2514;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3091 = x2835 * x2515;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3092 = x2996 * x2548;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3093 = x2997 * x2549;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3094 = x2998 * x2550;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3095 = x2999 * x2551;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3096 = x3000 * x2552;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3097 = x3001 * x2553;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3098 = x3002 * x2554;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3099 = x3003 * x2555;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3100 = x3004 * x2556;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3101 = x3005 * x2557;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3102 = x3006 * x2558;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3103 = x3007 * x2559;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3104 = x3008 * x2560;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3105 = x3009 * x2561;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3106 = x3010 * x2562;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3107 = x3011 * x2563;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3108 = x3012 * x2564;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3109 = x3013 * x2565;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3110 = x3014 * x2566;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3111 = x3015 * x2567;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3112 = x3016 * x2568;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3113 = x3017 * x2569;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3114 = x3018 * x2570;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3115 = x3019 * x2571;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3116 = x3020 * x2572;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3117 = x3021 * x2573;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3118 = x3022 * x2574;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3119 = x3023 * x2575;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3120 = x3024 * x2576;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3121 = x3025 * x2577;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3122 = x3026 * x2578;
  // loc("zirgen/circuit/recursion/sha.cpp":55:41)
  auto x3123 = x3027 * x2579;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3124 = x3060 * x2548;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3125 = x3061 * x2549;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3126 = x3062 * x2550;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3127 = x3063 * x2551;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3128 = x3064 * x2552;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3129 = x3065 * x2553;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3130 = x3066 * x2554;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3131 = x3067 * x2555;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3132 = x3068 * x2556;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3133 = x3069 * x2557;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3134 = x3070 * x2558;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3135 = x3071 * x2559;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3136 = x3072 * x2560;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3137 = x3073 * x2561;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3138 = x3074 * x2562;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3139 = x3075 * x2563;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3140 = x3076 * x2564;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3141 = x3077 * x2565;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3142 = x3078 * x2566;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3143 = x3079 * x2567;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3144 = x3080 * x2568;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3145 = x3081 * x2569;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3146 = x3082 * x2570;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3147 = x3083 * x2571;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3148 = x3084 * x2572;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3149 = x3085 * x2573;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3150 = x3086 * x2574;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3151 = x3087 * x2575;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3152 = x3088 * x2576;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3153 = x3089 * x2577;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3154 = x3090 * x2578;
  // loc("zirgen/circuit/recursion/sha.cpp":55:68)
  auto x3155 = x3091 * x2579;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3156 = x2836 * x2516;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3157 = x2837 * x2517;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3158 = x2838 * x2518;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3159 = x2839 * x2519;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3160 = x2840 * x2520;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3161 = x2841 * x2521;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3162 = x2842 * x2522;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3163 = x2843 * x2523;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3164 = x2844 * x2524;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3165 = x2845 * x2525;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3166 = x2846 * x2526;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3167 = x2847 * x2527;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3168 = x2848 * x2528;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3169 = x2849 * x2529;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3170 = x2850 * x2530;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3171 = x2851 * x2531;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3172 = x2852 * x2532;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3173 = x2853 * x2533;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3174 = x2854 * x2534;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3175 = x2855 * x2535;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3176 = x2856 * x2536;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3177 = x2857 * x2537;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3178 = x2858 * x2538;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3179 = x2859 * x2539;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3180 = x2860 * x2540;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3181 = x2861 * x2541;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3182 = x2862 * x2542;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3183 = x2863 * x2543;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3184 = x2864 * x2544;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3185 = x2865 * x2545;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3186 = x2866 * x2546;
  // loc("zirgen/circuit/recursion/sha.cpp":64:28)
  auto x3187 = x2867 * x2547;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3188 = x2932 - x2708;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3189 = x2933 - x2710;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3190 = x2934 - x2712;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3191 = x2935 - x2714;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3192 = x2936 - x2716;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3193 = x2937 - x2718;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3194 = x2938 - x2720;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3195 = x2939 - x2722;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3196 = x2940 - x2724;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3197 = x2941 - x2726;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3198 = x2942 - x2728;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3199 = x2943 - x2730;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3200 = x2944 - x2732;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3201 = x2945 - x2734;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3202 = x2946 - x2736;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3203 = x2947 - x2738;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3204 = x2948 - x2740;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3205 = x2949 - x2742;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3206 = x2950 - x2744;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3207 = x2951 - x2746;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3208 = x2952 - x2748;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3209 = x2953 - x2750;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3210 = x2954 - x2752;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3211 = x2955 - x2754;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3212 = x2956 - x2756;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3213 = x2957 - x2758;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3214 = x2958 - x2760;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3215 = x2959 - x2762;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3216 = x2960 - x2764;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3217 = x2961 - x2766;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3218 = x2962 - x2768;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3219 = x2963 - x2770;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3220 = x2964 - x2772;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3221 = x2965 - x2773;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3222 = x2966 - x2774;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3223 = x2967 - x2775;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3224 = x2968 - x2776;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3225 = x2969 - x2777;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3226 = x2970 - x2778;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3227 = x2971 - x2779;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3228 = x2972 - x2780;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3229 = x2973 - x2781;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3230 = x2974 - x2782;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3231 = x2975 - x2783;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3232 = x2976 - x2784;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3233 = x2977 - x2785;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3234 = x2978 - x2786;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3235 = x2979 - x2787;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3236 = x2980 - x2788;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3237 = x2981 - x2789;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3238 = x2982 - x2790;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3239 = x2983 - x2791;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3240 = x2984 - x2792;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3241 = x2985 - x2793;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3242 = x2986 - x2794;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3243 = x2987 - x2795;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3244 = x2988 - x2796;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3245 = x2989 - x2797;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3246 = x2990 - x2798;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3247 = x2991 - x2799;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3248 = x2992 - x2800;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3249 = x2993 - x2801;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3250 = x2994 - x2802;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3251 = x2995 - x2803;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3252 = x2388 + x3199;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3253 = x2389 + x3200;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3254 = x2390 + x3201;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3255 = x2391 + x3202;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3256 = x2392 + x3203;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3257 = x2393 + x3204;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3258 = x2394 + x3205;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3259 = x2395 + x3206;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3260 = x2396 + x3207;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3261 = x2397 + x3208;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3262 = x2398 + x3209;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3263 = x2399 + x3210;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3264 = x2400 + x3211;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3265 = x2401 + x3212;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3266 = x2402 + x3213;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3267 = x2403 + x3214;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3268 = x2404 + x3215;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3269 = x2405 + x3216;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3270 = x2406 + x3217;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3271 = x2407 + x3218;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3272 = x2408 + x3219;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3273 = x2409 + x3188;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3274 = x2410 + x3189;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3275 = x2411 + x3190;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3276 = x2412 + x3191;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3277 = x2413 + x3192;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3278 = x2414 + x3193;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3279 = x2415 + x3194;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3280 = x2416 + x3195;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3281 = x2417 + x3196;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3282 = x2418 + x3197;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3283 = x2419 + x3198;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3284 = x2420 + x3225;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3285 = x2421 + x3226;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3286 = x2422 + x3227;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3287 = x2423 + x3228;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3288 = x2424 + x3229;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3289 = x2425 + x3230;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3290 = x2426 + x3231;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3291 = x2427 + x3232;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3292 = x2428 + x3233;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3293 = x2429 + x3234;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3294 = x2430 + x3235;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3295 = x2431 + x3236;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3296 = x2432 + x3237;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3297 = x2433 + x3238;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3298 = x2434 + x3239;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3299 = x2435 + x3240;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3300 = x2436 + x3241;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3301 = x2437 + x3242;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3302 = x2438 + x3243;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3303 = x2439 + x3244;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3304 = x2440 + x3245;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3305 = x2441 + x3246;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3306 = x2442 + x3247;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3307 = x2443 + x3248;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3308 = x2444 + x3249;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3309 = x2445 + x3250;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3310 = x2446 + x3251;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3311 = x2447 + x3220;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3312 = x2448 + x3221;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3313 = x2449 + x3222;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3314 = x2450 + x3223;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3315 = x2451 + x3224;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3316 = x2645 + x3156;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3317 = x2647 + x3157;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3318 = x2649 + x3158;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3319 = x2651 + x3159;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3320 = x2653 + x3160;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3321 = x2655 + x3161;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3322 = x2657 + x3162;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3323 = x2659 + x3163;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3324 = x2661 + x3164;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3325 = x2663 + x3165;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3326 = x2665 + x3166;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3327 = x2667 + x3167;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3328 = x2669 + x3168;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3329 = x2671 + x3169;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3330 = x2673 + x3170;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3331 = x2675 + x3171;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3332 = x2677 + x3172;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3333 = x2679 + x3173;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3334 = x2681 + x3174;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3335 = x2683 + x3175;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3336 = x2685 + x3176;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3337 = x2687 + x3177;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3338 = x2689 + x3178;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3339 = x2691 + x3179;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3340 = x2693 + x3180;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3341 = x2695 + x3181;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3342 = x2697 + x3182;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3343 = x2699 + x3183;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3344 = x2701 + x3184;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3345 = x2703 + x3185;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3346 = x2705 + x3186;
  // loc("zirgen/circuit/recursion/sha.cpp":64:14)
  auto x3347 = x2707 + x3187;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3348 = x3028 + x3092;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3349 = x3029 + x3093;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3350 = x3030 + x3094;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3351 = x3031 + x3095;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3352 = x3032 + x3096;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3353 = x3033 + x3097;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3354 = x3034 + x3098;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3355 = x3035 + x3099;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3356 = x3036 + x3100;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3357 = x3037 + x3101;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3358 = x3038 + x3102;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3359 = x3039 + x3103;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3360 = x3040 + x3104;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3361 = x3041 + x3105;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3362 = x3042 + x3106;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3363 = x3043 + x3107;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3364 = x3044 + x3108;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3365 = x3045 + x3109;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3366 = x3046 + x3110;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3367 = x3047 + x3111;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3368 = x3048 + x3112;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3369 = x3049 + x3113;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3370 = x3050 + x3114;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3371 = x3051 + x3115;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3372 = x3052 + x3116;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3373 = x3053 + x3117;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3374 = x3054 + x3118;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3375 = x3055 + x3119;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3376 = x3056 + x3120;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3377 = x3057 + x3121;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3378 = x3058 + x3122;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3379 = x3059 + x3123;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3380 = x3317 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3381 = x3318 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3382 = x3319 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3383 = x3320 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3384 = x3321 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3385 = x3322 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3386 = x3323 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3387 = x3324 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3388 = x3325 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3389 = x3326 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3390 = x3327 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3391 = x3328 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3392 = x3329 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3393 = x3330 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3394 = x3331 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3395 = x3333 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3396 = x3334 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3397 = x3335 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3398 = x3336 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3399 = x3337 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3400 = x3338 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3401 = x3339 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3402 = x3340 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3403 = x3341 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3404 = x3342 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3405 = x3343 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3406 = x3344 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3407 = x3345 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3408 = x3346 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3409 = x3347 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3410 = x2580 * x3199;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3411 = x2582 * x3200;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3412 = x2584 * x3201;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3413 = x2586 * x3202;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3414 = x2588 * x3203;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3415 = x2590 * x3204;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3416 = x2592 * x3205;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3417 = x2594 * x3206;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3418 = x2596 * x3207;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3419 = x2598 * x3208;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3420 = x2600 * x3209;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3421 = x2602 * x3210;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3422 = x2604 * x3211;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3423 = x2606 * x3212;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3424 = x2608 * x3213;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3425 = x2610 * x3214;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3426 = x2612 * x3215;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3427 = x2614 * x3216;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3428 = x2616 * x3217;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3429 = x2618 * x3218;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3430 = x2620 * x3219;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3431 = x2622 * x3188;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3432 = x2624 * x3189;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3433 = x2626 * x3190;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3434 = x2628 * x3191;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3435 = x2630 * x3192;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3436 = x2632 * x3193;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3437 = x2634 * x3194;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3438 = x2636 * x3195;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3439 = x2638 * x3196;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3440 = x2640 * x3197;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3441 = x2642 * x3198;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3442 = x2644 * x3225;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3443 = x2646 * x3226;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3444 = x2648 * x3227;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3445 = x2650 * x3228;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3446 = x2652 * x3229;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3447 = x2654 * x3230;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3448 = x2656 * x3231;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3449 = x2658 * x3232;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3450 = x2660 * x3233;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3451 = x2662 * x3234;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3452 = x2664 * x3235;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3453 = x2666 * x3236;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3454 = x2668 * x3237;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3455 = x2670 * x3238;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3456 = x2672 * x3239;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3457 = x2674 * x3240;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3458 = x2676 * x3241;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3459 = x2678 * x3242;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3460 = x2680 * x3243;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3461 = x2682 * x3244;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3462 = x2684 * x3245;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3463 = x2686 * x3246;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3464 = x2688 * x3247;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3465 = x2690 * x3248;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3466 = x2692 * x3249;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3467 = x2694 * x3250;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3468 = x2696 * x3251;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3469 = x2698 * x3220;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3470 = x2700 * x3221;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3471 = x2702 * x3222;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3472 = x2704 * x3223;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3473 = x2706 * x3224;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3474 = x3252 - x3410;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3475 = x3253 - x3411;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3476 = x3254 - x3412;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3477 = x3255 - x3413;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3478 = x3256 - x3414;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3479 = x3257 - x3415;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3480 = x3258 - x3416;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3481 = x3259 - x3417;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3482 = x3260 - x3418;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3483 = x3261 - x3419;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3484 = x3262 - x3420;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3485 = x3263 - x3421;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3486 = x3264 - x3422;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3487 = x3265 - x3423;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3488 = x3266 - x3424;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3489 = x3267 - x3425;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3490 = x3268 - x3426;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3491 = x3269 - x3427;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3492 = x3270 - x3428;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3493 = x3271 - x3429;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3494 = x3272 - x3430;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3495 = x3273 - x3431;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3496 = x3274 - x3432;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3497 = x3275 - x3433;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3498 = x3276 - x3434;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3499 = x3277 - x3435;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3500 = x3278 - x3436;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3501 = x3279 - x3437;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3502 = x3280 - x3438;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3503 = x3281 - x3439;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3504 = x3282 - x3440;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3505 = x3283 - x3441;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3506 = x3284 - x3442;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3507 = x3285 - x3443;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3508 = x3286 - x3444;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3509 = x3287 - x3445;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3510 = x3288 - x3446;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3511 = x3289 - x3447;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3512 = x3290 - x3448;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3513 = x3291 - x3449;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3514 = x3292 - x3450;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3515 = x3293 - x3451;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3516 = x3294 - x3452;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3517 = x3295 - x3453;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3518 = x3296 - x3454;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3519 = x3297 - x3455;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3520 = x3298 - x3456;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3521 = x3299 - x3457;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3522 = x3300 - x3458;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3523 = x3301 - x3459;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3524 = x3302 - x3460;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3525 = x3303 - x3461;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3526 = x3304 - x3462;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3527 = x3305 - x3463;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3528 = x3306 - x3464;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3529 = x3307 - x3465;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3530 = x3308 - x3466;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3531 = x3309 - x3467;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3532 = x3310 - x3468;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3533 = x3311 - x3469;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3534 = x3312 - x3470;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3535 = x3313 - x3471;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3536 = x3314 - x3472;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x3537 = x3315 - x3473;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3538 = x3348 + x3124;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3539 = x3349 + x3125;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3540 = x3350 + x3126;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3541 = x3351 + x3127;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3542 = x3352 + x3128;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3543 = x3353 + x3129;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3544 = x3354 + x3130;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3545 = x3355 + x3131;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3546 = x3356 + x3132;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3547 = x3357 + x3133;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3548 = x3358 + x3134;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3549 = x3359 + x3135;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3550 = x3360 + x3136;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3551 = x3361 + x3137;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3552 = x3362 + x3138;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3553 = x3363 + x3139;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3554 = x3364 + x3140;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3555 = x3365 + x3141;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3556 = x3366 + x3142;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3557 = x3367 + x3143;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3558 = x3368 + x3144;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3559 = x3369 + x3145;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3560 = x3370 + x3146;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3561 = x3371 + x3147;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3562 = x3372 + x3148;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3563 = x3373 + x3149;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3564 = x3374 + x3150;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3565 = x3375 + x3151;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3566 = x3376 + x3152;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3567 = x3377 + x3153;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3568 = x3378 + x3154;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3569 = x3379 + x3155;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3570 = x3474 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3571 = x3475 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3572 = x3477 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3573 = x3478 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3574 = x3479 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3575 = x3480 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3576 = x3481 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3577 = x3482 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3578 = x3483 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3579 = x3484 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3580 = x3485 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3581 = x3486 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3582 = x3487 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3583 = x3488 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3584 = x3489 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3585 = x3490 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3586 = x3491 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3587 = x3493 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3588 = x3494 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3589 = x3495 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3590 = x3496 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3591 = x3497 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3592 = x3498 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3593 = x3499 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3594 = x3500 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3595 = x3501 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3596 = x3502 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3597 = x3503 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3598 = x3504 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3599 = x3505 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3600 = x3506 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3601 = x3507 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3602 = x3508 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3603 = x3509 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3604 = x3510 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3605 = x3511 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3606 = x3513 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3607 = x3514 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3608 = x3515 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3609 = x3516 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3610 = x3517 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3611 = x3518 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3612 = x3519 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3613 = x3520 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3614 = x3521 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3615 = x3522 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3616 = x3523 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3617 = x3524 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3618 = x3525 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3619 = x3526 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3620 = x3527 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3621 = x3529 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3622 = x3530 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3623 = x3531 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3624 = x3532 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3625 = x3533 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3626 = x3534 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3627 = x3535 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3628 = x3536 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3629 = x3537 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3630 = x3538 + x2709;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3631 = x3539 + x2711;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3632 = x3540 + x2713;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3633 = x3541 + x2715;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3634 = x3542 + x2717;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3635 = x3543 + x2719;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3636 = x3544 + x2721;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3637 = x3545 + x2723;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3638 = x3546 + x2725;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3639 = x3547 + x2727;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3640 = x3548 + x2729;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3641 = x3549 + x2731;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3642 = x3550 + x2733;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3643 = x3551 + x2735;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3644 = x3552 + x2737;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3645 = x3553 + x2739;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3646 = x3554 + x2741;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3647 = x3555 + x2743;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3648 = x3556 + x2745;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3649 = x3557 + x2747;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3650 = x3558 + x2749;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3651 = x3559 + x2751;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3652 = x3560 + x2753;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3653 = x3561 + x2755;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3654 = x3562 + x2757;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3655 = x3563 + x2759;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3656 = x3564 + x2761;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3657 = x3565 + x2763;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3658 = x3566 + x2765;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3659 = x3567 + x2767;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3660 = x3568 + x2769;
  // loc("zirgen/circuit/recursion/sha.cpp":55:14)
  auto x3661 = x3569 + x2771;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3662 = x3316 + x3380;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3663 = x3332 + x3395;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3664 = x3631 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3665 = x3632 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3666 = x3633 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3667 = x3634 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3668 = x3635 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3669 = x3636 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3670 = x3637 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3671 = x3638 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3672 = x3639 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3673 = x3640 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3674 = x3641 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3675 = x3642 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3676 = x3643 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3677 = x3644 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3678 = x3645 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3679 = x3647 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3680 = x3648 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3681 = x3649 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3682 = x3650 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3683 = x3651 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3684 = x3652 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3685 = x3653 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3686 = x3654 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3687 = x3655 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3688 = x3656 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3689 = x3657 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3690 = x3658 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3691 = x3659 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3692 = x3660 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x3693 = x3661 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3694 = x3662 + x3381;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3695 = x3663 + x3396;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3696 = x3476 + x3572;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3697 = x3492 + x3587;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3698 = x3512 + x3606;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3699 = x3528 + x3621;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3700 = x3694 + x3382;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3701 = x3695 + x3397;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3702 = x3696 + x3573;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3703 = x3697 + x3588;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3704 = x3698 + x3607;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3705 = x3699 + x3622;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3706 = x3630 + x3664;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3707 = x3646 + x3679;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3708 = x3700 + x3383;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3709 = x3701 + x3398;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3710 = x3702 + x3574;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3711 = x3703 + x3589;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3712 = x3704 + x3608;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3713 = x3705 + x3623;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3714 = x3706 + x3665;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3715 = x3707 + x3680;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3716 = x3708 + x3384;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3717 = x3709 + x3399;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3718 = x3710 + x3575;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3719 = x3711 + x3590;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3720 = x3712 + x3609;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3721 = x3713 + x3624;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3722 = x3714 + x3666;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3723 = x3715 + x3681;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3724 = x3716 + x3385;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3725 = x3717 + x3400;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3726 = x3718 + x3576;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3727 = x3719 + x3591;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3728 = x3720 + x3610;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3729 = x3721 + x3625;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3730 = x3722 + x3667;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3731 = x3723 + x3682;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3732 = x3724 + x3386;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3733 = x3725 + x3401;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3734 = x3726 + x3577;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3735 = x3727 + x3592;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3736 = x3728 + x3611;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3737 = x3729 + x3626;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3738 = x3730 + x3668;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3739 = x3731 + x3683;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3740 = x3732 + x3387;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3741 = x3733 + x3402;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3742 = x3734 + x3578;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3743 = x3735 + x3593;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3744 = x3736 + x3612;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3745 = x3737 + x3627;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3746 = x3738 + x3669;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3747 = x3739 + x3684;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3748 = x3740 + x3388;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3749 = x3741 + x3403;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3750 = x3742 + x3579;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3751 = x3743 + x3594;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3752 = x3744 + x3613;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3753 = x3745 + x3628;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3754 = x3746 + x3670;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3755 = x3747 + x3685;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3756 = x3748 + x3389;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3757 = x3749 + x3404;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3758 = x3750 + x3580;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3759 = x3751 + x3595;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3760 = x3752 + x3614;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3761 = x3753 + x3629;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3762 = x3754 + x3671;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3763 = x3755 + x3686;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3764 = x3756 + x3390;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3765 = x3757 + x3405;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3766 = x3758 + x3581;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3767 = x3759 + x3596;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3768 = x3760 + x3615;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3769 = x3761 + x3600;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3770 = x3762 + x3672;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3771 = x3763 + x3687;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3772 = x3764 + x3391;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3773 = x3765 + x3406;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3774 = x3766 + x3582;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3775 = x3767 + x3597;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3776 = x3768 + x3616;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3777 = x3769 + x3601;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3778 = x3770 + x3673;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3779 = x3771 + x3688;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3780 = x3772 + x3392;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3781 = x3773 + x3407;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3782 = x3774 + x3583;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3783 = x3775 + x3598;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3784 = x3776 + x3617;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3785 = x3777 + x3602;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3786 = x3778 + x3674;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3787 = x3779 + x3689;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3788 = x3780 + x3393;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3789 = x3781 + x3408;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3790 = x3782 + x3584;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3791 = x3783 + x3599;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3792 = x3784 + x3618;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3793 = x3785 + x3603;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3794 = x3786 + x3675;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3795 = x3787 + x3690;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3796 = x3788 + x3394;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3797 = x3789 + x3409;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3798 = x3790 + x3585;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3799 = x3791 + x3570;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3800 = x3792 + x3619;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3801 = x3793 + x3604;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3802 = x3794 + x3676;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3803 = x3795 + x3691;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3804 = x3798 + x3586;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3805 = x3799 + x3571;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3806 = x3800 + x3620;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3807 = x3801 + x3605;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3808 = x3802 + x3677;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3809 = x3803 + x3692;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x3810 = x3796 + x3806;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x3811 = x3797 + x3807;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x3812 = x2231 + x3810;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x3813 = x2232 + x3811;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x3814 = x348 + x3812;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x3815 = x351 + x3813;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x3816 = x1689 + x3815;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x3817 = x1652 + x3814;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3818 = x3808 + x3678;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x3819 = x3809 + x3693;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x3820 = x3816 + x2031;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x3821 = x3817 + x2030;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x3822 = x3818 + x3804;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x3823 = x3819 + x3805;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x3824 = x3816 + x3823;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x3825 = x3817 + x3822;
  // loc("zirgen/circuit/recursion/sha.cpp":290:5)
  auto x3826 = x1195 - x3825;
  // loc("zirgen/circuit/recursion/sha.cpp":290:5)
  FpExt x3827 = x2387 + x3826 * poly_mix[9];
  // loc("zirgen/circuit/recursion/sha.cpp":291:5)
  auto x3828 = x290 - x3821;
  // loc("zirgen/circuit/recursion/sha.cpp":291:5)
  FpExt x3829 = x3827 + x3828 * poly_mix[10];
  // loc("zirgen/circuit/recursion/sha.cpp":290:5)
  auto x3830 = x1196 - x3824;
  // loc("zirgen/circuit/recursion/sha.cpp":290:5)
  FpExt x3831 = x3829 + x3830 * poly_mix[11];
  // loc("zirgen/circuit/recursion/sha.cpp":291:5)
  auto x3832 = x291 - x3820;
  // loc("zirgen/circuit/recursion/sha.cpp":291:5)
  FpExt x3833 = x3831 + x3832 * poly_mix[12];
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x3834 = x1195 - x1726;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x3835 = x3834 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":125:20)
  auto x3836 = x3835 - x322;
  // loc("zirgen/circuit/recursion/sha.cpp":125:19)
  auto x3837 = x3836 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":126:20)
  auto x3838 = x1 - x3837;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  auto x3839 = x3837 * x3838;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  FpExt x3840 = x3833 + x3839 * poly_mix[13];
  // loc("zirgen/circuit/recursion/sha.cpp":127:32)
  auto x3841 = x1196 + x3835;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x3842 = x3841 - x1762;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x3843 = x3842 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":129:21)
  auto x3844 = x3843 - x324;
  // loc("zirgen/circuit/recursion/sha.cpp":129:20)
  auto x3845 = x3844 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":130:21)
  auto x3846 = x1 - x3845;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  auto x3847 = x3845 * x3846;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  FpExt x3848 = x3840 + x3847 * poly_mix[14];
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x3849 = x290 - x1799;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x3850 = x3849 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":125:20)
  auto x3851 = x3850 - x326;
  // loc("zirgen/circuit/recursion/sha.cpp":125:19)
  auto x3852 = x3851 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":126:20)
  auto x3853 = x1 - x3852;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  auto x3854 = x3852 * x3853;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  FpExt x3855 = x3848 + x3854 * poly_mix[15];
  // loc("zirgen/circuit/recursion/sha.cpp":127:32)
  auto x3856 = x291 + x3850;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x3857 = x3856 - x1837;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x3858 = x3857 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":129:21)
  auto x3859 = x3858 - x328;
  // loc("zirgen/circuit/recursion/sha.cpp":129:20)
  auto x3860 = x3859 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":130:21)
  auto x3861 = x1 - x3860;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  auto x3862 = x3860 * x3861;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  FpExt x3863 = x3855 + x3862 * poly_mix[16];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x3864 = x2300 + x592 * x3863 * poly_mix[54];
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  FpExt x3865 = x284 + x334 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x3866 = x3865 + x336 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x3867 = x3866 + x338 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x3868 = x3867 + x340 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x3869 = x3868 + x342 * poly_mix[4];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x3870 = x3869 + x1114 * poly_mix[5];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[0](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3871 = args[2][94 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[1](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3872 = args[2][95 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[2](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3873 = args[2][96 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[6](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3874 = args[2][100 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3875 = args[2][101 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3876 = args[2][102 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3877 = args[2][103 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3878 = args[2][104 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3879 = args[2][105 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3880 = args[2][106 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3881 = args[2][107 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3882 = args[2][108 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3883 = args[2][112 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3884 = args[2][113 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3885 = args[2][114 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3886 = args[2][115 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3887 = args[2][116 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3888 = args[2][117 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3889 = args[2][118 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3890 = args[2][119 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3891 = args[2][120 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[27](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3892 = args[2][121 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[28](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3893 = args[2][122 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[29](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3894 = args[2][123 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[30](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3895 = args[2][124 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[31](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3896 = args[2][125 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[3](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3897 = args[2][97 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[4](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3898 = args[2][98 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[5](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3899 = args[2][99 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3900 = args[2][109 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3901 = args[2][110 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3902 = args[2][111 * steps + ((cycle - kInvRate * 15) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[6](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3903 = args[2][100 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3904 = args[2][101 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3905 = args[2][102 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3906 = args[2][103 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3907 = args[2][104 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3908 = args[2][105 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3909 = args[2][106 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3910 = args[2][107 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3911 = args[2][108 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3912 = args[2][109 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3913 = args[2][110 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3914 = args[2][111 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3915 = args[2][112 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3916 = args[2][113 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3917 = args[2][114 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3918 = args[2][115 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3919 = args[2][116 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3920 = args[2][117 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3921 = args[2][118 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3922 = args[2][119 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3923 = args[2][120 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[27](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3924 = args[2][121 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[28](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3925 = args[2][122 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[29](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3926 = args[2][123 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[30](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3927 = args[2][124 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[31](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3928 = args[2][125 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[0](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3929 = args[2][94 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[1](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3930 = args[2][95 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[2](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3931 = args[2][96 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[3](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3932 = args[2][97 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[4](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3933 = args[2][98 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[5](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3934 = args[2][99 * steps + ((cycle - kInvRate * 16) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[6](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3935 = args[2][100 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3936 = args[2][101 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3937 = args[2][102 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[0](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3938 = args[2][94 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[1](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3939 = args[2][95 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[2](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3940 = args[2][96 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[3](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3941 = args[2][97 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[4](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3942 = args[2][98 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[5](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3943 = args[2][99 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3944 = args[2][103 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3945 = args[2][113 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3946 = args[2][114 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3947 = args[2][115 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3948 = args[2][116 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3949 = args[2][117 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3950 = args[2][118 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3951 = args[2][119 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3952 = args[2][120 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[27](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3953 = args[2][121 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[28](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3954 = args[2][122 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[29](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3955 = args[2][123 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[30](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3956 = args[2][124 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[31](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3957 = args[2][125 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3958 = args[2][104 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3959 = args[2][105 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3960 = args[2][106 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3961 = args[2][107 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3962 = args[2][108 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3963 = args[2][109 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3964 = args[2][110 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3965 = args[2][111 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3966 = args[2][112 * steps + ((cycle - kInvRate * 2) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[6](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3967 = args[2][100 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[7](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3968 = args[2][101 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[8](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3969 = args[2][102 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[9](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3970 = args[2][103 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[10](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3971 = args[2][104 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[11](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3972 = args[2][105 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[12](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3973 = args[2][106 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[13](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3974 = args[2][107 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[14](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3975 = args[2][108 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[15](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3976 = args[2][109 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[16](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3977 = args[2][110 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[17](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3978 = args[2][111 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[18](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3979 = args[2][112 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[19](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3980 = args[2][113 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[20](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3981 = args[2][114 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[21](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3982 = args[2][115 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[22](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3983 = args[2][116 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[23](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3984 = args[2][117 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[24](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3985 = args[2][118 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[25](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3986 = args[2][119 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[26](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3987 = args[2][120 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[27](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3988 = args[2][121 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[28](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3989 = args[2][122 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[29](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3990 = args[2][123 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[30](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3991 = args[2][124 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[31](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3992 = args[2][125 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[0](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3993 = args[2][94 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[1](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3994 = args[2][95 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[2](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3995 = args[2][96 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[3](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3996 = args[2][97 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[4](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3997 = args[2][98 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/w[5](Bit)/bit(Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x3998 = args[2][99 * steps + ((cycle - kInvRate * 7) & mask)];
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x3999 = x3871 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4000 = x3872 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4001 = x3873 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4002 = x3874 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4003 = x3875 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4004 = x3876 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4005 = x3877 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4006 = x3878 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4007 = x3879 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4008 = x3880 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4009 = x3881 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4010 = x3882 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4011 = x3883 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4012 = x3884 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4013 = x3885 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4014 = x3886 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4015 = x3887 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4016 = x3888 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4017 = x3889 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4018 = x3890 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4019 = x3891 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4020 = x3892 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4021 = x3893 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4022 = x3894 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4023 = x3895 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4024 = x3896 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4025 = x3897 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4026 = x3898 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4027 = x3899 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4028 = x3900 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4029 = x3901 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4030 = x3902 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4031 = x3935 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4032 = x3936 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4033 = x3937 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4034 = x3938 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4035 = x3939 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4036 = x3940 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4037 = x3941 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4038 = x3942 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4039 = x3943 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4040 = x3944 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4041 = x3945 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4042 = x3946 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4043 = x3947 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4044 = x3948 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4045 = x3949 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4046 = x3950 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4047 = x3951 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4048 = x3952 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4049 = x3953 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4050 = x3954 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4051 = x3955 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4052 = x3956 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4053 = x3957 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4054 = x3958 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4055 = x3959 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4056 = x3960 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4057 = x3961 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4058 = x3962 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4059 = x3963 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4060 = x3964 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4061 = x3965 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4062 = x3966 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4063 = x3903 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4064 = x3904 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4065 = x3905 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4066 = x3906 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4067 = x3907 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4068 = x3908 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4069 = x3909 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4070 = x3910 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4071 = x3911 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4072 = x3912 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4073 = x3914 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4074 = x3915 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4075 = x3916 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4076 = x3917 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4077 = x3918 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4078 = x3919 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4079 = x3920 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4080 = x3921 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4081 = x3922 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4082 = x3923 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4083 = x3924 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4084 = x3925 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4085 = x3926 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4086 = x3927 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4087 = x3928 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4088 = x3930 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4089 = x3931 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4090 = x3932 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4091 = x3933 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4092 = x3934 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4093 = x3967 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4094 = x3968 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4095 = x3969 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4096 = x3970 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4097 = x3971 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4098 = x3972 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4099 = x3973 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4100 = x3974 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4101 = x3975 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4102 = x3976 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4103 = x3978 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4104 = x3979 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4105 = x3980 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4106 = x3981 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4107 = x3982 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4108 = x3983 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4109 = x3984 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4110 = x3985 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4111 = x3986 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4112 = x3987 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4113 = x3988 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4114 = x3989 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4115 = x3990 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4116 = x3991 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4117 = x3992 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4118 = x3994 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4119 = x3995 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4120 = x3996 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4121 = x3997 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4122 = x3998 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4123 = x3999 * x3902;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4124 = x4000 * x3883;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4125 = x4001 * x3884;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4126 = x4002 * x3888;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4127 = x4002 * x3902;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4128 = x4003 * x3889;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4129 = x4004 * x3890;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4130 = x4005 * x3891;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4131 = x4006 * x3892;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4132 = x4007 * x3893;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4133 = x4008 * x3894;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4134 = x4009 * x3895;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4135 = x4010 * x3896;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4136 = x4011 * x3897;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4137 = x4012 * x3898;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4138 = x4013 * x3899;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4139 = x4014 * x3874;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4140 = x4015 * x3875;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4141 = x4016 * x3876;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4142 = x4017 * x3877;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4143 = x4018 * x3878;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4144 = x4019 * x3879;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4145 = x4020 * x3880;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4146 = x4021 * x3881;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4147 = x4022 * x3882;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4148 = x4023 * x3900;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4149 = x4024 * x3901;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4150 = x4025 * x3885;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4151 = x4026 * x3886;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4152 = x4026 * x3900;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4153 = x4027 * x3887;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4154 = x4027 * x3901;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4155 = x4031 * x3955;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4156 = x4032 * x3944;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4157 = x4032 * x3956;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4158 = x4033 * x3957;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4159 = x4033 * x3958;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4160 = x4034 * x3949;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4161 = x4035 * x3950;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4162 = x4036 * x3951;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4163 = x4037 * x3952;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4164 = x4038 * x3953;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4165 = x4039 * x3954;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4166 = x4040 * x3959;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4167 = x4041 * x3958;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4168 = x4042 * x3959;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4169 = x4043 * x3960;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4170 = x4044 * x3961;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4171 = x4045 * x3962;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4172 = x4046 * x3963;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4173 = x4047 * x3964;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4174 = x4048 * x3965;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4175 = x4049 * x3966;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4176 = x4050 * x3945;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4177 = x4051 * x3946;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4178 = x4052 * x3947;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4179 = x4053 * x3948;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4180 = x4054 * x3960;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4181 = x4055 * x3961;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4182 = x4056 * x3962;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4183 = x4057 * x3963;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4184 = x4058 * x3964;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4185 = x4059 * x3965;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4186 = x4060 * x3966;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4187 = x3871 + x3902;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4188 = x3872 + x3883;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4189 = x3873 + x3884;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4190 = x3874 + x3888;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4191 = x3874 + x3902;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4192 = x3875 + x3889;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4193 = x3876 + x3890;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4194 = x3877 + x3891;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4195 = x3878 + x3892;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4196 = x3879 + x3893;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4197 = x3880 + x3894;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4198 = x3881 + x3895;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4199 = x3882 + x3896;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4200 = x3883 + x3897;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4201 = x3884 + x3898;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4202 = x3885 + x3899;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4203 = x3886 + x3874;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4204 = x3887 + x3875;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4205 = x3888 + x3876;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4206 = x3889 + x3877;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4207 = x3890 + x3878;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4208 = x3891 + x3879;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4209 = x3892 + x3880;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4210 = x3893 + x3881;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4211 = x3894 + x3882;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4212 = x3895 + x3900;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4213 = x3896 + x3901;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4214 = x3897 + x3885;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4215 = x3898 + x3886;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4216 = x3898 + x3900;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4217 = x3899 + x3887;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4218 = x3899 + x3901;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4219 = x3935 + x3955;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4220 = x3936 + x3944;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4221 = x3936 + x3956;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4222 = x3937 + x3957;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4223 = x3937 + x3958;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4224 = x3938 + x3949;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4225 = x3939 + x3950;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4226 = x3940 + x3951;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4227 = x3941 + x3952;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4228 = x3942 + x3953;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4229 = x3943 + x3954;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4230 = x3944 + x3959;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4231 = x3945 + x3958;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4232 = x3946 + x3959;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4233 = x3947 + x3960;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4234 = x3948 + x3961;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4235 = x3949 + x3962;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4236 = x3950 + x3963;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4237 = x3951 + x3964;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4238 = x3952 + x3965;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4239 = x3953 + x3966;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4240 = x3954 + x3945;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4241 = x3955 + x3946;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4242 = x3956 + x3947;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4243 = x3957 + x3948;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4244 = x3958 + x3960;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4245 = x3959 + x3961;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4246 = x3960 + x3962;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4247 = x3961 + x3963;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4248 = x3962 + x3964;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4249 = x3963 + x3965;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4250 = x3964 + x3966;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4251 = x4191 - x4127;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4252 = x4216 - x4152;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4253 = x4218 - x4154;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4254 = x4220 - x4156;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4255 = x4223 - x4159;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4256 = x4230 - x4166;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4257 = x4244 - x4180;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4258 = x4245 - x4181;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4259 = x4246 - x4182;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4260 = x4247 - x4183;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4261 = x4248 - x4184;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4262 = x4249 - x4185;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4263 = x4250 - x4186;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4264 = x4187 - x4123;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4265 = x4188 - x4124;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4266 = x4189 - x4125;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4267 = x4190 - x4126;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4268 = x4192 - x4128;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4269 = x4193 - x4129;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4270 = x4194 - x4130;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4271 = x4195 - x4131;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4272 = x4196 - x4132;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4273 = x4197 - x4133;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4274 = x4198 - x4134;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4275 = x4199 - x4135;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4276 = x4200 - x4136;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4277 = x4201 - x4137;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4278 = x4202 - x4138;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4279 = x4203 - x4139;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4280 = x4204 - x4140;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4281 = x4205 - x4141;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4282 = x4206 - x4142;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4283 = x4207 - x4143;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4284 = x4208 - x4144;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4285 = x4209 - x4145;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4286 = x4210 - x4146;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4287 = x4211 - x4147;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4288 = x4212 - x4148;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4289 = x4213 - x4149;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4290 = x4214 - x4150;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4291 = x4215 - x4151;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4292 = x4217 - x4153;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4293 = x4219 - x4155;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4294 = x4221 - x4157;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4295 = x4222 - x4158;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4296 = x4224 - x4160;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4297 = x4225 - x4161;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4298 = x4226 - x4162;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4299 = x4227 - x4163;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4300 = x4228 - x4164;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4301 = x4229 - x4165;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4302 = x4231 - x4167;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4303 = x4232 - x4168;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4304 = x4233 - x4169;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4305 = x4234 - x4170;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4306 = x4235 - x4171;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4307 = x4236 - x4172;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4308 = x4237 - x4173;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4309 = x4238 - x4174;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4310 = x4239 - x4175;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4311 = x4240 - x4176;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4312 = x4241 - x4177;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4313 = x4242 - x4178;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4314 = x4243 - x4179;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4315 = x3913 + x4073;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4316 = x3929 + x4088;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4317 = x3977 + x4103;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4318 = x3993 + x4118;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4319 = x3871 + x4272;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4320 = x3872 + x4273;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4321 = x3873 + x4274;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4322 = x3875 + x4276;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4323 = x3876 + x4277;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4324 = x3877 + x4278;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4325 = x3878 + x4279;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4326 = x3879 + x4280;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4327 = x3880 + x4281;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4328 = x3881 + x4282;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4329 = x3882 + x4283;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4330 = x3883 + x4287;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4331 = x3884 + x4288;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4332 = x3885 + x4289;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4333 = x3886 + x4264;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4334 = x3887 + x4265;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4335 = x3888 + x4266;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4336 = x3889 + x4290;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4337 = x3890 + x4291;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4338 = x3891 + x4292;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4339 = x3892 + x4267;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4340 = x3893 + x4268;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4341 = x3894 + x4269;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4342 = x3895 + x4270;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4343 = x3896 + x4271;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4344 = x3897 + x4275;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4345 = x3900 + x4284;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4346 = x3901 + x4285;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4347 = x3902 + x4286;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4348 = x3935 + x4295;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4349 = x3938 + x4298;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4350 = x3939 + x4299;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4351 = x3940 + x4300;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4352 = x3941 + x4301;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4353 = x3942 + x4293;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4354 = x3943 + x4294;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4355 = x3945 + x4304;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4356 = x3946 + x4305;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4357 = x3947 + x4306;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4358 = x3948 + x4307;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4359 = x3949 + x4308;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4360 = x3950 + x4309;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4361 = x3951 + x4310;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4362 = x3952 + x4311;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4363 = x3953 + x4312;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4364 = x3954 + x4313;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4365 = x3955 + x4314;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4366 = x3956 + x4296;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4367 = x3957 + x4297;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4368 = x3965 + x4302;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4369 = x3966 + x4303;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4370 = x3999 * x4272;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4371 = x4000 * x4273;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4372 = x4001 * x4274;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4373 = x4003 * x4276;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4374 = x4004 * x4277;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4375 = x4005 * x4278;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4376 = x4006 * x4279;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4377 = x4007 * x4280;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4378 = x4008 * x4281;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4379 = x4009 * x4282;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4380 = x4010 * x4283;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4381 = x4011 * x4287;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4382 = x4012 * x4288;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4383 = x4013 * x4289;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4384 = x4014 * x4264;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4385 = x4015 * x4265;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4386 = x4016 * x4266;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4387 = x4017 * x4290;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4388 = x4018 * x4291;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4389 = x4019 * x4292;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4390 = x4020 * x4267;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4391 = x4021 * x4268;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4392 = x4022 * x4269;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4393 = x4023 * x4270;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4394 = x4024 * x4271;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4395 = x4025 * x4275;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4396 = x4028 * x4284;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4397 = x4029 * x4285;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4398 = x4030 * x4286;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4399 = x4031 * x4295;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4400 = x4034 * x4298;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4401 = x4035 * x4299;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4402 = x4036 * x4300;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4403 = x4037 * x4301;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4404 = x4038 * x4293;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4405 = x4039 * x4294;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4406 = x4041 * x4304;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4407 = x4042 * x4305;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4408 = x4043 * x4306;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4409 = x4044 * x4307;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4410 = x4045 * x4308;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4411 = x4046 * x4309;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4412 = x4047 * x4310;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4413 = x4048 * x4311;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4414 = x4049 * x4312;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4415 = x4050 * x4313;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4416 = x4051 * x4314;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4417 = x4052 * x4296;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4418 = x4053 * x4297;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4419 = x4061 * x4302;
  // loc("zirgen/circuit/recursion/sha.cpp":47:28)
  auto x4420 = x4062 * x4303;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4421 = x4251 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4422 = x4252 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4423 = x4253 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4424 = x4254 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4425 = x4255 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4426 = x4256 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4427 = x4257 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4428 = x4258 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4429 = x4259 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4430 = x4260 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4431 = x4261 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4432 = x4262 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4433 = x4263 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4434 = x4319 - x4370;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4435 = x4320 - x4371;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4436 = x4321 - x4372;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4437 = x4322 - x4373;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4438 = x4323 - x4374;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4439 = x4324 - x4375;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4440 = x4325 - x4376;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4441 = x4326 - x4377;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4442 = x4327 - x4378;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4443 = x4328 - x4379;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4444 = x4329 - x4380;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4445 = x4330 - x4381;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4446 = x4331 - x4382;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4447 = x4332 - x4383;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4448 = x4333 - x4384;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4449 = x4334 - x4385;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4450 = x4335 - x4386;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4451 = x4336 - x4387;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4452 = x4337 - x4388;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4453 = x4338 - x4389;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4454 = x4339 - x4390;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4455 = x4340 - x4391;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4456 = x4341 - x4392;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4457 = x4342 - x4393;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4458 = x4343 - x4394;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4459 = x4344 - x4395;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4460 = x4345 - x4396;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4461 = x4346 - x4397;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4462 = x4347 - x4398;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4463 = x4348 - x4399;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4464 = x4349 - x4400;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4465 = x4350 - x4401;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4466 = x4351 - x4402;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4467 = x4352 - x4403;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4468 = x4353 - x4404;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4469 = x4354 - x4405;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4470 = x4355 - x4406;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4471 = x4356 - x4407;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4472 = x4357 - x4408;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4473 = x4358 - x4409;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4474 = x4359 - x4410;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4475 = x4360 - x4411;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4476 = x4361 - x4412;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4477 = x4362 - x4413;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4478 = x4363 - x4414;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4479 = x4364 - x4415;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4480 = x4365 - x4416;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4481 = x4366 - x4417;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4482 = x4367 - x4418;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4483 = x4368 - x4419;
  // loc("zirgen/circuit/recursion/sha.cpp":47:14)
  auto x4484 = x4369 - x4420;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4485 = x4315 + x4074;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4486 = x4316 + x4089;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4487 = x4317 + x4104;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4488 = x4318 + x4119;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4489 = x4434 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4490 = x4435 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4491 = x4436 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4492 = x4438 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4493 = x4439 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4494 = x4440 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4495 = x4441 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4496 = x4442 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4497 = x4443 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4498 = x4444 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4499 = x4445 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4500 = x4446 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4501 = x4447 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4502 = x4448 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4503 = x4449 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4504 = x4451 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4505 = x4452 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4506 = x4453 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4507 = x4454 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4508 = x4455 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4509 = x4456 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4510 = x4457 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4511 = x4458 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4512 = x4459 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4513 = x4460 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4514 = x4461 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4515 = x4462 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4516 = x4463 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4517 = x4464 * x26;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4518 = x4466 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4519 = x4467 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4520 = x4468 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4521 = x4469 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4522 = x4470 * x4;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4523 = x4471 * x8;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4524 = x4472 * x14;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4525 = x4473 * x15;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4526 = x4474 * x16;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4527 = x4475 * x17;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4528 = x4476 * x19;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4529 = x4477 * x20;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4530 = x4478 * x21;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4531 = x4479 * x22;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4532 = x4480 * x23;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4533 = x4481 * x24;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4534 = x4482 * x25;
  // loc("zirgen/circuit/recursion/sha.cpp":74:25)
  auto x4535 = x4484 * x2;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4536 = x4485 + x4075;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4537 = x4486 + x4090;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4538 = x4487 + x4105;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4539 = x4488 + x4120;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4540 = x4536 + x4076;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4541 = x4537 + x4091;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4542 = x4538 + x4106;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4543 = x4539 + x4121;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4544 = x4437 + x4492;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4545 = x4450 + x4504;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4546 = x4465 + x4518;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4547 = x4483 + x4535;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4548 = x4540 + x4077;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4549 = x4541 + x4092;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4550 = x4542 + x4107;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4551 = x4543 + x4122;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4552 = x4544 + x4493;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4553 = x4545 + x4505;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4554 = x4546 + x4519;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4555 = x4547 + x4522;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4556 = x4548 + x4078;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4557 = x4549 + x4063;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4558 = x4550 + x4108;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4559 = x4551 + x4093;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4560 = x4552 + x4494;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4561 = x4553 + x4506;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4562 = x4554 + x4520;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4563 = x4555 + x4523;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4564 = x4556 + x4079;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4565 = x4557 + x4064;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4566 = x4558 + x4109;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4567 = x4559 + x4094;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4568 = x4560 + x4495;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4569 = x4561 + x4507;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4570 = x4562 + x4521;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4571 = x4563 + x4524;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4572 = x4564 + x4080;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4573 = x4565 + x4065;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4574 = x4566 + x4110;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4575 = x4567 + x4095;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4576 = x4568 + x4496;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4577 = x4569 + x4508;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4578 = x4570 + x4516;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4579 = x4571 + x4525;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4580 = x4572 + x4081;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4581 = x4573 + x4066;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4582 = x4574 + x4111;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4583 = x4575 + x4096;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4584 = x4576 + x4497;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4585 = x4577 + x4509;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4586 = x4578 + x4424;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4587 = x4579 + x4526;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4588 = x4580 + x4082;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4589 = x4581 + x4067;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4590 = x4582 + x4112;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4591 = x4583 + x4097;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4592 = x4584 + x4498;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4593 = x4585 + x4510;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4594 = x4586 + x4425;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4595 = x4587 + x4527;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4596 = x4588 + x4083;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4597 = x4589 + x4068;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4598 = x4590 + x4113;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4599 = x4591 + x4098;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4600 = x4592 + x4513;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4601 = x4593 + x4511;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4602 = x4594 + x4426;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4603 = x4595 + x4528;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4604 = x4596 + x4084;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4605 = x4597 + x4069;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4606 = x4598 + x4114;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4607 = x4599 + x4099;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4608 = x4600 + x4514;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4609 = x4601 + x4489;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4610 = x4602 + x4427;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4611 = x4603 + x4529;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4612 = x4604 + x4085;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4613 = x4605 + x4070;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4614 = x4606 + x4115;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4615 = x4607 + x4100;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4616 = x4608 + x4515;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4617 = x4609 + x4490;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4618 = x4610 + x4428;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4619 = x4611 + x4530;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4620 = x4612 + x4086;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4621 = x4613 + x4071;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4622 = x4614 + x4116;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4623 = x4615 + x4101;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4624 = x4616 + x4499;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4625 = x4617 + x4491;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4626 = x4618 + x4429;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4627 = x4619 + x4531;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4628 = x4620 + x4087;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4629 = x4621 + x4072;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4630 = x4622 + x4117;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4631 = x4623 + x4102;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4632 = x4624 + x4500;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4633 = x4625 + x4512;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4634 = x4626 + x4430;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4635 = x4627 + x4532;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4636 = x4632 + x4501;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4637 = x4633 + x4422;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4638 = x4634 + x4431;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4639 = x4635 + x4533;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4640 = x4636 + x4502;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4641 = x4637 + x4423;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4642 = x4638 + x4432;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4643 = x4639 + x4534;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4644 = x4642 + x4433;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4645 = x4643 + x4517;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4646 = x4640 + x4503;
  // loc("zirgen/circuit/recursion/sha.cpp":74:16)
  auto x4647 = x4641 + x4421;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x4648 = x4630 + x4644;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x4649 = x4631 + x4645;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x4650 = x4646 + x4649;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x4651 = x4647 + x4648;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x4652 = x4628 + x4651;
  // loc("zirgen/circuit/recursion/sha.cpp":83:14)
  auto x4653 = x4629 + x4650;
  // loc("zirgen/circuit/recursion/sha.cpp":261:5)
  auto x4654 = args[2][126 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/sha.cpp":261:5)
  auto x4655 = x4654 - x4653;
  // loc("zirgen/circuit/recursion/sha.cpp":261:5)
  FpExt x4656 = x3870 + x4655 * poly_mix[6];
  // loc("zirgen/circuit/recursion/sha.cpp":261:5)
  auto x4657 = args[2][127 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/sha.cpp":261:5)
  auto x4658 = x4657 - x4652;
  // loc("zirgen/circuit/recursion/sha.cpp":261:5)
  FpExt x4659 = x4656 + x4658 * poly_mix[7];
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x4660 = x4654 - x1652;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x4661 = x4660 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":125:20)
  auto x4662 = x4661 - x330;
  // loc("zirgen/circuit/recursion/sha.cpp":125:19)
  auto x4663 = x4662 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":126:20)
  auto x4664 = x1 - x4663;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  auto x4665 = x4663 * x4664;
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  FpExt x4666 = x4659 + x4665 * poly_mix[8];
  // loc("zirgen/circuit/recursion/sha.cpp":127:32)
  auto x4667 = x4657 + x4661;
  // loc("zirgen/circuit/recursion/sha.cpp":106:16)
  auto x4668 = x4667 - x1689;
  // loc("zirgen/circuit/recursion/sha.cpp":106:15)
  auto x4669 = x4668 * x27;
  // loc("zirgen/circuit/recursion/sha.cpp":129:21)
  auto x4670 = x4669 - x332;
  // loc("zirgen/circuit/recursion/sha.cpp":129:20)
  auto x4671 = x4670 * x13;
  // loc("zirgen/circuit/recursion/sha.cpp":130:21)
  auto x4672 = x1 - x4671;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  auto x4673 = x4671 * x4672;
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  FpExt x4674 = x4666 + x4673 * poly_mix[9];
  // loc("zirgen/circuit/recursion/sha.cpp":290:5)
  FpExt x4675 = x4674 + x3826 * poly_mix[10];
  // loc("zirgen/circuit/recursion/sha.cpp":291:5)
  FpExt x4676 = x4675 + x3828 * poly_mix[11];
  // loc("zirgen/circuit/recursion/sha.cpp":290:5)
  FpExt x4677 = x4676 + x3830 * poly_mix[12];
  // loc("zirgen/circuit/recursion/sha.cpp":291:5)
  FpExt x4678 = x4677 + x3832 * poly_mix[13];
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  FpExt x4679 = x4678 + x3839 * poly_mix[14];
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  FpExt x4680 = x4679 + x3847 * poly_mix[15];
  // loc("zirgen/circuit/recursion/sha.cpp":126:7)
  FpExt x4681 = x4680 + x3854 * poly_mix[16];
  // loc("zirgen/circuit/recursion/sha.cpp":130:7)
  FpExt x4682 = x4681 + x3862 * poly_mix[17];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x4683 = x3864 + x831 * x4682 * poly_mix[71];
  // loc("./zirgen/components/onehot.h":46:19)
  auto x4684 = x338 * x2;
  // loc("./zirgen/components/onehot.h":46:19)
  auto x4685 = x340 * x3;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x4686 = x336 + x4684;
  // loc("./zirgen/components/onehot.h":46:13)
  auto x4687 = x4686 + x4685;
  // loc("./zirgen/components/onehot.h":40:8)
  auto x4688 = x4687 - x864;
  // loc("./zirgen/components/onehot.h":40:8)
  FpExt x4689 = x284 + x4688 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x4690 = x342 - x865;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4691 = x284 + x4690 * poly_mix[0];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4692 = args[1][0];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4693 = x4692 - x345;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4694 = x4691 + x4693 * poly_mix[1];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4695 = args[1][1];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4696 = x4695 - x348;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4697 = x4694 + x4696 * poly_mix[2];
  // loc("zirgen/circuit/recursion/macro.cpp":37:37)
  auto x4698 = x865 + x1;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x4699 = x594 - x4698;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4700 = x4697 + x4699 * poly_mix[3];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4701 = args[1][2];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4702 = x4701 - x596;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4703 = x4700 + x4702 * poly_mix[4];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4704 = args[1][3];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4705 = x4704 - x598;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4706 = x4703 + x4705 * poly_mix[5];
  // loc("zirgen/circuit/recursion/macro.cpp":37:37)
  auto x4707 = x865 + x2;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x4708 = x604 - x4707;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4709 = x4706 + x4708 * poly_mix[6];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4710 = args[1][4];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4711 = x4710 - x606;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4712 = x4709 + x4711 * poly_mix[7];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4713 = args[1][5];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4714 = x4713 - x608;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4715 = x4712 + x4714 * poly_mix[8];
  // loc("zirgen/circuit/recursion/macro.cpp":37:37)
  auto x4716 = x865 + x3;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x4717 = x614 - x4716;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4718 = x4715 + x4717 * poly_mix[9];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4719 = args[1][6];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4720 = x4719 - x617;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4721 = x4718 + x4720 * poly_mix[10];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4722 = args[1][7];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4723 = x4722 - x620;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4724 = x4721 + x4723 * poly_mix[11];
  // loc("zirgen/circuit/recursion/macro.cpp":35:25)
  FpExt x4725 = x4689 + x334 * x4724 * poly_mix[1];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4726 = args[1][8];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4727 = x4726 - x345;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4728 = x4691 + x4727 * poly_mix[1];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4729 = args[1][9];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4730 = x4729 - x348;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4731 = x4728 + x4730 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4732 = x4731 + x4699 * poly_mix[3];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4733 = args[1][10];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4734 = x4733 - x596;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4735 = x4732 + x4734 * poly_mix[4];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4736 = args[1][11];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4737 = x4736 - x598;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4738 = x4735 + x4737 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4739 = x4738 + x4708 * poly_mix[6];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4740 = args[1][12];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4741 = x4740 - x606;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4742 = x4739 + x4741 * poly_mix[7];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4743 = args[1][13];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4744 = x4743 - x608;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4745 = x4742 + x4744 * poly_mix[8];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4746 = x4745 + x4717 * poly_mix[9];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4747 = args[1][14];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4748 = x4747 - x617;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4749 = x4746 + x4748 * poly_mix[10];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4750 = args[1][15];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4751 = x4750 - x620;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4752 = x4749 + x4751 * poly_mix[11];
  // loc("zirgen/circuit/recursion/macro.cpp":35:25)
  FpExt x4753 = x4725 + x336 * x4752 * poly_mix[13];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4754 = args[1][16];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4755 = x4754 - x345;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4756 = x4691 + x4755 * poly_mix[1];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4757 = args[1][17];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4758 = x4757 - x348;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4759 = x4756 + x4758 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4760 = x4759 + x4699 * poly_mix[3];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4761 = args[1][18];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4762 = x4761 - x596;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4763 = x4760 + x4762 * poly_mix[4];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4764 = args[1][19];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4765 = x4764 - x598;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4766 = x4763 + x4765 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4767 = x4766 + x4708 * poly_mix[6];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4768 = args[1][20];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4769 = x4768 - x606;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4770 = x4767 + x4769 * poly_mix[7];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4771 = args[1][21];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4772 = x4771 - x608;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4773 = x4770 + x4772 * poly_mix[8];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4774 = x4773 + x4717 * poly_mix[9];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4775 = args[1][22];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4776 = x4775 - x617;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4777 = x4774 + x4776 * poly_mix[10];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4778 = args[1][23];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4779 = x4778 - x620;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4780 = x4777 + x4779 * poly_mix[11];
  // loc("zirgen/circuit/recursion/macro.cpp":35:25)
  FpExt x4781 = x4753 + x338 * x4780 * poly_mix[25];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4782 = args[1][24];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4783 = x4782 - x345;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4784 = x4691 + x4783 * poly_mix[1];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4785 = args[1][25];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4786 = x4785 - x348;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4787 = x4784 + x4786 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4788 = x4787 + x4699 * poly_mix[3];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4789 = args[1][26];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4790 = x4789 - x596;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4791 = x4788 + x4790 * poly_mix[4];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4792 = args[1][27];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4793 = x4792 - x598;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4794 = x4791 + x4793 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4795 = x4794 + x4708 * poly_mix[6];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4796 = args[1][28];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4797 = x4796 - x606;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4798 = x4795 + x4797 * poly_mix[7];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4799 = args[1][29];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4800 = x4799 - x608;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4801 = x4798 + x4800 * poly_mix[8];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4802 = x4801 + x4717 * poly_mix[9];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4803 = args[1][30];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4804 = x4803 - x617;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4805 = x4802 + x4804 * poly_mix[10];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4806 = args[1][31];
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  auto x4807 = x4806 - x620;
  // loc("zirgen/circuit/recursion/macro.cpp":40:11)
  FpExt x4808 = x4805 + x4807 * poly_mix[11];
  // loc("zirgen/circuit/recursion/macro.cpp":35:25)
  FpExt x4809 = x4781 + x340 * x4808 * poly_mix[37];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x4810 = x4683 + x863 * x4809 * poly_mix[89];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x4811 = x1102 + x1103 * x4810 * poly_mix[132];
  // loc("top(recursion::Top)/code(recursion::Code)/select(OneHot)/poseidon2_load(Reg)"("./zirgen/components/mux.h":49:25))
  auto x4812 = args[0][3 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":55:13)
  auto x4813 = x286 * x43;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":55:63)
  auto x4814 = x1 - x286;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":55:13)
  auto x4815 = x4813 + x4814;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x4816 = x322 - x592;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4817 = x284 + x4816 * poly_mix[0];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":57:24)
  auto x4818 = x324 * x4815;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x4819 = x332 - x831;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4820 = x4817 + x4819 * poly_mix[1];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":57:24)
  auto x4821 = x334 * x4815;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x4822 = x342 - x863;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4823 = x4820 + x4822 * poly_mix[2];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":57:24)
  auto x4824 = x345 * x4815;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x4825 = x594 - x865;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4826 = x4823 + x4825 * poly_mix[3];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":57:24)
  auto x4827 = x596 * x4815;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x4828 = x604 - x864;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4829 = x4826 + x4828 * poly_mix[4];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":57:24)
  auto x4830 = x606 * x4815;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x4831 = x614 - x1379;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4832 = x4829 + x4831 * poly_mix[5];
  // loc("top(recursion::Top)/code(recursion::Code)/inst(Mux)/poseidon2_load(recursion::Poseidon2MemInst)/inputs[6](Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x4833 = args[0][21 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":57:24)
  auto x4834 = x617 * x4815;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x4835 = x866 - x4833;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4836 = x4832 + x4835 * poly_mix[6];
  // loc("top(recursion::Top)/code(recursion::Code)/inst(Mux)/poseidon2_load(recursion::Poseidon2MemInst)/inputs[7](Reg)"("./zirgen/compiler/edsl/component.h":154:27))
  auto x4837 = args[0][22 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":57:24)
  auto x4838 = x868 * x4815;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x4839 = x876 - x4837;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x4840 = x4836 + x4839 * poly_mix[7];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4841 = args[2][100 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4842 = args[2][101 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4843 = args[2][102 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4844 = args[2][103 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4845 = args[2][104 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4846 = args[2][105 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4847 = args[2][106 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4848 = args[2][107 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4849 = args[2][108 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4850 = args[2][109 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4851 = args[2][110 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4852 = args[2][111 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4853 = args[2][112 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4854 = args[2][113 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4855 = args[2][90 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4856 = args[2][91 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4857 = args[2][92 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4858 = args[2][93 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4859 = args[2][94 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4860 = args[2][95 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4861 = args[2][96 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4862 = args[2][97 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4863 = args[2][98 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":69:60))
  auto x4864 = args[2][99 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4865 = x319 * x4841;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4866 = x319 * x4842;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4867 = x319 * x4843;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4868 = x319 * x4844;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4869 = x319 * x4845;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4870 = x319 * x4846;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4871 = x319 * x4855;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4872 = x319 * x4856;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4873 = x319 * x4857;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4874 = x319 * x4858;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4875 = x319 * x4859;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4876 = x319 * x4860;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4877 = x319 * x4861;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4878 = x319 * x4862;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4879 = x319 * x4863;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4880 = x319 * x4864;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x4881 = x320 * x44;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4882 = x559 * x4821;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4883 = x559 * x4824;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4884 = x559 * x4827;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4885 = x559 * x4830;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4886 = x559 * x4834;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4887 = x559 * x4838;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4888 = x559 * x4818;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4889 = x591 * x4821;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4890 = x591 * x4824;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4891 = x591 * x4827;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4892 = x591 * x4830;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4893 = x591 * x4834;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4894 = x591 * x4838;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4895 = x591 * x4818;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4896 = x593 * x4821;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4897 = x593 * x4824;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4898 = x593 * x4827;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4899 = x593 * x4830;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4900 = x593 * x4834;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4901 = x593 * x4838;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4902 = x593 * x4818;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":68:59)
  auto x4903 = x319 * x321;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":57:24)
  auto x4904 = x878 * x4815;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":68:23)
  auto x4905 = x319 + x321;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4906 = x4865 + x4890;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4907 = x4867 + x4892;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4908 = x4869 + x4894;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4909 = x4871 + x4888;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4910 = x4873 + x4883;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4911 = x4875 + x4885;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4912 = x4877 + x4887;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4913 = x4879 + x4895;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4914 = x4866 + x4891;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4915 = x4868 + x4893;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4916 = x4872 + x4882;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4917 = x4874 + x4884;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4918 = x4876 + x4886;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4919 = x4880 + x4889;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x4920 = x4914 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x4921 = x4915 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x4922 = x4916 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x4923 = x4917 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x4924 = x4918 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x4925 = x4919 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4926 = x559 * x4904;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4927 = x591 * x4904;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":70:13)
  auto x4928 = x593 * x4904;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x4929 = x540 * x4909;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":68:23)
  auto x4930 = x4905 - x4903;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x4931 = x4906 + x4914;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x4932 = x4907 + x4915;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x4933 = x4909 + x4916;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x4934 = x4910 + x4917;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x4935 = x4911 + x4918;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x4936 = x4913 + x4919;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x4937 = x4920 + x4936;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x4938 = x4922 + x4934;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x4939 = x4923 + x4933;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x4940 = x4925 + x4931;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4941 = x4870 + x4927;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4942 = x4878 + x4926;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x4943 = x4931 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x4944 = x4932 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x4945 = x4933 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x4946 = x4934 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x4947 = x4935 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x4948 = x4936 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x4949 = x4941 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x4950 = x4942 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4951 = x4930 * x4847;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4952 = x4930 * x4848;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4953 = x4930 * x4849;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4954 = x4930 * x4850;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4955 = x4930 * x4851;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4956 = x4930 * x4852;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4957 = x4930 * x4853;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4958 = x4930 * x4854;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x4959 = x4908 + x4941;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x4960 = x4912 + x4942;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x4961 = x4945 + x4938;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x4962 = x4946 + x4939;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x4963 = x4921 + x4959;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x4964 = x4949 + x4932;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x4965 = x4924 + x4960;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x4966 = x4950 + x4935;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4967 = x4951 + x4902;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4968 = x4953 + x4897;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4969 = x4955 + x4899;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4970 = x4957 + x4901;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x4971 = x4943 + x4937;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x4972 = x4944 + x4963;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x4973 = x4947 + x4965;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x4974 = x4948 + x4940;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4975 = x4952 + x4896;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4976 = x4954 + x4898;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4977 = x4956 + x4900;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":69:13)
  auto x4978 = x4958 + x4928;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x4979 = x4959 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x4980 = x4960 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x4981 = x4975 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x4982 = x4976 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x4983 = x4977 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x4984 = x4978 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x4985 = x4938 + x4962;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x4986 = x4939 + x4961;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x4987 = x4937 + x4974;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x4988 = x4964 + x4972;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x4989 = x4966 + x4973;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x4990 = x4940 + x4971;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x4991 = x4967 + x4975;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x4992 = x4968 + x4976;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x4993 = x4969 + x4977;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x4994 = x4970 + x4978;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x4995 = x4981 + x4992;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x4996 = x4982 + x4991;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x4997 = x4983 + x4994;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x4998 = x4984 + x4993;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x4999 = x4979 + x4964;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5000 = x4980 + x4966;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5001 = x4991 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5002 = x4992 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5003 = x4993 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5004 = x4994 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5005 = x4961 + x4973;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5006 = x4962 + x5000;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x5007 = x4963 + x4999;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x5008 = x4965 + x5000;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5009 = x5001 + x4995;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5010 = x5002 + x4996;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5011 = x5003 + x4997;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5012 = x5004 + x4998;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5013 = x5005 + x4974;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5014 = x5006 + x4971;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5015 = x4985 + x5008;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5016 = x4986 + x4989;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x5017 = x4995 + x5010;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x5018 = x4996 + x5009;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x5019 = x4997 + x5012;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x5020 = x4998 + x5011;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5021 = x5013 + x4972;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5022 = x5014 + x4999;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5023 = x5015 + x4990;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5024 = x5016 + x4987;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5025 = x5021 + x5009;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5026 = x5022 + x5010;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5027 = x5023 + x5007;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5028 = x5024 + x4988;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5029 = x5025 + x5011;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5030 = x5026 + x5012;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5031 = x5027 + x5017;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5032 = x5028 + x5018;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5033 = x4961 + x5029;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5034 = x4962 + x5030;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5035 = x4971 + x5030;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5036 = x4972 + x5029;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5037 = x4999 + x5030;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5038 = x4973 + x5029;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5039 = x5000 + x5030;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5040 = x4974 + x5029;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5041 = x5009 + x5029;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5042 = x5010 + x5030;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5043 = x5011 + x5029;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5044 = x5012 + x5030;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5045 = x5031 + x5019;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5046 = x5032 + x5020;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5047 = x4985 + x5045;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5048 = x4986 + x5046;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5049 = x4987 + x5046;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5050 = x5007 + x5045;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5051 = x4988 + x5046;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5052 = x5008 + x5045;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5053 = x4989 + x5046;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5054 = x4990 + x5045;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5055 = x5017 + x5045;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5056 = x5018 + x5046;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5057 = x5019 + x5045;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5058 = x5020 + x5046;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5059 = x320 * x5048;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5060 = x5059 + x4929;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5061 = x5060 + x4881;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5062 = x318 - x5061;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5063 = x4840 + x5062 * poly_mix[8];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5064 = x320 * x5033;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5065 = x320 * x45;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5066 = x540 * x4916;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5067 = x5064 + x5066;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5068 = x5067 + x5065;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5069 = x289 - x5068;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5070 = x5063 + x5069 * poly_mix[9];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5071 = x320 * x5047;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5072 = x320 * x46;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5073 = x540 * x4910;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5074 = x5071 + x5073;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5075 = x5074 + x5072;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5076 = x290 - x5075;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5077 = x5070 + x5076 * poly_mix[10];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5078 = x320 * x5034;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5079 = x320 * x47;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5080 = x540 * x4917;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5081 = x5078 + x5080;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5082 = x5081 + x5079;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5083 = x291 - x5082;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5084 = x5077 + x5083 * poly_mix[11];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5085 = x320 * x5053;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5086 = x320 * x48;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5087 = x540 * x4911;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5088 = x5085 + x5087;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5089 = x5088 + x5086;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5090 = x292 - x5089;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5091 = x5084 + x5090 * poly_mix[12];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5092 = x320 * x5038;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5093 = x320 * x49;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5094 = x540 * x4918;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5095 = x5092 + x5094;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5096 = x5095 + x5093;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5097 = x293 - x5096;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5098 = x5091 + x5097 * poly_mix[13];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5099 = x320 * x5052;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5100 = x320 * x50;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5101 = x540 * x4912;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5102 = x5099 + x5101;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5103 = x5102 + x5100;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5104 = x294 - x5103;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5105 = x5098 + x5104 * poly_mix[14];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5106 = x320 * x5039;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5107 = x320 * x51;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5108 = x540 * x4942;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5109 = x5106 + x5108;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5110 = x5109 + x5107;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5111 = x295 - x5110;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5112 = x5105 + x5111 * poly_mix[15];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5113 = x320 * x5049;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5114 = x320 * x52;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5115 = x540 * x4913;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5116 = x5113 + x5115;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5117 = x5116 + x5114;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5118 = x296 - x5117;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5119 = x5112 + x5118 * poly_mix[16];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5120 = x320 * x5040;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5121 = x320 * x53;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5122 = x540 * x4919;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5123 = x5120 + x5122;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5124 = x5123 + x5121;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5125 = x297 - x5124;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5126 = x5119 + x5125 * poly_mix[17];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5127 = x320 * x5054;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5128 = x320 * x54;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5129 = x540 * x4906;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5130 = x5127 + x5129;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5131 = x5130 + x5128;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5132 = x288 - x5131;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5133 = x5126 + x5132 * poly_mix[18];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5134 = x320 * x5035;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5135 = x320 * x55;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5136 = x540 * x4914;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5137 = x5134 + x5136;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5138 = x5137 + x5135;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5139 = x476 - x5138;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5140 = x5133 + x5139 * poly_mix[19];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5141 = x320 * x5051;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5142 = x320 * x56;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5143 = x540 * x4907;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5144 = x5141 + x5143;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5145 = x5144 + x5142;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5146 = x590 - x5145;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5147 = x5140 + x5146 * poly_mix[20];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5148 = x320 * x5036;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5149 = x320 * x57;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5150 = x540 * x4915;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5151 = x5148 + x5150;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5152 = x5151 + x5149;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5153 = x560 - x5152;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5154 = x5147 + x5153 * poly_mix[21];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5155 = x320 * x5050;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5156 = x320 * x58;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5157 = x540 * x4908;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5158 = x5155 + x5157;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5159 = x5158 + x5156;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5160 = x561 - x5159;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5161 = x5154 + x5160 * poly_mix[22];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5162 = x320 * x5037;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5163 = x320 * x59;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5164 = x540 * x4941;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5165 = x5162 + x5164;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5166 = x5165 + x5163;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5167 = x562 - x5166;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5168 = x5161 + x5167 * poly_mix[23];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5169 = x320 * x5056;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5170 = x320 * x60;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5171 = x540 * x4967;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5172 = x5169 + x5171;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5173 = x5172 + x5170;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5174 = x563 - x5173;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5175 = x5168 + x5174 * poly_mix[24];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5176 = x320 * x5041;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5177 = x320 * x61;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5178 = x540 * x4975;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5179 = x5176 + x5178;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5180 = x5179 + x5177;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5181 = x564 - x5180;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5182 = x5175 + x5181 * poly_mix[25];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5183 = x320 * x5055;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5184 = x320 * x62;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5185 = x540 * x4968;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5186 = x5183 + x5185;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5187 = x5186 + x5184;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5188 = x565 - x5187;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5189 = x5182 + x5188 * poly_mix[26];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5190 = x320 * x5042;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5191 = x320 * x63;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5192 = x540 * x4976;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5193 = x5190 + x5192;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5194 = x5193 + x5191;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5195 = x566 - x5194;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5196 = x5189 + x5195 * poly_mix[27];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5197 = x320 * x5058;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5198 = x320 * x64;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5199 = x540 * x4969;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5200 = x5197 + x5199;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5201 = x5200 + x5198;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5202 = x567 - x5201;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5203 = x5196 + x5202 * poly_mix[28];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5204 = x320 * x5043;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5205 = x320 * x65;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5206 = x540 * x4977;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5207 = x5204 + x5206;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5208 = x5207 + x5205;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5209 = x568 - x5208;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5210 = x5203 + x5209 * poly_mix[29];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5211 = x320 * x5057;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5212 = x320 * x66;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5213 = x540 * x4970;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5214 = x5211 + x5213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5215 = x5214 + x5212;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5216 = x569 - x5215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5217 = x5210 + x5216 * poly_mix[30];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5218 = x320 * x5044;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:17)
  auto x5219 = x320 * x67;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:38)
  auto x5220 = x540 * x4978;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":76:11)
  auto x5221 = x5218 + x5220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":77:11)
  auto x5222 = x5221 + x5219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  auto x5223 = x748 - x5222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":78:5)
  FpExt x5224 = x5217 + x5223 * poly_mix[31];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x5225 = x4811 + x4812 * x5224 * poly_mix[134];
  // loc("top(recursion::Top)/code(recursion::Code)/select(OneHot)/poseidon2_full(Reg)"("./zirgen/components/mux.h":49:25))
  auto x5226 = args[0][4 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5227 = args[2][100 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5228 = args[2][101 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5229 = args[2][102 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5230 = args[2][103 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5231 = args[2][104 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5232 = args[2][105 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5233 = args[2][106 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5234 = args[2][107 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5235 = args[2][108 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5236 = args[2][109 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5237 = args[2][110 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5238 = args[2][111 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5239 = args[2][112 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5240 = args[2][113 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5241 = args[2][92 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5242 = args[2][93 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5243 = args[2][94 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5244 = args[2][95 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5245 = args[2][96 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5246 = args[2][97 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5247 = args[2][98 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/poseidon2_full(recursion::Poseidon2Full)/Reg"("zirgen/circuit/recursion/poseidon2.cpp":201:42))
  auto x5248 = args[2][99 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5249 = x2450 * x2450;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5250 = x5249 * x5249;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5251 = x322 - x5250;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5252 = x284 + x5251 * poly_mix[0];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5253 = x2451 * x2451;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5254 = x322 * x5249;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5255 = x5254 * x2450;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5256 = x5253 * x5253;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5257 = x324 - x5256;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5258 = x5252 + x5257 * poly_mix[1];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5259 = x5241 * x5241;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5260 = x324 * x5253;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5261 = x5260 * x2451;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5262 = x5259 * x5259;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5263 = x326 - x5262;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5264 = x5258 + x5263 * poly_mix[2];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5265 = x5242 * x5242;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5266 = x326 * x5259;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5267 = x5266 * x5241;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5268 = x5265 * x5265;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5269 = x328 - x5268;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5270 = x5264 + x5269 * poly_mix[3];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5271 = x5243 * x5243;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5272 = x328 * x5265;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5273 = x5272 * x5242;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5274 = x5271 * x5271;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5275 = x330 - x5274;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5276 = x5270 + x5275 * poly_mix[4];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5277 = x5244 * x5244;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5278 = x330 * x5271;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5279 = x5278 * x5243;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5280 = x5277 * x5277;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5281 = x332 - x5280;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5282 = x5276 + x5281 * poly_mix[5];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5283 = x5245 * x5245;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5284 = x332 * x5277;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5285 = x5284 * x5244;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5286 = x5283 * x5283;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5287 = x334 - x5286;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5288 = x5282 + x5287 * poly_mix[6];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5289 = x5246 * x5246;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5290 = x334 * x5283;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5291 = x5290 * x5245;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5292 = x5289 * x5289;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5293 = x336 - x5292;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5294 = x5288 + x5293 * poly_mix[7];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5295 = x5247 * x5247;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5296 = x336 * x5289;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5297 = x5296 * x5246;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5298 = x5295 * x5295;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5299 = x338 - x5298;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5300 = x5294 + x5299 * poly_mix[8];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5301 = x5248 * x5248;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5302 = x338 * x5295;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5303 = x5302 * x5247;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5304 = x5301 * x5301;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5305 = x340 - x5304;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5306 = x5300 + x5305 * poly_mix[9];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5307 = x5227 * x5227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5308 = x340 * x5301;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5309 = x5308 * x5248;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5310 = x5307 * x5307;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5311 = x342 - x5310;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5312 = x5306 + x5311 * poly_mix[10];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5313 = x5228 * x5228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5314 = x342 * x5307;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5315 = x5314 * x5227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5316 = x5313 * x5313;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5317 = x345 - x5316;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5318 = x5312 + x5317 * poly_mix[11];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5319 = x5229 * x5229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5320 = x345 * x5313;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5321 = x5320 * x5228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5322 = x5319 * x5319;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5323 = x348 - x5322;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5324 = x5318 + x5323 * poly_mix[12];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5325 = x5230 * x5230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5326 = x348 * x5319;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5327 = x5326 * x5229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5328 = x5325 * x5325;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5329 = x351 - x5328;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5330 = x5324 + x5329 * poly_mix[13];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5331 = x5231 * x5231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5332 = x351 * x5325;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5333 = x5332 * x5230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5334 = x5331 * x5331;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5335 = x354 - x5334;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5336 = x5330 + x5335 * poly_mix[14];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5337 = x5232 * x5232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5338 = x354 * x5331;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5339 = x5338 * x5231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5340 = x5337 * x5337;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5341 = x594 - x5340;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5342 = x5336 + x5341 * poly_mix[15];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5343 = x5233 * x5233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5344 = x594 * x5337;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5345 = x5344 * x5232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5346 = x5343 * x5343;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5347 = x596 - x5346;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5348 = x5342 + x5347 * poly_mix[16];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5349 = x5234 * x5234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5350 = x596 * x5343;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5351 = x5350 * x5233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5352 = x5349 * x5349;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5353 = x598 - x5352;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5354 = x5348 + x5353 * poly_mix[17];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5355 = x5235 * x5235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5356 = x598 * x5349;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5357 = x5356 * x5234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5358 = x5355 * x5355;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5359 = x600 - x5358;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5360 = x5354 + x5359 * poly_mix[18];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5361 = x5236 * x5236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5362 = x600 * x5355;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5363 = x5362 * x5235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5364 = x5361 * x5361;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5365 = x602 - x5364;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5366 = x5360 + x5365 * poly_mix[19];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5367 = x5237 * x5237;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5368 = x602 * x5361;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5369 = x5368 * x5236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5370 = x5367 * x5367;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5371 = x604 - x5370;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5372 = x5366 + x5371 * poly_mix[20];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5373 = x5238 * x5238;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5374 = x604 * x5367;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5375 = x5374 * x5237;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5376 = x5373 * x5373;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5377 = x606 - x5376;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5378 = x5372 + x5377 * poly_mix[21];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5379 = x5239 * x5239;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5380 = x606 * x5373;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5381 = x5380 * x5238;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5382 = x5379 * x5379;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5383 = x608 - x5382;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5384 = x5378 + x5383 * poly_mix[22];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5385 = x5240 * x5240;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5386 = x608 * x5379;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5387 = x5386 * x5239;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5388 = x5385 * x5385;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5389 = x610 - x5388;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5390 = x5384 + x5389 * poly_mix[23];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x5391 = x5291 + x5297;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x5392 = x5303 + x5309;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x5393 = x5315 + x5321;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x5394 = x5327 + x5333;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x5395 = x5339 + x5345;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x5396 = x5351 + x5357;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x5397 = x5363 + x5369;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x5398 = x5375 + x5381;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x5399 = x5255 + x5261;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x5400 = x5267 + x5273;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x5401 = x5279 + x5285;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5402 = x5391 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5403 = x5392 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5404 = x5393 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5405 = x5394 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5406 = x5395 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5407 = x5396 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5408 = x5397 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5409 = x5398 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5410 = x5399 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5411 = x5400 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5412 = x5401 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5413 = x5285 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5414 = x5297 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5415 = x5309 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5416 = x5321 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5417 = x5333 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5418 = x5345 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5419 = x5357 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5420 = x5369 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5421 = x5381 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5422 = x5261 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5423 = x5273 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5424 = x5413 + x5391;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5425 = x5414 + x5401;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5426 = x5415 + x5393;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5427 = x5416 + x5392;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5428 = x5417 + x5395;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5429 = x5418 + x5394;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5430 = x5419 + x5397;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5431 = x5420 + x5396;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5432 = x5422 + x5400;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5433 = x5423 + x5399;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5434 = x5402 + x5425;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5435 = x5403 + x5426;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5436 = x5404 + x5427;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5437 = x5405 + x5428;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5438 = x5406 + x5429;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5439 = x5407 + x5430;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5440 = x5408 + x5431;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5441 = x5412 + x5424;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5442 = x610 * x5385;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5443 = x286 * x73;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5444 = x286 * x74;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5445 = x286 * x76;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5446 = x286 * x84;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5447 = x286 * x90;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5448 = x286 * x92;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5449 = x286 * x99;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5450 = x286 * x100;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5451 = x286 * x109;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5452 = x286 * x113;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5453 = x286 * x117;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5454 = x286 * x121;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5455 = x286 * x122;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5456 = x286 * x123;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5457 = x286 * x124;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5458 = x286 * x129;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5459 = x286 * x134;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5460 = x286 * x139;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5461 = x286 * x142;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5462 = x286 * x144;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5463 = x286 * x145;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5464 = x286 * x148;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5465 = x286 * x157;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5466 = x286 * x161;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5467 = x321 * x69;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5468 = x321 * x75;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5469 = x321 * x78;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5470 = x321 * x79;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5471 = x321 * x95;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5472 = x321 * x96;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5473 = x321 * x98;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5474 = x321 * x101;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5475 = x321 * x105;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5476 = x321 * x107;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5477 = x321 * x110;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5478 = x321 * x118;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5479 = x321 * x128;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5480 = x321 * x133;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5481 = x321 * x146;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5482 = x321 * x147;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5483 = x321 * x150;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5484 = x321 * x152;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5485 = x321 * x153;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5486 = x321 * x158;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5487 = x321 * x159;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5488 = x321 * x160;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5489 = x321 * x162;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5490 = x321 * x163;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5491 = x320 * x68;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5492 = x320 * x70;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5493 = x320 * x71;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5494 = x320 * x72;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5495 = x320 * x77;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5496 = x320 * x82;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5497 = x320 * x88;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5498 = x320 * x89;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5499 = x320 * x93;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5500 = x320 * x94;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5501 = x320 * x103;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5502 = x320 * x104;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5503 = x320 * x108;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5504 = x320 * x116;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5505 = x320 * x119;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5506 = x320 * x120;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5507 = x320 * x125;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5508 = x320 * x127;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5509 = x320 * x136;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5510 = x320 * x143;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5511 = x320 * x149;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5512 = x320 * x151;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5513 = x320 * x154;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5514 = x320 * x155;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5515 = x319 * x80;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5516 = x319 * x81;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5517 = x319 * x83;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5518 = x319 * x85;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5519 = x319 * x86;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5520 = x319 * x87;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5521 = x319 * x91;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5522 = x319 * x97;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5523 = x319 * x102;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5524 = x319 * x106;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5525 = x319 * x111;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5526 = x319 * x112;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5527 = x319 * x114;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5528 = x319 * x115;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5529 = x319 * x126;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5530 = x319 * x130;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5531 = x319 * x131;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5532 = x319 * x132;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5533 = x319 * x135;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5534 = x319 * x137;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5535 = x319 * x138;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5536 = x319 * x140;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5537 = x319 * x141;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5538 = x319 * x156;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5539 = x5442 * x5240;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x5540 = x5424 + x5434;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x5541 = x5425 + x5441;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x5542 = x5426 + x5436;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x5543 = x5427 + x5435;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x5544 = x5428 + x5438;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x5545 = x5429 + x5437;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x5546 = x5430 + x5440;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x5547 = x5431 + x5439;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5548 = x5410 + x5432;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5549 = x5411 + x5433;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x5550 = x5387 + x5539;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5551 = x5421 + x5550;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5552 = x5409 + x5551;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5553 = x5550 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5554 = x5539 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5555 = x5443 + x5515;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5556 = x5444 + x5538;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5557 = x5445 + x5526;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5558 = x5446 + x5521;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5559 = x5447 + x5519;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5560 = x5448 + x5536;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5561 = x5449 + x5530;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5562 = x5450 + x5525;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5563 = x5451 + x5516;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5564 = x5452 + x5527;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5565 = x5453 + x5523;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5566 = x5454 + x5534;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5567 = x5455 + x5532;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5568 = x5456 + x5533;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5569 = x5457 + x5524;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5570 = x5458 + x5528;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5571 = x5459 + x5531;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5572 = x5460 + x5537;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5573 = x5461 + x5529;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5574 = x5462 + x5522;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5575 = x5463 + x5518;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5576 = x5464 + x5535;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5577 = x5465 + x5517;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5578 = x5466 + x5520;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x5579 = x5432 + x5549;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x5580 = x5433 + x5548;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5581 = x5554 + x5398;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5582 = x5553 + x5581;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5583 = x5555 + x5489;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5584 = x5556 + x5468;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5585 = x5557 + x5487;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5586 = x5558 + x5475;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5587 = x5559 + x5470;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5588 = x5560 + x5478;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5589 = x5561 + x5477;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5590 = x5562 + x5490;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5591 = x5563 + x5474;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5592 = x5564 + x5481;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5593 = x5565 + x5482;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5594 = x5566 + x5471;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5595 = x5567 + x5485;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5596 = x5568 + x5472;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5597 = x5569 + x5467;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5598 = x5570 + x5483;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5599 = x5571 + x5479;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5600 = x5572 + x5480;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5601 = x5573 + x5484;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5602 = x5574 + x5486;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5603 = x5575 + x5469;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5604 = x5576 + x5488;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5605 = x5577 + x5476;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5606 = x5578 + x5473;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5607 = x5548 + x5441;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5608 = x5549 + x5434;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5609 = x5583 + x5502;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5610 = x5584 + x5505;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5611 = x5585 + x5498;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5612 = x5586 + x5497;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5613 = x5587 + x5511;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5614 = x5588 + x5504;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5615 = x5589 + x5503;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5616 = x5590 + x5508;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5617 = x5591 + x5496;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5618 = x5592 + x5507;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5619 = x5593 + x5506;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5620 = x5594 + x5513;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5621 = x5595 + x5494;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5622 = x5596 + x5514;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5623 = x5597 + x5510;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5624 = x5598 + x5501;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5625 = x5599 + x5500;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5626 = x5600 + x5491;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5627 = x5601 + x5512;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5628 = x5602 + x5509;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5629 = x5603 + x5495;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5630 = x5604 + x5492;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5631 = x5605 + x5493;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5632 = x5606 + x5499;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x5633 = x5551 + x5582;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x5634 = x5581 + x5552;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5635 = x5607 + x5435;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5636 = x5608 + x5436;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5637 = x5579 + x5540;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5638 = x5580 + x5541;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5639 = x5635 + x5437;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5640 = x5636 + x5438;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5641 = x5637 + x5542;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5642 = x5638 + x5543;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5643 = x5639 + x5439;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5644 = x5640 + x5440;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5645 = x5641 + x5544;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5646 = x5642 + x5545;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5647 = x5643 + x5552;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5648 = x5644 + x5582;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5649 = x5645 + x5546;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5650 = x5646 + x5547;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5651 = x5548 + x5647;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5652 = x5549 + x5648;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5653 = x5434 + x5648;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5654 = x5435 + x5647;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5655 = x5436 + x5648;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5656 = x5437 + x5647;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5657 = x5438 + x5648;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5658 = x5439 + x5647;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5659 = x5440 + x5648;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5660 = x5552 + x5647;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5661 = x5582 + x5648;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5662 = x5441 + x5647;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5663 = x5649 + x5633;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x5664 = x5650 + x5634;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5665 = x5579 + x5663;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5666 = x5580 + x5664;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5667 = x5540 + x5663;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5668 = x5541 + x5664;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5669 = x5542 + x5663;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5670 = x5543 + x5664;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5671 = x5544 + x5663;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5672 = x5545 + x5664;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5673 = x5546 + x5663;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5674 = x5547 + x5664;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5675 = x5633 + x5663;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x5676 = x5634 + x5664;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5677 = x5666 + x5629;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5678 = x612 - x5677;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5679 = x5390 + x5678 * poly_mix[24];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5680 = x612 * x612;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5681 = x5680 * x5680;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5682 = x1169 - x5681;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5683 = x5679 + x5682 * poly_mix[25];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5684 = x5651 + x5619;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5685 = x1169 * x5680;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5686 = x5685 * x612;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5687 = x614 - x5684;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5688 = x5683 + x5687 * poly_mix[26];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5689 = x614 * x614;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5690 = x5689 * x5689;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5691 = x1177 - x5690;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5692 = x5688 + x5691 * poly_mix[27];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5693 = x5665 + x5626;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5694 = x1177 * x5689;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5695 = x5694 * x614;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5696 = x617 - x5693;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5697 = x5692 + x5696 * poly_mix[28];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5698 = x617 * x617;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5699 = x5698 * x5698;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5700 = x1178 - x5699;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5701 = x5697 + x5700 * poly_mix[29];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5702 = x5652 + x5613;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5703 = x1178 * x5698;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5704 = x5703 * x617;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5705 = x620 - x5702;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5706 = x5701 + x5705 * poly_mix[30];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5707 = x620 * x620;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5708 = x5707 * x5707;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5709 = x1186 - x5708;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5710 = x5706 + x5709 * poly_mix[31];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5711 = x5668 + x5621;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5712 = x1186 * x5707;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5713 = x5712 * x620;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5714 = x623 - x5711;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5715 = x5710 + x5714 * poly_mix[32];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5716 = x623 * x623;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5717 = x5716 * x5716;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5718 = x1187 - x5717;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5719 = x5715 + x5718 * poly_mix[33];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5720 = x5662 + x5610;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5721 = x1187 * x5716;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5722 = x5721 * x623;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5723 = x626 - x5720;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5724 = x5719 + x5723 * poly_mix[34];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5725 = x626 * x626;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5726 = x5725 * x5725;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5727 = x1195 - x5726;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5728 = x5724 + x5727 * poly_mix[35];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5729 = x5667 + x5622;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5730 = x1195 * x5725;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5731 = x5730 * x626;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5732 = x866 - x5729;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5733 = x5728 + x5732 * poly_mix[36];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5734 = x866 * x866;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5735 = x5734 * x5734;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5736 = x1196 - x5735;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5737 = x5733 + x5736 * poly_mix[37];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5738 = x5653 + x5616;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5739 = x1196 * x5734;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5740 = x5739 * x866;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5741 = x868 - x5738;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5742 = x5737 + x5741 * poly_mix[38];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5743 = x868 * x868;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5744 = x5743 * x5743;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5745 = x1204 - x5744;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5746 = x5742 + x5745 * poly_mix[39];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5747 = x5670 + x5614;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5748 = x1204 * x5743;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5749 = x5748 * x868;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5750 = x870 - x5747;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5751 = x5746 + x5750 * poly_mix[40];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5752 = x870 * x870;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5753 = x5752 * x5752;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5754 = x1205 - x5753;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5755 = x5751 + x5754 * poly_mix[41];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5756 = x5654 + x5627;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5757 = x1205 * x5752;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5758 = x5757 * x870;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5759 = x872 - x5756;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5760 = x5755 + x5759 * poly_mix[42];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5761 = x872 * x872;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5762 = x5761 * x5761;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5763 = x1213 - x5762;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5764 = x5760 + x5763 * poly_mix[43];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5765 = x5669 + x5628;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5766 = x1213 * x5761;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5767 = x5766 * x872;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5768 = x874 - x5765;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5769 = x5764 + x5768 * poly_mix[44];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5770 = x874 * x874;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5771 = x5770 * x5770;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5772 = x1214 - x5771;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5773 = x5769 + x5772 * poly_mix[45];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5774 = x5655 + x5618;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5775 = x1214 * x5770;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5776 = x5775 * x874;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5777 = x876 - x5774;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5778 = x5773 + x5777 * poly_mix[46];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5779 = x876 * x876;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5780 = x5779 * x5779;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5781 = x1222 - x5780;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5782 = x5778 + x5781 * poly_mix[47];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5783 = x5672 + x5612;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5784 = x1222 * x5779;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5785 = x5784 * x876;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5786 = x878 - x5783;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5787 = x5782 + x5786 * poly_mix[48];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5788 = x878 * x878;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5789 = x5788 * x5788;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5790 = x1223 - x5789;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5791 = x5787 + x5790 * poly_mix[49];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5792 = x5656 + x5631;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5793 = x1223 * x5788;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5794 = x5793 * x878;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5795 = x880 - x5792;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5796 = x5791 + x5795 * poly_mix[50];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5797 = x880 * x880;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5798 = x5797 * x5797;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5799 = x1231 - x5798;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5800 = x5796 + x5799 * poly_mix[51];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5801 = x5671 + x5630;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5802 = x1231 * x5797;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5803 = x5802 * x880;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5804 = x882 - x5801;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5805 = x5800 + x5804 * poly_mix[52];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5806 = x882 * x882;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5807 = x5806 * x5806;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5808 = x1232 - x5807;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5809 = x5805 + x5808 * poly_mix[53];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5810 = x5657 + x5623;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5811 = x1232 * x5806;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5812 = x5811 * x882;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5813 = x884 - x5810;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5814 = x5809 + x5813 * poly_mix[54];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5815 = x884 * x884;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5816 = x5815 * x5815;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5817 = x1240 - x5816;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5818 = x5814 + x5817 * poly_mix[55];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5819 = x5674 + x5625;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5820 = x1240 * x5815;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5821 = x5820 * x884;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5822 = x886 - x5819;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5823 = x5818 + x5822 * poly_mix[56];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5824 = x886 * x886;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5825 = x5824 * x5824;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5826 = x1241 - x5825;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5827 = x5823 + x5826 * poly_mix[57];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5828 = x5658 + x5611;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5829 = x1241 * x5824;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5830 = x5829 * x886;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5831 = x889 - x5828;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5832 = x5827 + x5831 * poly_mix[58];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5833 = x889 * x889;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5834 = x5833 * x5833;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5835 = x1249 - x5834;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5836 = x5832 + x5835 * poly_mix[59];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5837 = x5673 + x5620;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5838 = x1249 * x5833;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5839 = x5838 * x889;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5840 = x892 - x5837;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5841 = x5836 + x5840 * poly_mix[60];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5842 = x892 * x892;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5843 = x5842 * x5842;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5844 = x1250 - x5843;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5845 = x5841 + x5844 * poly_mix[61];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5846 = x5659 + x5609;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5847 = x1250 * x5842;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5848 = x5847 * x892;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5849 = x895 - x5846;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5850 = x5845 + x5849 * poly_mix[62];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5851 = x895 * x895;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5852 = x5851 * x5851;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5853 = x1258 - x5852;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5854 = x5850 + x5853 * poly_mix[63];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5855 = x5676 + x5617;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5856 = x1258 * x5851;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5857 = x5856 * x895;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5858 = x898 - x5855;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5859 = x5854 + x5858 * poly_mix[64];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5860 = x898 * x898;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5861 = x5860 * x5860;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5862 = x1259 - x5861;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5863 = x5859 + x5862 * poly_mix[65];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5864 = x5660 + x5615;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5865 = x1259 * x5860;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5866 = x5865 * x898;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5867 = x1159 - x5864;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5868 = x5863 + x5867 * poly_mix[66];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5869 = x1159 * x1159;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5870 = x5869 * x5869;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5871 = x1267 - x5870;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5872 = x5868 + x5871 * poly_mix[67];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5873 = x5675 + x5624;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5874 = x1267 * x5869;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5875 = x5874 * x1159;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5876 = x1160 - x5873;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5877 = x5872 + x5876 * poly_mix[68];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5878 = x1160 * x1160;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5879 = x5878 * x5878;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5880 = x1268 - x5879;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5881 = x5877 + x5880 * poly_mix[69];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:19)
  auto x5882 = x5661 + x5632;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5883 = x1268 * x5878;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5884 = x5883 * x1160;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  auto x5885 = x1168 - x5882;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":238:5)
  FpExt x5886 = x5881 + x5885 * poly_mix[70];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x5887 = x1168 * x1168;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x5888 = x5887 * x5887;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x5889 = x1276 - x5888;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x5890 = x5886 + x5889 * poly_mix[71];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x5891 = x5686 + x5695;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x5892 = x5704 + x5713;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x5893 = x5722 + x5731;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x5894 = x5740 + x5749;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x5895 = x5758 + x5767;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x5896 = x5776 + x5785;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x5897 = x5794 + x5803;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x5898 = x5812 + x5821;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x5899 = x5830 + x5839;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x5900 = x5848 + x5857;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x5901 = x5866 + x5875;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5902 = x5891 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5903 = x5892 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5904 = x5893 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5905 = x5894 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5906 = x5895 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5907 = x5896 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5908 = x5897 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5909 = x5898 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5910 = x5899 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5911 = x5900 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5912 = x5901 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5913 = x5695 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5914 = x5713 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5915 = x5731 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5916 = x5749 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5917 = x5767 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5918 = x5785 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5919 = x5803 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5920 = x5821 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5921 = x5839 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5922 = x5857 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5923 = x5875 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5924 = x5913 + x5892;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5925 = x5914 + x5891;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5926 = x5915 + x5894;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5927 = x5916 + x5893;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5928 = x5917 + x5896;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5929 = x5918 + x5895;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5930 = x5919 + x5898;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5931 = x5920 + x5897;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x5932 = x5921 + x5900;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x5933 = x5922 + x5899;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5934 = x5904 + x5926;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5935 = x5905 + x5927;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5936 = x5906 + x5928;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5937 = x5907 + x5929;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5938 = x5908 + x5930;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5939 = x5909 + x5931;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x5940 = x5910 + x5932;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x5941 = x5911 + x5933;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5942 = x1276 * x5887;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5943 = x286 * x166;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5944 = x286 * x168;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5945 = x286 * x169;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5946 = x286 * x172;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5947 = x286 * x173;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5948 = x286 * x176;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5949 = x286 * x177;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5950 = x286 * x181;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5951 = x286 * x183;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5952 = x286 * x185;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5953 = x286 * x186;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5954 = x286 * x187;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5955 = x286 * x189;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5956 = x286 * x194;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5957 = x286 * x195;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5958 = x286 * x198;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5959 = x286 * x199;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5960 = x286 * x200;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5961 = x286 * x202;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5962 = x286 * x203;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5963 = x286 * x205;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5964 = x286 * x208;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5965 = x286 * x209;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5966 = x286 * x211;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5967 = x321 * x164;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5968 = x321 * x165;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5969 = x321 * x167;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5970 = x321 * x170;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5971 = x321 * x171;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5972 = x321 * x174;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5973 = x321 * x175;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5974 = x321 * x178;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5975 = x321 * x179;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5976 = x321 * x180;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5977 = x321 * x182;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5978 = x321 * x184;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5979 = x321 * x188;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5980 = x321 * x190;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5981 = x321 * x191;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5982 = x321 * x192;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5983 = x321 * x193;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5984 = x321 * x196;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5985 = x321 * x197;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5986 = x321 * x201;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5987 = x321 * x204;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5988 = x321 * x206;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5989 = x321 * x207;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:19)
  auto x5990 = x321 * x210;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x5991 = x5942 * x1168;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5992 = x5943 + x5986;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5993 = x5944 + x5988;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5994 = x5945 + x5977;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5995 = x5946 + x5990;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5996 = x5947 + x5985;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5997 = x5948 + x5983;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5998 = x5949 + x5987;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x5999 = x5950 + x5989;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6000 = x5951 + x5982;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6001 = x5952 + x5968;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6002 = x5953 + x5980;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6003 = x5954 + x5970;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6004 = x5955 + x5969;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6005 = x5956 + x5975;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6006 = x5957 + x5967;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6007 = x5958 + x5984;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6008 = x5959 + x5979;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6009 = x5960 + x5976;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6010 = x5961 + x5971;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6011 = x5962 + x5973;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6012 = x5963 + x5972;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6013 = x5964 + x5974;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6014 = x5965 + x5981;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":188:13)
  auto x6015 = x5966 + x5978;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x6016 = x5926 + x5935;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x6017 = x5927 + x5934;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x6018 = x5928 + x5937;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x6019 = x5929 + x5936;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x6020 = x5930 + x5939;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x6021 = x5931 + x5938;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x6022 = x5932 + x5941;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x6023 = x5933 + x5940;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x6024 = x5902 + x5924;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x6025 = x5903 + x5925;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x6026 = x5884 + x5991;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x6027 = x5923 + x6026;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x6028 = x5912 + x6027;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x6029 = x6026 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x6030 = x5991 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x6031 = x5924 + x6025;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x6032 = x5925 + x6024;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x6033 = x6030 + x5901;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x6034 = x6029 + x6033;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6035 = x6024 + x5934;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6036 = x6025 + x5935;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x6037 = x6027 + x6034;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x6038 = x6033 + x6028;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6039 = x6035 + x5936;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6040 = x6036 + x5937;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6041 = x6031 + x6016;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6042 = x6032 + x6017;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6043 = x6039 + x5938;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6044 = x6040 + x5939;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6045 = x6041 + x6018;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6046 = x6042 + x6019;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6047 = x6043 + x5940;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6048 = x6044 + x5941;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6049 = x6045 + x6020;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6050 = x6046 + x6021;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6051 = x6047 + x6028;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6052 = x6048 + x6034;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6053 = x6049 + x6022;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6054 = x6050 + x6023;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6055 = x6024 + x6051;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6056 = x6025 + x6052;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6057 = x5934 + x6051;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6058 = x5935 + x6052;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6059 = x5936 + x6051;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6060 = x5937 + x6052;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6061 = x5938 + x6051;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6062 = x5939 + x6052;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6063 = x5940 + x6051;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6064 = x5941 + x6052;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6065 = x6028 + x6051;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6066 = x6034 + x6052;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6067 = x6053 + x6037;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x6068 = x6054 + x6038;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6069 = x6031 + x6067;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6070 = x6032 + x6068;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6071 = x6016 + x6067;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6072 = x6017 + x6068;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6073 = x6018 + x6067;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6074 = x6019 + x6068;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6075 = x6020 + x6067;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6076 = x6021 + x6068;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6077 = x6022 + x6067;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6078 = x6023 + x6068;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6079 = x6037 + x6067;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x6080 = x6038 + x6068;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6081 = x6070 + x5994;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6082 = x318 - x6081;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6083 = x5890 + x6082 * poly_mix[72];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6084 = x6055 + x6008;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6085 = x289 - x6084;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6086 = x6083 + x6085 * poly_mix[73];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6087 = x6069 + x5996;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6088 = x290 - x6087;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6089 = x6086 + x6088 * poly_mix[74];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6090 = x6056 + x5997;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6091 = x291 - x6090;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6092 = x6089 + x6091 * poly_mix[75];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6093 = x6072 + x6007;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6094 = x292 - x6093;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6095 = x6092 + x6094 * poly_mix[76];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6096 = x6057 + x6004;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6097 = x293 - x6096;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6098 = x6095 + x6097 * poly_mix[77];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6099 = x6071 + x6013;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6100 = x294 - x6099;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6101 = x6098 + x6100 * poly_mix[78];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6102 = x6058 + x5995;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6103 = x295 - x6102;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6104 = x6101 + x6103 * poly_mix[79];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6105 = x6074 + x6015;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6106 = x296 - x6105;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6107 = x6104 + x6106 * poly_mix[80];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6108 = x6059 + x6011;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6109 = x297 - x6108;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6110 = x6107 + x6109 * poly_mix[81];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6111 = x6073 + x5998;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6112 = x288 - x6111;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6113 = x6110 + x6112 * poly_mix[82];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6114 = x6060 + x6010;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6115 = x476 - x6114;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6116 = x6113 + x6115 * poly_mix[83];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6117 = x6076 + x6001;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6118 = x590 - x6117;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6119 = x6116 + x6118 * poly_mix[84];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6120 = x6061 + x6003;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6121 = x560 - x6120;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6122 = x6119 + x6121 * poly_mix[85];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6123 = x6075 + x6012;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6124 = x561 - x6123;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6125 = x6122 + x6124 * poly_mix[86];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6126 = x6062 + x5999;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6127 = x562 - x6126;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6128 = x6125 + x6127 * poly_mix[87];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6129 = x6078 + x6005;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6130 = x563 - x6129;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6131 = x6128 + x6130 * poly_mix[88];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6132 = x6063 + x6002;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6133 = x564 - x6132;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6134 = x6131 + x6133 * poly_mix[89];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6135 = x6077 + x5992;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6136 = x565 - x6135;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6137 = x6134 + x6136 * poly_mix[90];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6138 = x6064 + x6000;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6139 = x566 - x6138;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6140 = x6137 + x6139 * poly_mix[91];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6141 = x6080 + x5993;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6142 = x567 - x6141;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6143 = x6140 + x6142 * poly_mix[92];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6144 = x6065 + x6006;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6145 = x568 - x6144;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6146 = x6143 + x6145 * poly_mix[93];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6147 = x6079 + x6009;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6148 = x569 - x6147;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6149 = x6146 + x6148 * poly_mix[94];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:20)
  auto x6150 = x6066 + x6014;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  auto x6151 = x748 - x6150;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":273:5)
  FpExt x6152 = x6149 + x6151 * poly_mix[95];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x6153 = x5225 + x5226 * x6152 * poly_mix[136];
  // loc("top(recursion::Top)/code(recursion::Code)/select(OneHot)/poseidon2_partial(Reg)"("./zirgen/components/mux.h":49:25))
  auto x6154 = args[0][5 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":291:3)
  auto x6155 = x322 - x2450;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":291:3)
  FpExt x6156 = x284 + x6155 * poly_mix[0];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x6157 = x322 + x212;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x6158 = x6157 * x6157;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x6159 = x6158 * x6158;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x6160 = x612 - x6159;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x6161 = x6156 + x6160 * poly_mix[1];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6162 = x5227 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6163 = x5228 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6164 = x5229 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6165 = x5230 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6166 = x5231 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6167 = x5232 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6168 = x5233 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6169 = x5234 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6170 = x5235 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6171 = x5236 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6172 = x5237 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6173 = x5238 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6174 = x5239 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6175 = x5240 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6176 = x2451 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6177 = x5241 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6178 = x5242 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6179 = x5243 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6180 = x5244 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6181 = x5245 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6182 = x5246 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6183 = x5247 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6184 = x5248 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6185 = x612 * x6158;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6186 = x6185 * x6157;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6187 = x6186 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6188 = x6186 + x2451;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6189 = x6188 + x5241;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6190 = x6189 + x5242;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6191 = x6190 + x5243;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6192 = x6191 + x5244;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6193 = x6192 + x5245;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6194 = x6193 + x5246;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6195 = x6194 + x5247;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6196 = x6195 + x5248;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6197 = x6196 + x5227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6198 = x6197 + x5228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6199 = x6198 + x5229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6200 = x6199 + x5230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6201 = x6200 + x5231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6202 = x6201 + x5232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6203 = x6202 + x5233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6204 = x6203 + x5234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6205 = x6204 + x5235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6206 = x6205 + x5236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6207 = x6206 + x5237;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6208 = x6207 + x5238;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6209 = x6208 + x5239;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6210 = x6209 + x5240;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6211 = x6210 + x6162;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6212 = x6210 + x6163;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6213 = x6210 + x6164;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6214 = x6210 + x6165;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6215 = x6210 + x6166;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6216 = x6210 + x6167;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6217 = x6210 + x6168;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6218 = x6210 + x6169;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6219 = x6210 + x6170;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6220 = x6210 + x6171;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6221 = x6210 + x6172;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6222 = x6210 + x6173;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6223 = x6210 + x6174;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6224 = x6210 + x6175;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6225 = x6210 + x6176;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6226 = x6210 + x6177;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6227 = x6210 + x6178;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6228 = x6210 + x6179;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6229 = x6210 + x6180;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6230 = x6210 + x6181;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6231 = x6210 + x6182;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6232 = x6210 + x6183;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6233 = x6210 + x6184;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6234 = x6210 + x6187;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x6235 = x324 - x6234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x6236 = x6161 + x6235 * poly_mix[2];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x6237 = x324 + x237;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x6238 = x6237 * x6237;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x6239 = x6238 * x6238;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x6240 = x614 - x6239;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x6241 = x6236 + x6240 * poly_mix[3];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6242 = x6211 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6243 = x6212 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6244 = x6213 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6245 = x6214 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6246 = x6215 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6247 = x6216 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6248 = x6217 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6249 = x6218 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6250 = x6219 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6251 = x6220 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6252 = x6221 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6253 = x6222 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6254 = x6223 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6255 = x6224 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6256 = x6225 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6257 = x6226 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6258 = x6227 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6259 = x6228 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6260 = x6229 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6261 = x6230 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6262 = x6231 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6263 = x6232 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6264 = x6233 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6265 = x614 * x6238;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6266 = x6265 * x6237;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6267 = x6266 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6268 = x6266 + x6225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6269 = x6268 + x6226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6270 = x6269 + x6227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6271 = x6270 + x6228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6272 = x6271 + x6229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6273 = x6272 + x6230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6274 = x6273 + x6231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6275 = x6274 + x6232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6276 = x6275 + x6233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6277 = x6276 + x6211;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6278 = x6277 + x6212;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6279 = x6278 + x6213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6280 = x6279 + x6214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6281 = x6280 + x6215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6282 = x6281 + x6216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6283 = x6282 + x6217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6284 = x6283 + x6218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6285 = x6284 + x6219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6286 = x6285 + x6220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6287 = x6286 + x6221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6288 = x6287 + x6222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6289 = x6288 + x6223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6290 = x6289 + x6224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6291 = x6290 + x6242;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6292 = x6290 + x6243;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6293 = x6290 + x6244;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6294 = x6290 + x6245;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6295 = x6290 + x6246;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6296 = x6290 + x6247;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6297 = x6290 + x6248;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6298 = x6290 + x6249;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6299 = x6290 + x6250;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6300 = x6290 + x6251;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6301 = x6290 + x6252;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6302 = x6290 + x6253;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6303 = x6290 + x6254;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6304 = x6290 + x6255;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6305 = x6290 + x6256;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6306 = x6290 + x6257;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6307 = x6290 + x6258;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6308 = x6290 + x6259;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6309 = x6290 + x6260;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6310 = x6290 + x6261;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6311 = x6290 + x6262;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6312 = x6290 + x6263;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6313 = x6290 + x6264;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6314 = x6290 + x6267;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x6315 = x326 - x6314;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x6316 = x6241 + x6315 * poly_mix[4];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x6317 = x326 + x238;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x6318 = x6317 * x6317;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x6319 = x6318 * x6318;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x6320 = x617 - x6319;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x6321 = x6316 + x6320 * poly_mix[5];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6322 = x6291 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6323 = x6292 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6324 = x6293 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6325 = x6294 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6326 = x6295 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6327 = x6296 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6328 = x6297 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6329 = x6298 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6330 = x6299 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6331 = x6300 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6332 = x6301 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6333 = x6302 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6334 = x6303 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6335 = x6304 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6336 = x6305 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6337 = x6306 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6338 = x6307 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6339 = x6308 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6340 = x6309 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6341 = x6310 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6342 = x6311 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6343 = x6312 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6344 = x6313 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6345 = x617 * x6318;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6346 = x6345 * x6317;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6347 = x6346 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6348 = x6346 + x6305;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6349 = x6348 + x6306;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6350 = x6349 + x6307;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6351 = x6350 + x6308;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6352 = x6351 + x6309;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6353 = x6352 + x6310;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6354 = x6353 + x6311;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6355 = x6354 + x6312;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6356 = x6355 + x6313;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6357 = x6356 + x6291;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6358 = x6357 + x6292;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6359 = x6358 + x6293;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6360 = x6359 + x6294;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6361 = x6360 + x6295;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6362 = x6361 + x6296;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6363 = x6362 + x6297;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6364 = x6363 + x6298;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6365 = x6364 + x6299;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6366 = x6365 + x6300;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6367 = x6366 + x6301;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6368 = x6367 + x6302;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6369 = x6368 + x6303;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6370 = x6369 + x6304;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6371 = x6370 + x6322;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6372 = x6370 + x6323;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6373 = x6370 + x6324;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6374 = x6370 + x6325;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6375 = x6370 + x6326;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6376 = x6370 + x6327;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6377 = x6370 + x6328;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6378 = x6370 + x6329;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6379 = x6370 + x6330;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6380 = x6370 + x6331;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6381 = x6370 + x6332;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6382 = x6370 + x6333;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6383 = x6370 + x6334;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6384 = x6370 + x6335;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6385 = x6370 + x6336;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6386 = x6370 + x6337;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6387 = x6370 + x6338;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6388 = x6370 + x6339;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6389 = x6370 + x6340;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6390 = x6370 + x6341;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6391 = x6370 + x6342;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6392 = x6370 + x6343;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6393 = x6370 + x6344;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6394 = x6370 + x6347;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x6395 = x328 - x6394;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x6396 = x6321 + x6395 * poly_mix[6];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x6397 = x328 + x239;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x6398 = x6397 * x6397;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x6399 = x6398 * x6398;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x6400 = x620 - x6399;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x6401 = x6396 + x6400 * poly_mix[7];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6402 = x6371 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6403 = x6372 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6404 = x6373 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6405 = x6374 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6406 = x6375 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6407 = x6376 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6408 = x6377 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6409 = x6378 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6410 = x6379 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6411 = x6380 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6412 = x6381 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6413 = x6382 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6414 = x6383 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6415 = x6384 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6416 = x6385 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6417 = x6386 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6418 = x6387 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6419 = x6388 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6420 = x6389 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6421 = x6390 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6422 = x6391 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6423 = x6392 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6424 = x6393 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6425 = x620 * x6398;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6426 = x6425 * x6397;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6427 = x6426 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6428 = x6426 + x6385;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6429 = x6428 + x6386;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6430 = x6429 + x6387;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6431 = x6430 + x6388;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6432 = x6431 + x6389;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6433 = x6432 + x6390;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6434 = x6433 + x6391;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6435 = x6434 + x6392;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6436 = x6435 + x6393;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6437 = x6436 + x6371;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6438 = x6437 + x6372;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6439 = x6438 + x6373;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6440 = x6439 + x6374;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6441 = x6440 + x6375;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6442 = x6441 + x6376;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6443 = x6442 + x6377;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6444 = x6443 + x6378;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6445 = x6444 + x6379;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6446 = x6445 + x6380;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6447 = x6446 + x6381;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6448 = x6447 + x6382;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6449 = x6448 + x6383;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6450 = x6449 + x6384;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6451 = x6450 + x6402;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6452 = x6450 + x6403;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6453 = x6450 + x6404;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6454 = x6450 + x6405;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6455 = x6450 + x6406;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6456 = x6450 + x6407;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6457 = x6450 + x6408;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6458 = x6450 + x6409;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6459 = x6450 + x6410;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6460 = x6450 + x6411;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6461 = x6450 + x6412;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6462 = x6450 + x6413;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6463 = x6450 + x6414;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6464 = x6450 + x6415;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6465 = x6450 + x6416;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6466 = x6450 + x6417;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6467 = x6450 + x6418;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6468 = x6450 + x6419;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6469 = x6450 + x6420;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6470 = x6450 + x6421;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6471 = x6450 + x6422;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6472 = x6450 + x6423;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6473 = x6450 + x6424;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6474 = x6450 + x6427;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x6475 = x330 - x6474;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x6476 = x6401 + x6475 * poly_mix[8];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x6477 = x330 + x240;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x6478 = x6477 * x6477;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x6479 = x6478 * x6478;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x6480 = x623 - x6479;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x6481 = x6476 + x6480 * poly_mix[9];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6482 = x6451 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6483 = x6452 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6484 = x6453 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6485 = x6454 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6486 = x6455 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6487 = x6456 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6488 = x6457 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6489 = x6458 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6490 = x6459 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6491 = x6460 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6492 = x6461 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6493 = x6462 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6494 = x6463 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6495 = x6464 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6496 = x6465 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6497 = x6466 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6498 = x6467 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6499 = x6468 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6500 = x6469 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6501 = x6470 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6502 = x6471 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6503 = x6472 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6504 = x6473 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6505 = x623 * x6478;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6506 = x6505 * x6477;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6507 = x6506 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6508 = x6506 + x6465;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6509 = x6508 + x6466;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6510 = x6509 + x6467;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6511 = x6510 + x6468;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6512 = x6511 + x6469;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6513 = x6512 + x6470;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6514 = x6513 + x6471;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6515 = x6514 + x6472;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6516 = x6515 + x6473;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6517 = x6516 + x6451;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6518 = x6517 + x6452;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6519 = x6518 + x6453;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6520 = x6519 + x6454;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6521 = x6520 + x6455;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6522 = x6521 + x6456;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6523 = x6522 + x6457;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6524 = x6523 + x6458;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6525 = x6524 + x6459;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6526 = x6525 + x6460;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6527 = x6526 + x6461;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6528 = x6527 + x6462;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6529 = x6528 + x6463;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6530 = x6529 + x6464;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6531 = x6530 + x6482;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6532 = x6530 + x6483;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6533 = x6530 + x6484;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6534 = x6530 + x6485;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6535 = x6530 + x6486;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6536 = x6530 + x6487;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6537 = x6530 + x6488;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6538 = x6530 + x6489;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6539 = x6530 + x6490;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6540 = x6530 + x6491;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6541 = x6530 + x6492;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6542 = x6530 + x6493;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6543 = x6530 + x6494;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6544 = x6530 + x6495;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6545 = x6530 + x6496;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6546 = x6530 + x6497;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6547 = x6530 + x6498;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6548 = x6530 + x6499;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6549 = x6530 + x6500;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6550 = x6530 + x6501;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6551 = x6530 + x6502;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6552 = x6530 + x6503;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6553 = x6530 + x6504;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6554 = x6530 + x6507;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x6555 = x332 - x6554;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x6556 = x6481 + x6555 * poly_mix[10];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x6557 = x332 + x241;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x6558 = x6557 * x6557;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x6559 = x6558 * x6558;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x6560 = x626 - x6559;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x6561 = x6556 + x6560 * poly_mix[11];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6562 = x6531 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6563 = x6532 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6564 = x6533 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6565 = x6534 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6566 = x6535 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6567 = x6536 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6568 = x6537 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6569 = x6538 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6570 = x6539 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6571 = x6540 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6572 = x6541 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6573 = x6542 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6574 = x6543 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6575 = x6544 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6576 = x6545 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6577 = x6546 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6578 = x6547 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6579 = x6548 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6580 = x6549 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6581 = x6550 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6582 = x6551 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6583 = x6552 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6584 = x6553 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6585 = x626 * x6558;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6586 = x6585 * x6557;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6587 = x6586 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6588 = x6586 + x6545;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6589 = x6588 + x6546;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6590 = x6589 + x6547;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6591 = x6590 + x6548;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6592 = x6591 + x6549;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6593 = x6592 + x6550;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6594 = x6593 + x6551;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6595 = x6594 + x6552;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6596 = x6595 + x6553;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6597 = x6596 + x6531;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6598 = x6597 + x6532;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6599 = x6598 + x6533;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6600 = x6599 + x6534;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6601 = x6600 + x6535;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6602 = x6601 + x6536;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6603 = x6602 + x6537;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6604 = x6603 + x6538;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6605 = x6604 + x6539;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6606 = x6605 + x6540;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6607 = x6606 + x6541;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6608 = x6607 + x6542;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6609 = x6608 + x6543;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6610 = x6609 + x6544;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6611 = x6610 + x6562;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6612 = x6610 + x6563;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6613 = x6610 + x6564;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6614 = x6610 + x6565;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6615 = x6610 + x6566;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6616 = x6610 + x6567;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6617 = x6610 + x6568;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6618 = x6610 + x6569;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6619 = x6610 + x6570;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6620 = x6610 + x6571;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6621 = x6610 + x6572;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6622 = x6610 + x6573;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6623 = x6610 + x6574;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6624 = x6610 + x6575;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6625 = x6610 + x6576;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6626 = x6610 + x6577;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6627 = x6610 + x6578;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6628 = x6610 + x6579;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6629 = x6610 + x6580;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6630 = x6610 + x6581;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6631 = x6610 + x6582;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6632 = x6610 + x6583;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6633 = x6610 + x6584;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6634 = x6610 + x6587;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x6635 = x334 - x6634;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x6636 = x6561 + x6635 * poly_mix[12];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x6637 = x334 + x242;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x6638 = x6637 * x6637;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x6639 = x6638 * x6638;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x6640 = x866 - x6639;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x6641 = x6636 + x6640 * poly_mix[13];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6642 = x6611 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6643 = x6612 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6644 = x6613 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6645 = x6614 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6646 = x6615 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6647 = x6616 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6648 = x6617 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6649 = x6618 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6650 = x6619 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6651 = x6620 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6652 = x6621 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6653 = x6622 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6654 = x6623 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6655 = x6624 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6656 = x6625 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6657 = x6626 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6658 = x6627 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6659 = x6628 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6660 = x6629 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6661 = x6630 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6662 = x6631 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6663 = x6632 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6664 = x6633 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6665 = x866 * x6638;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6666 = x6665 * x6637;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6667 = x6666 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6668 = x6666 + x6625;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6669 = x6668 + x6626;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6670 = x6669 + x6627;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6671 = x6670 + x6628;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6672 = x6671 + x6629;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6673 = x6672 + x6630;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6674 = x6673 + x6631;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6675 = x6674 + x6632;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6676 = x6675 + x6633;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6677 = x6676 + x6611;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6678 = x6677 + x6612;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6679 = x6678 + x6613;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6680 = x6679 + x6614;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6681 = x6680 + x6615;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6682 = x6681 + x6616;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6683 = x6682 + x6617;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6684 = x6683 + x6618;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6685 = x6684 + x6619;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6686 = x6685 + x6620;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6687 = x6686 + x6621;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6688 = x6687 + x6622;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6689 = x6688 + x6623;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6690 = x6689 + x6624;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6691 = x6690 + x6642;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6692 = x6690 + x6643;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6693 = x6690 + x6644;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6694 = x6690 + x6645;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6695 = x6690 + x6646;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6696 = x6690 + x6647;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6697 = x6690 + x6648;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6698 = x6690 + x6649;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6699 = x6690 + x6650;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6700 = x6690 + x6651;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6701 = x6690 + x6652;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6702 = x6690 + x6653;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6703 = x6690 + x6654;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6704 = x6690 + x6655;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6705 = x6690 + x6656;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6706 = x6690 + x6657;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6707 = x6690 + x6658;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6708 = x6690 + x6659;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6709 = x6690 + x6660;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6710 = x6690 + x6661;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6711 = x6690 + x6662;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6712 = x6690 + x6663;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6713 = x6690 + x6664;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6714 = x6690 + x6667;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x6715 = x336 - x6714;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x6716 = x6641 + x6715 * poly_mix[14];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x6717 = x336 + x243;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x6718 = x6717 * x6717;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x6719 = x6718 * x6718;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x6720 = x868 - x6719;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x6721 = x6716 + x6720 * poly_mix[15];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6722 = x6691 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6723 = x6692 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6724 = x6693 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6725 = x6694 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6726 = x6695 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6727 = x6696 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6728 = x6697 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6729 = x6698 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6730 = x6699 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6731 = x6700 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6732 = x6701 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6733 = x6702 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6734 = x6703 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6735 = x6704 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6736 = x6705 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6737 = x6706 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6738 = x6707 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6739 = x6708 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6740 = x6709 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6741 = x6710 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6742 = x6711 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6743 = x6712 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6744 = x6713 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6745 = x868 * x6718;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6746 = x6745 * x6717;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6747 = x6746 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6748 = x6746 + x6705;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6749 = x6748 + x6706;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6750 = x6749 + x6707;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6751 = x6750 + x6708;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6752 = x6751 + x6709;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6753 = x6752 + x6710;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6754 = x6753 + x6711;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6755 = x6754 + x6712;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6756 = x6755 + x6713;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6757 = x6756 + x6691;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6758 = x6757 + x6692;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6759 = x6758 + x6693;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6760 = x6759 + x6694;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6761 = x6760 + x6695;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6762 = x6761 + x6696;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6763 = x6762 + x6697;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6764 = x6763 + x6698;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6765 = x6764 + x6699;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6766 = x6765 + x6700;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6767 = x6766 + x6701;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6768 = x6767 + x6702;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6769 = x6768 + x6703;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6770 = x6769 + x6704;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6771 = x6770 + x6722;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6772 = x6770 + x6723;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6773 = x6770 + x6724;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6774 = x6770 + x6725;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6775 = x6770 + x6726;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6776 = x6770 + x6727;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6777 = x6770 + x6728;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6778 = x6770 + x6729;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6779 = x6770 + x6730;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6780 = x6770 + x6731;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6781 = x6770 + x6732;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6782 = x6770 + x6733;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6783 = x6770 + x6734;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6784 = x6770 + x6735;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6785 = x6770 + x6736;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6786 = x6770 + x6737;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6787 = x6770 + x6738;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6788 = x6770 + x6739;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6789 = x6770 + x6740;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6790 = x6770 + x6741;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6791 = x6770 + x6742;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6792 = x6770 + x6743;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6793 = x6770 + x6744;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6794 = x6770 + x6747;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x6795 = x338 - x6794;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x6796 = x6721 + x6795 * poly_mix[16];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x6797 = x338 + x244;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x6798 = x6797 * x6797;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x6799 = x6798 * x6798;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x6800 = x870 - x6799;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x6801 = x6796 + x6800 * poly_mix[17];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6802 = x6771 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6803 = x6772 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6804 = x6773 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6805 = x6774 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6806 = x6775 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6807 = x6776 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6808 = x6777 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6809 = x6778 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6810 = x6779 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6811 = x6780 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6812 = x6781 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6813 = x6782 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6814 = x6783 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6815 = x6784 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6816 = x6785 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6817 = x6786 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6818 = x6787 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6819 = x6788 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6820 = x6789 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6821 = x6790 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6822 = x6791 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6823 = x6792 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6824 = x6793 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6825 = x870 * x6798;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6826 = x6825 * x6797;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6827 = x6826 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6828 = x6826 + x6785;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6829 = x6828 + x6786;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6830 = x6829 + x6787;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6831 = x6830 + x6788;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6832 = x6831 + x6789;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6833 = x6832 + x6790;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6834 = x6833 + x6791;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6835 = x6834 + x6792;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6836 = x6835 + x6793;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6837 = x6836 + x6771;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6838 = x6837 + x6772;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6839 = x6838 + x6773;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6840 = x6839 + x6774;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6841 = x6840 + x6775;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6842 = x6841 + x6776;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6843 = x6842 + x6777;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6844 = x6843 + x6778;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6845 = x6844 + x6779;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6846 = x6845 + x6780;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6847 = x6846 + x6781;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6848 = x6847 + x6782;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6849 = x6848 + x6783;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6850 = x6849 + x6784;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6851 = x6850 + x6802;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6852 = x6850 + x6803;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6853 = x6850 + x6804;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6854 = x6850 + x6805;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6855 = x6850 + x6806;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6856 = x6850 + x6807;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6857 = x6850 + x6808;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6858 = x6850 + x6809;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6859 = x6850 + x6810;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6860 = x6850 + x6811;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6861 = x6850 + x6812;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6862 = x6850 + x6813;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6863 = x6850 + x6814;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6864 = x6850 + x6815;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6865 = x6850 + x6816;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6866 = x6850 + x6817;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6867 = x6850 + x6818;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6868 = x6850 + x6819;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6869 = x6850 + x6820;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6870 = x6850 + x6821;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6871 = x6850 + x6822;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6872 = x6850 + x6823;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6873 = x6850 + x6824;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6874 = x6850 + x6827;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x6875 = x340 - x6874;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x6876 = x6801 + x6875 * poly_mix[18];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x6877 = x340 + x245;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x6878 = x6877 * x6877;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x6879 = x6878 * x6878;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x6880 = x872 - x6879;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x6881 = x6876 + x6880 * poly_mix[19];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6882 = x6851 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6883 = x6852 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6884 = x6853 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6885 = x6854 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6886 = x6855 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6887 = x6856 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6888 = x6857 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6889 = x6858 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6890 = x6859 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6891 = x6860 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6892 = x6861 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6893 = x6862 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6894 = x6863 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6895 = x6864 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6896 = x6865 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6897 = x6866 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6898 = x6867 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6899 = x6868 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6900 = x6869 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6901 = x6870 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6902 = x6871 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6903 = x6872 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6904 = x6873 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6905 = x872 * x6878;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6906 = x6905 * x6877;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6907 = x6906 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6908 = x6906 + x6865;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6909 = x6908 + x6866;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6910 = x6909 + x6867;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6911 = x6910 + x6868;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6912 = x6911 + x6869;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6913 = x6912 + x6870;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6914 = x6913 + x6871;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6915 = x6914 + x6872;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6916 = x6915 + x6873;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6917 = x6916 + x6851;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6918 = x6917 + x6852;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6919 = x6918 + x6853;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6920 = x6919 + x6854;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6921 = x6920 + x6855;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6922 = x6921 + x6856;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6923 = x6922 + x6857;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6924 = x6923 + x6858;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6925 = x6924 + x6859;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6926 = x6925 + x6860;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6927 = x6926 + x6861;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6928 = x6927 + x6862;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6929 = x6928 + x6863;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6930 = x6929 + x6864;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6931 = x6930 + x6882;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6932 = x6930 + x6883;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6933 = x6930 + x6884;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6934 = x6930 + x6885;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6935 = x6930 + x6886;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6936 = x6930 + x6887;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6937 = x6930 + x6888;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6938 = x6930 + x6889;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6939 = x6930 + x6890;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6940 = x6930 + x6891;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6941 = x6930 + x6892;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6942 = x6930 + x6893;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6943 = x6930 + x6894;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6944 = x6930 + x6895;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6945 = x6930 + x6896;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6946 = x6930 + x6897;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6947 = x6930 + x6898;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6948 = x6930 + x6899;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6949 = x6930 + x6900;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6950 = x6930 + x6901;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6951 = x6930 + x6902;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6952 = x6930 + x6903;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6953 = x6930 + x6904;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x6954 = x6930 + x6907;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x6955 = x342 - x6954;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x6956 = x6881 + x6955 * poly_mix[20];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x6957 = x342 + x246;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x6958 = x6957 * x6957;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x6959 = x6958 * x6958;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x6960 = x874 - x6959;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x6961 = x6956 + x6960 * poly_mix[21];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6962 = x6931 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6963 = x6932 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6964 = x6933 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6965 = x6934 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6966 = x6935 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6967 = x6936 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6968 = x6937 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6969 = x6938 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6970 = x6939 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6971 = x6940 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6972 = x6941 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6973 = x6942 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6974 = x6943 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6975 = x6944 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6976 = x6945 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6977 = x6946 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6978 = x6947 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6979 = x6948 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6980 = x6949 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6981 = x6950 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6982 = x6951 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6983 = x6952 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6984 = x6953 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6985 = x874 * x6958;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x6986 = x6985 * x6957;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x6987 = x6986 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6988 = x6986 + x6945;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6989 = x6988 + x6946;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6990 = x6989 + x6947;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6991 = x6990 + x6948;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6992 = x6991 + x6949;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6993 = x6992 + x6950;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6994 = x6993 + x6951;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6995 = x6994 + x6952;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6996 = x6995 + x6953;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6997 = x6996 + x6931;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6998 = x6997 + x6932;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x6999 = x6998 + x6933;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7000 = x6999 + x6934;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7001 = x7000 + x6935;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7002 = x7001 + x6936;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7003 = x7002 + x6937;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7004 = x7003 + x6938;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7005 = x7004 + x6939;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7006 = x7005 + x6940;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7007 = x7006 + x6941;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7008 = x7007 + x6942;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7009 = x7008 + x6943;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7010 = x7009 + x6944;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7011 = x7010 + x6962;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7012 = x7010 + x6963;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7013 = x7010 + x6964;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7014 = x7010 + x6965;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7015 = x7010 + x6966;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7016 = x7010 + x6967;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7017 = x7010 + x6968;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7018 = x7010 + x6969;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7019 = x7010 + x6970;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7020 = x7010 + x6971;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7021 = x7010 + x6972;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7022 = x7010 + x6973;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7023 = x7010 + x6974;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7024 = x7010 + x6975;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7025 = x7010 + x6976;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7026 = x7010 + x6977;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7027 = x7010 + x6978;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7028 = x7010 + x6979;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7029 = x7010 + x6980;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7030 = x7010 + x6981;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7031 = x7010 + x6982;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7032 = x7010 + x6983;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7033 = x7010 + x6984;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7034 = x7010 + x6987;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x7035 = x345 - x7034;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x7036 = x6961 + x7035 * poly_mix[22];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x7037 = x345 + x247;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x7038 = x7037 * x7037;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x7039 = x7038 * x7038;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x7040 = x876 - x7039;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x7041 = x7036 + x7040 * poly_mix[23];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7042 = x7011 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7043 = x7012 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7044 = x7013 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7045 = x7014 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7046 = x7015 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7047 = x7016 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7048 = x7017 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7049 = x7018 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7050 = x7019 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7051 = x7020 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7052 = x7021 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7053 = x7022 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7054 = x7023 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7055 = x7024 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7056 = x7025 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7057 = x7026 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7058 = x7027 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7059 = x7028 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7060 = x7029 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7061 = x7030 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7062 = x7031 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7063 = x7032 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7064 = x7033 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7065 = x876 * x7038;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7066 = x7065 * x7037;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7067 = x7066 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7068 = x7066 + x7025;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7069 = x7068 + x7026;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7070 = x7069 + x7027;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7071 = x7070 + x7028;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7072 = x7071 + x7029;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7073 = x7072 + x7030;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7074 = x7073 + x7031;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7075 = x7074 + x7032;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7076 = x7075 + x7033;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7077 = x7076 + x7011;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7078 = x7077 + x7012;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7079 = x7078 + x7013;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7080 = x7079 + x7014;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7081 = x7080 + x7015;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7082 = x7081 + x7016;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7083 = x7082 + x7017;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7084 = x7083 + x7018;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7085 = x7084 + x7019;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7086 = x7085 + x7020;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7087 = x7086 + x7021;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7088 = x7087 + x7022;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7089 = x7088 + x7023;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7090 = x7089 + x7024;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7091 = x7090 + x7042;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7092 = x7090 + x7043;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7093 = x7090 + x7044;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7094 = x7090 + x7045;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7095 = x7090 + x7046;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7096 = x7090 + x7047;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7097 = x7090 + x7048;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7098 = x7090 + x7049;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7099 = x7090 + x7050;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7100 = x7090 + x7051;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7101 = x7090 + x7052;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7102 = x7090 + x7053;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7103 = x7090 + x7054;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7104 = x7090 + x7055;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7105 = x7090 + x7056;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7106 = x7090 + x7057;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7107 = x7090 + x7058;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7108 = x7090 + x7059;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7109 = x7090 + x7060;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7110 = x7090 + x7061;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7111 = x7090 + x7062;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7112 = x7090 + x7063;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7113 = x7090 + x7064;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7114 = x7090 + x7067;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x7115 = x348 - x7114;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x7116 = x7041 + x7115 * poly_mix[24];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x7117 = x348 + x248;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x7118 = x7117 * x7117;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x7119 = x7118 * x7118;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x7120 = x878 - x7119;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x7121 = x7116 + x7120 * poly_mix[25];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7122 = x7091 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7123 = x7092 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7124 = x7093 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7125 = x7094 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7126 = x7095 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7127 = x7096 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7128 = x7097 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7129 = x7098 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7130 = x7099 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7131 = x7100 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7132 = x7101 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7133 = x7102 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7134 = x7103 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7135 = x7104 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7136 = x7105 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7137 = x7106 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7138 = x7107 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7139 = x7108 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7140 = x7109 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7141 = x7110 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7142 = x7111 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7143 = x7112 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7144 = x7113 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7145 = x878 * x7118;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7146 = x7145 * x7117;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7147 = x7146 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7148 = x7146 + x7105;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7149 = x7148 + x7106;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7150 = x7149 + x7107;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7151 = x7150 + x7108;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7152 = x7151 + x7109;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7153 = x7152 + x7110;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7154 = x7153 + x7111;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7155 = x7154 + x7112;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7156 = x7155 + x7113;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7157 = x7156 + x7091;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7158 = x7157 + x7092;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7159 = x7158 + x7093;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7160 = x7159 + x7094;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7161 = x7160 + x7095;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7162 = x7161 + x7096;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7163 = x7162 + x7097;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7164 = x7163 + x7098;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7165 = x7164 + x7099;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7166 = x7165 + x7100;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7167 = x7166 + x7101;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7168 = x7167 + x7102;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7169 = x7168 + x7103;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7170 = x7169 + x7104;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7171 = x7170 + x7122;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7172 = x7170 + x7123;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7173 = x7170 + x7124;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7174 = x7170 + x7125;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7175 = x7170 + x7126;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7176 = x7170 + x7127;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7177 = x7170 + x7128;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7178 = x7170 + x7129;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7179 = x7170 + x7130;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7180 = x7170 + x7131;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7181 = x7170 + x7132;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7182 = x7170 + x7133;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7183 = x7170 + x7134;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7184 = x7170 + x7135;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7185 = x7170 + x7136;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7186 = x7170 + x7137;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7187 = x7170 + x7138;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7188 = x7170 + x7139;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7189 = x7170 + x7140;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7190 = x7170 + x7141;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7191 = x7170 + x7142;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7192 = x7170 + x7143;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7193 = x7170 + x7144;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7194 = x7170 + x7147;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x7195 = x351 - x7194;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x7196 = x7121 + x7195 * poly_mix[26];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x7197 = x351 + x249;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x7198 = x7197 * x7197;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x7199 = x7198 * x7198;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x7200 = x880 - x7199;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x7201 = x7196 + x7200 * poly_mix[27];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7202 = x7171 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7203 = x7172 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7204 = x7173 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7205 = x7174 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7206 = x7175 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7207 = x7176 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7208 = x7177 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7209 = x7178 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7210 = x7179 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7211 = x7180 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7212 = x7181 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7213 = x7182 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7214 = x7183 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7215 = x7184 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7216 = x7185 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7217 = x7186 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7218 = x7187 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7219 = x7188 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7220 = x7189 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7221 = x7190 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7222 = x7191 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7223 = x7192 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7224 = x7193 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7225 = x880 * x7198;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7226 = x7225 * x7197;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7227 = x7226 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7228 = x7226 + x7185;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7229 = x7228 + x7186;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7230 = x7229 + x7187;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7231 = x7230 + x7188;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7232 = x7231 + x7189;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7233 = x7232 + x7190;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7234 = x7233 + x7191;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7235 = x7234 + x7192;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7236 = x7235 + x7193;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7237 = x7236 + x7171;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7238 = x7237 + x7172;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7239 = x7238 + x7173;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7240 = x7239 + x7174;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7241 = x7240 + x7175;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7242 = x7241 + x7176;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7243 = x7242 + x7177;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7244 = x7243 + x7178;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7245 = x7244 + x7179;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7246 = x7245 + x7180;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7247 = x7246 + x7181;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7248 = x7247 + x7182;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7249 = x7248 + x7183;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7250 = x7249 + x7184;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7251 = x7250 + x7202;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7252 = x7250 + x7203;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7253 = x7250 + x7204;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7254 = x7250 + x7205;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7255 = x7250 + x7206;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7256 = x7250 + x7207;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7257 = x7250 + x7208;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7258 = x7250 + x7209;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7259 = x7250 + x7210;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7260 = x7250 + x7211;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7261 = x7250 + x7212;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7262 = x7250 + x7213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7263 = x7250 + x7214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7264 = x7250 + x7215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7265 = x7250 + x7216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7266 = x7250 + x7217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7267 = x7250 + x7218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7268 = x7250 + x7219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7269 = x7250 + x7220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7270 = x7250 + x7221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7271 = x7250 + x7222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7272 = x7250 + x7223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7273 = x7250 + x7224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7274 = x7250 + x7227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x7275 = x354 - x7274;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x7276 = x7201 + x7275 * poly_mix[28];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x7277 = x354 + x250;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x7278 = x7277 * x7277;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x7279 = x7278 * x7278;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x7280 = x882 - x7279;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x7281 = x7276 + x7280 * poly_mix[29];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7282 = x7251 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7283 = x7252 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7284 = x7253 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7285 = x7254 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7286 = x7255 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7287 = x7256 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7288 = x7257 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7289 = x7258 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7290 = x7259 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7291 = x7260 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7292 = x7261 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7293 = x7262 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7294 = x7263 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7295 = x7264 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7296 = x7265 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7297 = x7266 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7298 = x7267 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7299 = x7268 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7300 = x7269 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7301 = x7270 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7302 = x7271 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7303 = x7272 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7304 = x7273 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7305 = x882 * x7278;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7306 = x7305 * x7277;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7307 = x7306 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7308 = x7306 + x7265;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7309 = x7308 + x7266;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7310 = x7309 + x7267;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7311 = x7310 + x7268;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7312 = x7311 + x7269;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7313 = x7312 + x7270;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7314 = x7313 + x7271;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7315 = x7314 + x7272;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7316 = x7315 + x7273;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7317 = x7316 + x7251;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7318 = x7317 + x7252;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7319 = x7318 + x7253;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7320 = x7319 + x7254;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7321 = x7320 + x7255;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7322 = x7321 + x7256;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7323 = x7322 + x7257;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7324 = x7323 + x7258;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7325 = x7324 + x7259;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7326 = x7325 + x7260;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7327 = x7326 + x7261;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7328 = x7327 + x7262;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7329 = x7328 + x7263;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7330 = x7329 + x7264;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7331 = x7330 + x7282;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7332 = x7330 + x7283;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7333 = x7330 + x7284;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7334 = x7330 + x7285;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7335 = x7330 + x7286;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7336 = x7330 + x7287;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7337 = x7330 + x7288;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7338 = x7330 + x7289;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7339 = x7330 + x7290;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7340 = x7330 + x7291;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7341 = x7330 + x7292;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7342 = x7330 + x7293;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7343 = x7330 + x7294;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7344 = x7330 + x7295;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7345 = x7330 + x7296;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7346 = x7330 + x7297;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7347 = x7330 + x7298;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7348 = x7330 + x7299;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7349 = x7330 + x7300;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7350 = x7330 + x7301;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7351 = x7330 + x7302;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7352 = x7330 + x7303;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7353 = x7330 + x7304;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7354 = x7330 + x7307;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x7355 = x594 - x7354;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x7356 = x7281 + x7355 * poly_mix[30];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x7357 = x594 + x251;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x7358 = x7357 * x7357;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x7359 = x7358 * x7358;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x7360 = x884 - x7359;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x7361 = x7356 + x7360 * poly_mix[31];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7362 = x7331 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7363 = x7332 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7364 = x7333 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7365 = x7334 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7366 = x7335 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7367 = x7336 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7368 = x7337 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7369 = x7338 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7370 = x7339 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7371 = x7340 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7372 = x7341 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7373 = x7342 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7374 = x7343 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7375 = x7344 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7376 = x7345 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7377 = x7346 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7378 = x7347 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7379 = x7348 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7380 = x7349 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7381 = x7350 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7382 = x7351 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7383 = x7352 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7384 = x7353 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7385 = x884 * x7358;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7386 = x7385 * x7357;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7387 = x7386 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7388 = x7386 + x7345;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7389 = x7388 + x7346;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7390 = x7389 + x7347;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7391 = x7390 + x7348;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7392 = x7391 + x7349;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7393 = x7392 + x7350;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7394 = x7393 + x7351;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7395 = x7394 + x7352;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7396 = x7395 + x7353;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7397 = x7396 + x7331;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7398 = x7397 + x7332;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7399 = x7398 + x7333;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7400 = x7399 + x7334;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7401 = x7400 + x7335;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7402 = x7401 + x7336;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7403 = x7402 + x7337;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7404 = x7403 + x7338;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7405 = x7404 + x7339;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7406 = x7405 + x7340;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7407 = x7406 + x7341;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7408 = x7407 + x7342;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7409 = x7408 + x7343;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7410 = x7409 + x7344;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7411 = x7410 + x7362;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7412 = x7410 + x7363;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7413 = x7410 + x7364;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7414 = x7410 + x7365;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7415 = x7410 + x7366;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7416 = x7410 + x7367;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7417 = x7410 + x7368;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7418 = x7410 + x7369;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7419 = x7410 + x7370;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7420 = x7410 + x7371;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7421 = x7410 + x7372;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7422 = x7410 + x7373;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7423 = x7410 + x7374;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7424 = x7410 + x7375;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7425 = x7410 + x7376;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7426 = x7410 + x7377;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7427 = x7410 + x7378;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7428 = x7410 + x7379;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7429 = x7410 + x7380;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7430 = x7410 + x7381;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7431 = x7410 + x7382;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7432 = x7410 + x7383;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7433 = x7410 + x7384;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7434 = x7410 + x7387;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x7435 = x596 - x7434;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x7436 = x7361 + x7435 * poly_mix[32];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x7437 = x596 + x252;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x7438 = x7437 * x7437;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x7439 = x7438 * x7438;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x7440 = x886 - x7439;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x7441 = x7436 + x7440 * poly_mix[33];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7442 = x7411 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7443 = x7412 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7444 = x7413 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7445 = x7414 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7446 = x7415 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7447 = x7416 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7448 = x7417 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7449 = x7418 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7450 = x7419 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7451 = x7420 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7452 = x7421 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7453 = x7422 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7454 = x7423 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7455 = x7424 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7456 = x7425 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7457 = x7426 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7458 = x7427 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7459 = x7428 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7460 = x7429 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7461 = x7430 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7462 = x7431 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7463 = x7432 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7464 = x7433 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7465 = x886 * x7438;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7466 = x7465 * x7437;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7467 = x7466 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7468 = x7466 + x7425;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7469 = x7468 + x7426;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7470 = x7469 + x7427;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7471 = x7470 + x7428;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7472 = x7471 + x7429;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7473 = x7472 + x7430;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7474 = x7473 + x7431;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7475 = x7474 + x7432;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7476 = x7475 + x7433;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7477 = x7476 + x7411;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7478 = x7477 + x7412;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7479 = x7478 + x7413;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7480 = x7479 + x7414;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7481 = x7480 + x7415;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7482 = x7481 + x7416;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7483 = x7482 + x7417;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7484 = x7483 + x7418;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7485 = x7484 + x7419;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7486 = x7485 + x7420;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7487 = x7486 + x7421;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7488 = x7487 + x7422;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7489 = x7488 + x7423;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7490 = x7489 + x7424;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7491 = x7490 + x7442;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7492 = x7490 + x7443;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7493 = x7490 + x7444;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7494 = x7490 + x7445;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7495 = x7490 + x7446;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7496 = x7490 + x7447;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7497 = x7490 + x7448;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7498 = x7490 + x7449;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7499 = x7490 + x7450;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7500 = x7490 + x7451;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7501 = x7490 + x7452;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7502 = x7490 + x7453;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7503 = x7490 + x7454;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7504 = x7490 + x7455;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7505 = x7490 + x7456;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7506 = x7490 + x7457;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7507 = x7490 + x7458;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7508 = x7490 + x7459;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7509 = x7490 + x7460;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7510 = x7490 + x7461;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7511 = x7490 + x7462;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7512 = x7490 + x7463;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7513 = x7490 + x7464;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7514 = x7490 + x7467;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x7515 = x598 - x7514;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x7516 = x7441 + x7515 * poly_mix[34];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x7517 = x598 + x253;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x7518 = x7517 * x7517;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x7519 = x7518 * x7518;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x7520 = x889 - x7519;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x7521 = x7516 + x7520 * poly_mix[35];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7522 = x7491 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7523 = x7492 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7524 = x7493 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7525 = x7494 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7526 = x7495 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7527 = x7496 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7528 = x7497 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7529 = x7498 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7530 = x7499 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7531 = x7500 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7532 = x7501 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7533 = x7502 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7534 = x7503 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7535 = x7504 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7536 = x7505 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7537 = x7506 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7538 = x7507 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7539 = x7508 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7540 = x7509 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7541 = x7510 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7542 = x7511 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7543 = x7512 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7544 = x7513 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7545 = x889 * x7518;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7546 = x7545 * x7517;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7547 = x7546 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7548 = x7546 + x7505;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7549 = x7548 + x7506;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7550 = x7549 + x7507;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7551 = x7550 + x7508;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7552 = x7551 + x7509;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7553 = x7552 + x7510;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7554 = x7553 + x7511;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7555 = x7554 + x7512;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7556 = x7555 + x7513;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7557 = x7556 + x7491;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7558 = x7557 + x7492;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7559 = x7558 + x7493;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7560 = x7559 + x7494;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7561 = x7560 + x7495;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7562 = x7561 + x7496;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7563 = x7562 + x7497;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7564 = x7563 + x7498;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7565 = x7564 + x7499;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7566 = x7565 + x7500;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7567 = x7566 + x7501;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7568 = x7567 + x7502;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7569 = x7568 + x7503;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7570 = x7569 + x7504;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7571 = x7570 + x7522;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7572 = x7570 + x7523;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7573 = x7570 + x7524;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7574 = x7570 + x7525;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7575 = x7570 + x7526;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7576 = x7570 + x7527;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7577 = x7570 + x7528;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7578 = x7570 + x7529;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7579 = x7570 + x7530;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7580 = x7570 + x7531;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7581 = x7570 + x7532;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7582 = x7570 + x7533;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7583 = x7570 + x7534;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7584 = x7570 + x7535;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7585 = x7570 + x7536;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7586 = x7570 + x7537;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7587 = x7570 + x7538;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7588 = x7570 + x7539;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7589 = x7570 + x7540;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7590 = x7570 + x7541;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7591 = x7570 + x7542;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7592 = x7570 + x7543;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7593 = x7570 + x7544;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7594 = x7570 + x7547;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x7595 = x600 - x7594;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x7596 = x7521 + x7595 * poly_mix[36];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x7597 = x600 + x254;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x7598 = x7597 * x7597;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x7599 = x7598 * x7598;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x7600 = x892 - x7599;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x7601 = x7596 + x7600 * poly_mix[37];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7602 = x7571 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7603 = x7572 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7604 = x7573 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7605 = x7574 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7606 = x7575 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7607 = x7576 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7608 = x7577 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7609 = x7578 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7610 = x7579 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7611 = x7580 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7612 = x7581 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7613 = x7582 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7614 = x7583 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7615 = x7584 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7616 = x7585 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7617 = x7586 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7618 = x7587 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7619 = x7588 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7620 = x7589 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7621 = x7590 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7622 = x7591 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7623 = x7592 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7624 = x7593 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7625 = x892 * x7598;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7626 = x7625 * x7597;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7627 = x7626 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7628 = x7626 + x7585;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7629 = x7628 + x7586;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7630 = x7629 + x7587;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7631 = x7630 + x7588;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7632 = x7631 + x7589;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7633 = x7632 + x7590;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7634 = x7633 + x7591;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7635 = x7634 + x7592;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7636 = x7635 + x7593;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7637 = x7636 + x7571;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7638 = x7637 + x7572;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7639 = x7638 + x7573;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7640 = x7639 + x7574;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7641 = x7640 + x7575;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7642 = x7641 + x7576;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7643 = x7642 + x7577;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7644 = x7643 + x7578;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7645 = x7644 + x7579;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7646 = x7645 + x7580;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7647 = x7646 + x7581;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7648 = x7647 + x7582;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7649 = x7648 + x7583;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7650 = x7649 + x7584;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7651 = x7650 + x7602;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7652 = x7650 + x7603;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7653 = x7650 + x7604;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7654 = x7650 + x7605;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7655 = x7650 + x7606;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7656 = x7650 + x7607;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7657 = x7650 + x7608;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7658 = x7650 + x7609;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7659 = x7650 + x7610;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7660 = x7650 + x7611;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7661 = x7650 + x7612;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7662 = x7650 + x7613;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7663 = x7650 + x7614;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7664 = x7650 + x7615;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7665 = x7650 + x7616;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7666 = x7650 + x7617;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7667 = x7650 + x7618;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7668 = x7650 + x7619;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7669 = x7650 + x7620;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7670 = x7650 + x7621;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7671 = x7650 + x7622;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7672 = x7650 + x7623;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7673 = x7650 + x7624;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7674 = x7650 + x7627;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x7675 = x602 - x7674;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x7676 = x7601 + x7675 * poly_mix[38];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x7677 = x602 + x255;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x7678 = x7677 * x7677;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x7679 = x7678 * x7678;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x7680 = x895 - x7679;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x7681 = x7676 + x7680 * poly_mix[39];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7682 = x7651 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7683 = x7652 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7684 = x7653 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7685 = x7654 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7686 = x7655 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7687 = x7656 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7688 = x7657 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7689 = x7658 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7690 = x7659 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7691 = x7660 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7692 = x7661 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7693 = x7662 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7694 = x7663 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7695 = x7664 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7696 = x7665 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7697 = x7666 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7698 = x7667 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7699 = x7668 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7700 = x7669 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7701 = x7670 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7702 = x7671 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7703 = x7672 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7704 = x7673 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7705 = x895 * x7678;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7706 = x7705 * x7677;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7707 = x7706 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7708 = x7706 + x7665;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7709 = x7708 + x7666;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7710 = x7709 + x7667;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7711 = x7710 + x7668;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7712 = x7711 + x7669;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7713 = x7712 + x7670;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7714 = x7713 + x7671;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7715 = x7714 + x7672;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7716 = x7715 + x7673;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7717 = x7716 + x7651;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7718 = x7717 + x7652;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7719 = x7718 + x7653;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7720 = x7719 + x7654;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7721 = x7720 + x7655;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7722 = x7721 + x7656;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7723 = x7722 + x7657;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7724 = x7723 + x7658;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7725 = x7724 + x7659;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7726 = x7725 + x7660;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7727 = x7726 + x7661;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7728 = x7727 + x7662;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7729 = x7728 + x7663;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7730 = x7729 + x7664;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7731 = x7730 + x7682;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7732 = x7730 + x7683;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7733 = x7730 + x7684;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7734 = x7730 + x7685;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7735 = x7730 + x7686;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7736 = x7730 + x7687;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7737 = x7730 + x7688;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7738 = x7730 + x7689;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7739 = x7730 + x7690;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7740 = x7730 + x7691;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7741 = x7730 + x7692;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7742 = x7730 + x7693;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7743 = x7730 + x7694;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7744 = x7730 + x7695;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7745 = x7730 + x7696;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7746 = x7730 + x7697;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7747 = x7730 + x7698;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7748 = x7730 + x7699;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7749 = x7730 + x7700;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7750 = x7730 + x7701;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7751 = x7730 + x7702;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7752 = x7730 + x7703;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7753 = x7730 + x7704;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7754 = x7730 + x7707;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x7755 = x604 - x7754;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x7756 = x7681 + x7755 * poly_mix[40];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":296:13)
  auto x7757 = x604 + x256;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":159:13)
  auto x7758 = x7757 * x7757;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":160:13)
  auto x7759 = x7758 * x7758;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  auto x7760 = x898 - x7759;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":161:3)
  FpExt x7761 = x7756 + x7760 * poly_mix[41];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7762 = x7731 * x217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7763 = x7732 * x214;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7764 = x7733 * x219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7765 = x7734 * x236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7766 = x7735 * x213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7767 = x7736 * x222;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7768 = x7737 * x234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7769 = x7738 * x227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7770 = x7739 * x220;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7771 = x7740 * x233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7772 = x7741 * x226;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7773 = x7742 * x231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7774 = x7743 * x218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7775 = x7744 * x235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7776 = x7745 * x229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7777 = x7746 * x216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7778 = x7747 * x223;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7779 = x7748 * x232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7780 = x7749 * x230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7781 = x7750 * x224;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7782 = x7751 * x225;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7783 = x7752 * x221;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7784 = x7753 * x228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7785 = x898 * x7758;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":163:13)
  auto x7786 = x7785 * x7757;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:20)
  auto x7787 = x7786 * x215;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7788 = x7786 + x7745;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7789 = x7788 + x7746;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7790 = x7789 + x7747;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7791 = x7790 + x7748;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7792 = x7791 + x7749;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7793 = x7792 + x7750;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7794 = x7793 + x7751;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7795 = x7794 + x7752;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7796 = x7795 + x7753;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7797 = x7796 + x7731;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7798 = x7797 + x7732;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7799 = x7798 + x7733;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7800 = x7799 + x7734;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7801 = x7800 + x7735;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7802 = x7801 + x7736;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7803 = x7802 + x7737;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7804 = x7803 + x7738;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7805 = x7804 + x7739;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7806 = x7805 + x7740;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7807 = x7806 + x7741;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7808 = x7807 + x7742;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7809 = x7808 + x7743;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":150:11)
  auto x7810 = x7809 + x7744;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7811 = x7810 + x7787;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7812 = x7810 + x7762;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7813 = x7810 + x7763;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7814 = x7810 + x7764;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7815 = x7810 + x7765;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7816 = x7810 + x7766;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7817 = x7810 + x7767;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7818 = x7810 + x7768;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7819 = x7810 + x7769;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7820 = x7810 + x7770;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7821 = x7810 + x7771;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7822 = x7810 + x7772;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7823 = x7810 + x7773;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7824 = x7810 + x7774;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7825 = x7810 + x7775;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7826 = x7810 + x7776;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7827 = x7810 + x7777;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7828 = x7810 + x7778;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7829 = x7810 + x7779;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7830 = x7810 + x7780;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7831 = x7810 + x7781;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7832 = x7810 + x7782;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7833 = x7810 + x7783;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":153:14)
  auto x7834 = x7810 + x7784;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  auto x7835 = x606 - x7811;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":301:5)
  FpExt x7836 = x7761 + x7835 * poly_mix[42];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7837 = x7811 + x257;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7838 = x318 - x7837;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7839 = x7836 + x7838 * poly_mix[43];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7840 = x7826 + x258;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7841 = x289 - x7840;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7842 = x7839 + x7841 * poly_mix[44];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7843 = x7827 + x259;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7844 = x290 - x7843;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7845 = x7842 + x7844 * poly_mix[45];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7846 = x7828 + x260;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7847 = x291 - x7846;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7848 = x7845 + x7847 * poly_mix[46];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7849 = x7829 + x261;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7850 = x292 - x7849;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7851 = x7848 + x7850 * poly_mix[47];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7852 = x7830 + x262;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7853 = x293 - x7852;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7854 = x7851 + x7853 * poly_mix[48];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7855 = x7831 + x263;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7856 = x294 - x7855;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7857 = x7854 + x7856 * poly_mix[49];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7858 = x7832 + x264;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7859 = x295 - x7858;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7860 = x7857 + x7859 * poly_mix[50];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7861 = x7833 + x265;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7862 = x296 - x7861;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7863 = x7860 + x7862 * poly_mix[51];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7864 = x7834 + x266;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7865 = x297 - x7864;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7866 = x7863 + x7865 * poly_mix[52];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7867 = x7812 + x267;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7868 = x288 - x7867;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7869 = x7866 + x7868 * poly_mix[53];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7870 = x7813 + x268;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7871 = x476 - x7870;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7872 = x7869 + x7871 * poly_mix[54];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7873 = x7814 + x269;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7874 = x590 - x7873;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7875 = x7872 + x7874 * poly_mix[55];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7876 = x7815 + x270;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7877 = x560 - x7876;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7878 = x7875 + x7877 * poly_mix[56];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7879 = x7816 + x271;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7880 = x561 - x7879;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7881 = x7878 + x7880 * poly_mix[57];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7882 = x7817 + x272;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7883 = x562 - x7882;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7884 = x7881 + x7883 * poly_mix[58];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7885 = x7818 + x273;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7886 = x563 - x7885;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7887 = x7884 + x7886 * poly_mix[59];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7888 = x7819 + x274;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7889 = x564 - x7888;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7890 = x7887 + x7889 * poly_mix[60];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7891 = x7820 + x275;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7892 = x565 - x7891;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7893 = x7890 + x7892 * poly_mix[61];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7894 = x7821 + x276;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7895 = x566 - x7894;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7896 = x7893 + x7895 * poly_mix[62];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7897 = x7822 + x277;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7898 = x567 - x7897;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7899 = x7896 + x7898 * poly_mix[63];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7900 = x7823 + x278;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7901 = x568 - x7900;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7902 = x7899 + x7901 * poly_mix[64];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7903 = x7824 + x279;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7904 = x569 - x7903;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7905 = x7902 + x7904 * poly_mix[65];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":333:13)
  auto x7906 = x7825 + x280;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  auto x7907 = x748 - x7906;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":334:5)
  FpExt x7908 = x7905 + x7907 * poly_mix[66];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x7909 = x6153 + x6154 * x7908 * poly_mix[137];
  // loc("top(recursion::Top)/code(recursion::Code)/select(OneHot)/poseidon2_store(Reg)"("./zirgen/components/mux.h":49:25))
  auto x7910 = args[0][6 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7911 = x559 * x2450;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7912 = x559 * x2451;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7913 = x559 * x5241;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7914 = x559 * x5242;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7915 = x559 * x5243;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7916 = x559 * x5244;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7917 = x559 * x5245;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7918 = x559 * x5246;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":356:13)
  auto x7919 = x286 * x42;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7920 = x591 * x5227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7921 = x591 * x5228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7922 = x591 * x5229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7923 = x591 * x5230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7924 = x591 * x5231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7925 = x591 * x5232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7926 = x591 * x5247;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7927 = x591 * x5248;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7928 = x593 * x5233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7929 = x593 * x5234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7930 = x593 * x5235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7931 = x593 * x5236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7932 = x593 * x5237;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7933 = x593 * x5238;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7934 = x593 * x5239;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:39)
  auto x7935 = x593 * x5240;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":356:13)
  auto x7936 = x7919 + x4814;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7937 = x7911 + x7926;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7938 = x7912 + x7927;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7939 = x7913 + x7920;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7940 = x7914 + x7921;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7941 = x7915 + x7922;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7942 = x7916 + x7923;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7943 = x7917 + x7924;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7944 = x7918 + x7925;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7945 = x7937 + x7928;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7946 = x7938 + x7929;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7947 = x7939 + x7930;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7948 = x7940 + x7931;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7949 = x7941 + x7932;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7950 = x7942 + x7933;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7951 = x7943 + x7934;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":354:22)
  auto x7952 = x7944 + x7935;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":358:37)
  auto x7953 = x7945 * x7936;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x7954 = x322 - x287;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x7955 = x284 + x7954 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x7956 = x324 - x7953;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7957 = x7955 + x7956 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7958 = x7957 + x326 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7959 = x7958 + x328 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7960 = x7959 + x330 * poly_mix[4];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":358:37)
  auto x7961 = x7946 * x7936;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x7962 = x332 - x558;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x7963 = x7960 + x7962 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x7964 = x334 - x7961;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7965 = x7963 + x7964 * poly_mix[6];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7966 = x7965 + x336 * poly_mix[7];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7967 = x7966 + x338 * poly_mix[8];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7968 = x7967 + x340 * poly_mix[9];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":358:37)
  auto x7969 = x7947 * x7936;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x7970 = x342 - x830;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x7971 = x7968 + x7970 * poly_mix[10];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x7972 = x345 - x7969;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7973 = x7971 + x7972 * poly_mix[11];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7974 = x7973 + x348 * poly_mix[12];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7975 = x7974 + x351 * poly_mix[13];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7976 = x7975 + x354 * poly_mix[14];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":358:37)
  auto x7977 = x7948 * x7936;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":358:21)
  auto x7978 = x287 + x3;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x7979 = x594 - x7978;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x7980 = x7976 + x7979 * poly_mix[15];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x7981 = x596 - x7977;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7982 = x7980 + x7981 * poly_mix[16];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7983 = x7982 + x598 * poly_mix[17];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7984 = x7983 + x600 * poly_mix[18];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7985 = x7984 + x602 * poly_mix[19];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":358:37)
  auto x7986 = x7949 * x7936;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":358:21)
  auto x7987 = x287 + x4;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x7988 = x604 - x7987;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x7989 = x7985 + x7988 * poly_mix[20];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x7990 = x606 - x7986;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7991 = x7989 + x7990 * poly_mix[21];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7992 = x7991 + x608 * poly_mix[22];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7993 = x7992 + x610 * poly_mix[23];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x7994 = x7993 + x612 * poly_mix[24];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":358:37)
  auto x7995 = x7950 * x7936;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":358:21)
  auto x7996 = x287 + x5;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x7997 = x614 - x7996;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x7998 = x7994 + x7997 * poly_mix[25];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x7999 = x617 - x7995;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x8000 = x7998 + x7999 * poly_mix[26];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x8001 = x8000 + x620 * poly_mix[27];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x8002 = x8001 + x623 * poly_mix[28];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x8003 = x8002 + x626 * poly_mix[29];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":358:37)
  auto x8004 = x7951 * x7936;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":358:21)
  auto x8005 = x287 + x6;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x8006 = x866 - x8005;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x8007 = x8003 + x8006 * poly_mix[30];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x8008 = x868 - x8004;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x8009 = x8007 + x8008 * poly_mix[31];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x8010 = x8009 + x870 * poly_mix[32];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x8011 = x8010 + x872 * poly_mix[33];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x8012 = x8011 + x874 * poly_mix[34];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":358:37)
  auto x8013 = x7952 * x7936;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":358:21)
  auto x8014 = x287 + x7;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x8015 = x876 - x8014;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x8016 = x8012 + x8015 * poly_mix[35];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x8017 = x878 - x8013;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x8018 = x8016 + x8017 * poly_mix[36];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x8019 = x8018 + x880 * poly_mix[37];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x8020 = x8019 + x882 * poly_mix[38];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x8021 = x8020 + x884 * poly_mix[39];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8022 = x318 - x2450;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8023 = x8021 + x8022 * poly_mix[40];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8024 = x289 - x2451;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8025 = x8023 + x8024 * poly_mix[41];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8026 = x290 - x5241;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8027 = x8025 + x8026 * poly_mix[42];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8028 = x291 - x5242;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8029 = x8027 + x8028 * poly_mix[43];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8030 = x292 - x5243;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8031 = x8029 + x8030 * poly_mix[44];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8032 = x293 - x5244;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8033 = x8031 + x8032 * poly_mix[45];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8034 = x294 - x5245;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8035 = x8033 + x8034 * poly_mix[46];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8036 = x295 - x5246;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8037 = x8035 + x8036 * poly_mix[47];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8038 = x296 - x5247;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8039 = x8037 + x8038 * poly_mix[48];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8040 = x297 - x5248;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8041 = x8039 + x8040 * poly_mix[49];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8042 = x288 - x5227;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8043 = x8041 + x8042 * poly_mix[50];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8044 = x476 - x5228;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8045 = x8043 + x8044 * poly_mix[51];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8046 = x590 - x5229;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8047 = x8045 + x8046 * poly_mix[52];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8048 = x560 - x5230;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8049 = x8047 + x8048 * poly_mix[53];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8050 = x561 - x5231;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8051 = x8049 + x8050 * poly_mix[54];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8052 = x562 - x5232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8053 = x8051 + x8052 * poly_mix[55];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8054 = x563 - x5233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8055 = x8053 + x8054 * poly_mix[56];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8056 = x564 - x5234;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8057 = x8055 + x8056 * poly_mix[57];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8058 = x565 - x5235;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8059 = x8057 + x8058 * poly_mix[58];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8060 = x566 - x5236;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8061 = x8059 + x8060 * poly_mix[59];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8062 = x567 - x5237;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8063 = x8061 + x8062 * poly_mix[60];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8064 = x568 - x5238;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8065 = x8063 + x8064 * poly_mix[61];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8066 = x569 - x5239;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8067 = x8065 + x8066 * poly_mix[62];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  auto x8068 = x748 - x5240;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":361:5)
  FpExt x8069 = x8067 + x8068 * poly_mix[63];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x8070 = x7909 + x7910 * x8069 * poly_mix[138];
  // loc("top(recursion::Top)/code(recursion::Code)/select(OneHot)/checked_bytes(Reg)"("./zirgen/components/mux.h":49:25))
  auto x8071 = args[0][7 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  auto x8072 = x322 - x286;
  // loc("zirgen/circuit/recursion/wom.cpp":82:3)
  FpExt x8073 = x284 + x8072 * poly_mix[0];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8074 = x862 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8075 = x862 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8076 = x862 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8077 = x862 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8078 = x832 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8079 = x833 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8080 = x834 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8081 = x324 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8082 = x324 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8083 = x324 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8084 = x324 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8085 = x326 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8086 = x328 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8087 = x330 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8088 = x832 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8089 = x832 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8090 = x833 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8091 = x326 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8092 = x326 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8093 = x326 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8094 = x328 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8095 = x328 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8096 = x328 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8097 = x330 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8098 = x330 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8099 = x330 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8100 = x8080 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8101 = x8087 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8102 = x8075 + x8075;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8103 = x8076 + x8088;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8104 = x8077 + x8089;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8105 = x8078 + x8090;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8106 = x8079 + x8079;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8107 = x8082 + x8091;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8108 = x8083 + x8092;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8109 = x8084 + x8093;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8110 = x8085 + x8096;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8111 = x8086 + x8099;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8112 = x8106 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8113 = x8111 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8114 = x8103 + x8076;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8115 = x8104 + x8089;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8116 = x8105 + x8078;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8117 = x8108 + x8094;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8118 = x8109 + x8095;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8119 = x8110 + x8098;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8120 = x8114 + x8100;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8121 = x8115 + x8077;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8122 = x8102 + x8112;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8123 = x8117 + x8101;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8124 = x8118 + x8097;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8125 = x8107 + x8113;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8126 = x8116 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8127 = x8119 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":40:13)
  auto x8128 = x8074 + x8126;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":39:12)
  auto x8129 = x8081 + x8127;
  // loc("zirgen/components/fpext.cpp":28:5)
  auto x8130 = x835 - x8128;
  // loc("zirgen/components/fpext.cpp":28:5)
  FpExt x8131 = x8073 + x8130 * poly_mix[1];
  // loc("zirgen/components/fpext.cpp":28:5)
  auto x8132 = x836 - x8122;
  // loc("zirgen/components/fpext.cpp":28:5)
  FpExt x8133 = x8131 + x8132 * poly_mix[2];
  // loc("zirgen/components/fpext.cpp":28:5)
  auto x8134 = x837 - x8120;
  // loc("zirgen/components/fpext.cpp":28:5)
  FpExt x8135 = x8133 + x8134 * poly_mix[3];
  // loc("zirgen/components/fpext.cpp":28:5)
  auto x8136 = x838 - x8121;
  // loc("zirgen/components/fpext.cpp":28:5)
  FpExt x8137 = x8135 + x8136 * poly_mix[4];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8138 = x835 * x835;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8139 = x835 * x836;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8140 = x835 * x837;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8141 = x835 * x838;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8142 = x835 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8143 = x835 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8144 = x835 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8145 = x835 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8146 = x835 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8147 = x835 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8148 = x835 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8149 = x835 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8150 = x836 * x838;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8151 = x836 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8152 = x836 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8153 = x837 * x838;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8154 = x837 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8155 = x837 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8156 = x838 * x838;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8157 = x838 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8158 = x838 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8159 = x836 * x836;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8160 = x836 * x837;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8161 = x836 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8162 = x836 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8163 = x836 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8164 = x836 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8165 = x836 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8166 = x836 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8167 = x837 * x837;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8168 = x837 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8169 = x837 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8170 = x837 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8171 = x837 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8172 = x837 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8173 = x837 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8174 = x838 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8175 = x838 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8176 = x838 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8177 = x838 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8178 = x838 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8179 = x838 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8180 = x8156 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8181 = x8157 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8182 = x8158 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8183 = x8139 + x8139;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8184 = x8140 + x8159;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8185 = x8141 + x8160;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8186 = x8143 + x8161;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8187 = x8144 + x8162;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8188 = x8145 + x8163;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8189 = x8147 + x8164;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8190 = x8148 + x8165;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8191 = x8149 + x8166;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8192 = x8150 + x8167;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8193 = x8151 + x8170;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8194 = x8152 + x8173;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8195 = x8153 + x8153;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8196 = x8154 + x8176;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8197 = x8155 + x8179;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8198 = x8195 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8199 = x8196 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8200 = x8197 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8201 = x8183 + x8198;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8202 = x8184 + x8140;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8203 = x8185 + x8160;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8204 = x8186 + x8199;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8205 = x8187 + x8168;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8206 = x8188 + x8169;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8207 = x8190 + x8171;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8208 = x8191 + x8172;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8209 = x8192 + x8150;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8210 = x8193 + x8175;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8211 = x8194 + x8178;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8212 = x8202 + x8180;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8213 = x8203 + x8141;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8214 = x8205 + x8181;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8215 = x8206 + x8174;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8216 = x8207 + x8182;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8217 = x8208 + x8177;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8218 = x8189 + x8200;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8219 = x8201 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8220 = x8201 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8221 = x8204 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8222 = x8201 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8223 = x8201 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8224 = x8201 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8225 = x8201 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8226 = x8201 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8227 = x8201 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8228 = x8204 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8229 = x8204 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8230 = x8204 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":45:12)
  auto x8231 = x8209 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":43:12)
  auto x8232 = x8210 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8233 = x8211 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8234 = x8138 + x8231;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8235 = x8142 + x8232;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":42:12)
  auto x8236 = x8146 + x8233;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8237 = x8212 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8238 = x8212 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8239 = x8213 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8240 = x8213 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8241 = x8214 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8242 = x8215 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8243 = x8234 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8244 = x8234 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8245 = x8234 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8246 = x8234 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8247 = x8234 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8248 = x8234 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8249 = x8234 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8250 = x8234 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8251 = x8235 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8252 = x8235 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8253 = x8235 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8254 = x8235 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8255 = x8212 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8256 = x8212 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8257 = x8212 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8258 = x8212 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8259 = x8212 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8260 = x8212 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8261 = x8213 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8262 = x8213 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8263 = x8213 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8264 = x8213 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8265 = x8213 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8266 = x8213 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8267 = x8214 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8268 = x8214 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8269 = x8214 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8270 = x8215 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8271 = x8215 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8272 = x8215 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8273 = x8239 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8274 = x8240 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8275 = x8242 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8276 = x8237 + x8263;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8277 = x8238 + x8266;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8278 = x8241 + x8272;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8279 = x8219 + x8257;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8280 = x8220 + x8260;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8281 = x8221 + x8269;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8282 = x8244 + x8222;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8283 = x8245 + x8223;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8284 = x8246 + x8224;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8285 = x8248 + x8225;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8286 = x8249 + x8226;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8287 = x8250 + x8227;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8288 = x8252 + x8228;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8289 = x8253 + x8229;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8290 = x8254 + x8230;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8291 = x8276 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8292 = x8277 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8293 = x8278 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8294 = x8279 + x8262;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8295 = x8280 + x8265;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8296 = x8281 + x8271;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8297 = x8283 + x8255;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8298 = x8284 + x8256;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8299 = x8286 + x8258;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8300 = x8287 + x8259;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8301 = x8289 + x8267;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8302 = x8290 + x8268;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8303 = x8297 + x8273;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8304 = x8298 + x8261;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8305 = x8299 + x8274;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8306 = x8300 + x8264;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8307 = x8301 + x8275;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8308 = x8302 + x8270;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8309 = x8282 + x8291;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8310 = x8285 + x8292;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8311 = x8288 + x8293;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8312 = x8294 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8313 = x8295 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8314 = x8296 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":47:14)
  auto x8315 = x8243 + x8312;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":46:12)
  auto x8316 = x8247 + x8313;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":44:12)
  auto x8317 = x8251 + x8314;
  // loc("zirgen/components/fpext.cpp":28:5)
  auto x8318 = x839 - x8315;
  // loc("zirgen/components/fpext.cpp":28:5)
  FpExt x8319 = x8137 + x8318 * poly_mix[5];
  // loc("zirgen/components/fpext.cpp":28:5)
  auto x8320 = x840 - x8309;
  // loc("zirgen/components/fpext.cpp":28:5)
  FpExt x8321 = x8319 + x8320 * poly_mix[6];
  // loc("zirgen/components/fpext.cpp":28:5)
  auto x8322 = x841 - x8303;
  // loc("zirgen/components/fpext.cpp":28:5)
  FpExt x8323 = x8321 + x8322 * poly_mix[7];
  // loc("zirgen/components/fpext.cpp":28:5)
  auto x8324 = x1020 - x8304;
  // loc("zirgen/components/fpext.cpp":28:5)
  FpExt x8325 = x8323 + x8324 * poly_mix[8];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8326 = x839 * x8123;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8327 = x839 * x8124;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8328 = x839 * x8125;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8329 = x839 * x8129;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8330 = x839 * x835;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8331 = x839 * x836;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8332 = x839 * x837;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8333 = x839 * x838;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8334 = x839 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8335 = x839 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8336 = x839 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8337 = x839 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8338 = x839 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8339 = x839 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8340 = x839 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8341 = x839 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8342 = x840 * x8124;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8343 = x840 * x838;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8344 = x840 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8345 = x840 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8346 = x841 * x8124;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8347 = x841 * x838;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8348 = x841 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8349 = x841 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8350 = x1020 * x8124;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8351 = x1020 * x838;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8352 = x1020 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8353 = x1020 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8354 = x840 * x8123;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8355 = x840 * x8125;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8356 = x840 * x8129;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8357 = x840 * x835;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8358 = x840 * x836;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8359 = x840 * x837;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8360 = x840 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8361 = x840 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8362 = x840 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8363 = x840 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8364 = x840 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8365 = x840 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8366 = x841 * x8123;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8367 = x841 * x8125;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8368 = x841 * x8129;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8369 = x841 * x835;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8370 = x841 * x836;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8371 = x841 * x837;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8372 = x841 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8373 = x841 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8374 = x841 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8375 = x841 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8376 = x841 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8377 = x841 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8378 = x1020 * x8123;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8379 = x1020 * x8125;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8380 = x1020 * x8129;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8381 = x1020 * x835;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8382 = x1020 * x836;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8383 = x1020 * x837;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8384 = x1020 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8385 = x1020 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8386 = x1020 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8387 = x1020 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8388 = x1020 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8389 = x1020 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8390 = x8350 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8391 = x8351 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8392 = x8352 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8393 = x8353 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8394 = x8326 + x8355;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8395 = x8327 + x8354;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8396 = x8328 + x8356;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8397 = x8331 + x8357;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8398 = x8332 + x8358;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8399 = x8333 + x8359;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8400 = x8335 + x8360;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8401 = x8336 + x8361;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8402 = x8337 + x8362;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8403 = x8339 + x8363;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8404 = x8340 + x8364;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8405 = x8341 + x8365;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8406 = x8342 + x8366;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8407 = x8343 + x8371;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8408 = x8344 + x8374;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8409 = x8345 + x8377;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8410 = x8346 + x8378;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8411 = x8347 + x8383;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8412 = x8348 + x8386;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8413 = x8349 + x8389;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8414 = x8410 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8415 = x8411 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8416 = x8412 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8417 = x8413 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8418 = x8394 + x8368;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8419 = x8395 + x8367;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8420 = x8397 + x8415;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8421 = x8398 + x8369;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8422 = x8399 + x8370;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8423 = x8401 + x8372;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8424 = x8402 + x8373;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8425 = x8404 + x8375;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8426 = x8405 + x8376;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8427 = x8406 + x8379;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8428 = x8407 + x8382;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8429 = x8408 + x8385;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8430 = x8409 + x8388;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8431 = x8418 + x8390;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8432 = x8419 + x8380;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8433 = x8421 + x8391;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8434 = x8422 + x8381;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8435 = x8423 + x8392;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8436 = x8424 + x8384;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8437 = x8425 + x8393;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8438 = x8426 + x8387;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8439 = x8396 + x8414;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8440 = x8400 + x8416;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8441 = x8403 + x8417;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8442 = x8420 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8443 = x8420 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8444 = x8420 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8445 = x8420 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8446 = x8427 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":52:13)
  auto x8447 = x8428 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8448 = x8429 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8449 = x8430 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8450 = x8330 + x8447;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":51:13)
  auto x8451 = x8329 + x8446;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":50:13)
  auto x8452 = x8334 + x8448;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":49:13)
  auto x8453 = x8338 + x8449;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8454 = x8433 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8455 = x8434 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8456 = x8450 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8457 = x8450 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8458 = x8450 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8459 = x8450 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8460 = x8433 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8461 = x8433 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8462 = x8433 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8463 = x8434 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8464 = x8434 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8465 = x8434 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8466 = x8455 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8467 = x8454 + x8465;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8468 = x8442 + x8462;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8469 = x8457 + x8443;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8470 = x8458 + x8444;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8471 = x8459 + x8445;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8472 = x8467 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8473 = x8468 + x8464;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8474 = x8470 + x8460;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8475 = x8471 + x8461;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8476 = x8474 + x8466;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8477 = x8475 + x8463;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8478 = x8469 + x8472;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8479 = x8473 * x11;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":53:13)
  auto x8480 = x8456 + x8479;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x8481 = x594 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x8482 = x594 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x8483 = x594 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8484 = x594 * x8481;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8485 = x8484 * x8482;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8486 = x8485 * x8483;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x8487 = x8325 + x8486 * poly_mix[9];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x8488 = x868 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x8489 = x868 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x8490 = x868 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8491 = x868 * x8489;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8492 = x8491 * x8490;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8493 = x8492 * x8488;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x8494 = x8487 + x8493 * poly_mix[10];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x8495 = x1168 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x8496 = x1168 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x8497 = x1168 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8498 = x1168 * x8495;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8499 = x8498 * x8496;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8500 = x8499 * x8497;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x8501 = x8494 + x8500 * poly_mix[11];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x8502 = x1240 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x8503 = x1240 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x8504 = x1240 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8505 = x1240 * x8504;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8506 = x8505 * x8502;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8507 = x8506 * x8503;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x8508 = x8501 + x8507 * poly_mix[12];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8509 = x594 + x868;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8510 = x8509 + x1168;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8511 = x8510 + x1240;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8512 = x319 * x19;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8513 = x8512 * x4855;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x8514 = x596 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x8515 = x596 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x8516 = x596 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8517 = x8513 + x8511;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8518 = x596 * x8514;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8519 = x8518 * x8515;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8520 = x8519 * x8516;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x8521 = x8508 + x8520 * poly_mix[13];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x8522 = x870 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x8523 = x870 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x8524 = x870 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8525 = x870 * x8523;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8526 = x8525 * x8524;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8527 = x8526 * x8522;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x8528 = x8521 + x8527 * poly_mix[14];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x8529 = x1169 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x8530 = x1169 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x8531 = x1169 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8532 = x1169 * x8529;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8533 = x8532 * x8530;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8534 = x8533 * x8531;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x8535 = x8528 + x8534 * poly_mix[15];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x8536 = x1241 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x8537 = x1241 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x8538 = x1241 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8539 = x1241 * x8538;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8540 = x8539 * x8536;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8541 = x8540 * x8537;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x8542 = x8535 + x8541 * poly_mix[16];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8543 = x596 + x870;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8544 = x8543 + x1169;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8545 = x8544 + x1241;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8546 = x8545 * x324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8547 = x8545 * x326;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8548 = x8545 * x328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8549 = x8545 * x330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8550 = x8512 * x4856;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x8551 = x598 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x8552 = x598 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x8553 = x598 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8554 = x8550 + x8545;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8555 = x598 * x8551;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8556 = x8555 * x8552;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8557 = x8556 * x8553;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8558 = x8511 + x8546;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x8559 = x8542 + x8557 * poly_mix[17];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x8560 = x872 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x8561 = x872 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x8562 = x872 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8563 = x872 * x8561;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8564 = x8563 * x8562;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8565 = x8564 * x8560;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x8566 = x8559 + x8565 * poly_mix[18];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x8567 = x1177 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x8568 = x1177 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x8569 = x1177 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8570 = x1177 * x8567;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8571 = x8570 * x8568;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8572 = x8571 * x8569;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x8573 = x8566 + x8572 * poly_mix[19];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x8574 = x1249 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x8575 = x1249 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x8576 = x1249 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8577 = x1249 * x8576;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8578 = x8577 * x8574;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8579 = x8578 * x8575;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x8580 = x8573 + x8579 * poly_mix[20];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8581 = x598 + x872;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8582 = x8581 + x1177;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8583 = x8582 + x1249;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8584 = x8583 * x862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8585 = x8583 * x832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8586 = x8583 * x833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8587 = x8583 * x834;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8588 = x8512 * x4857;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x8589 = x600 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x8590 = x600 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x8591 = x600 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8592 = x8588 + x8583;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8593 = x600 * x8589;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8594 = x8593 * x8590;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8595 = x8594 * x8591;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8596 = x8547 + x8585;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8597 = x8548 + x8586;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8598 = x8549 + x8587;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8599 = x8558 + x8584;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x8600 = x8580 + x8595 * poly_mix[21];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x8601 = x874 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x8602 = x874 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x8603 = x874 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8604 = x874 * x8602;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8605 = x8604 * x8603;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8606 = x8605 * x8601;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x8607 = x8600 + x8606 * poly_mix[22];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x8608 = x1178 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x8609 = x1178 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x8610 = x1178 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8611 = x1178 * x8608;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8612 = x8611 * x8609;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8613 = x8612 * x8610;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x8614 = x8607 + x8613 * poly_mix[23];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x8615 = x1250 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x8616 = x1250 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x8617 = x1250 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8618 = x1250 * x8617;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8619 = x8618 * x8615;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8620 = x8619 * x8616;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x8621 = x8614 + x8620 * poly_mix[24];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8622 = x600 + x874;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8623 = x8622 + x1178;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8624 = x8623 + x1250;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8625 = x8624 * x8123;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8626 = x8624 * x8124;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8627 = x8624 * x8125;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8628 = x8624 * x8129;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8629 = x8512 * x4858;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x8630 = x602 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x8631 = x602 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x8632 = x602 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8633 = x8629 + x8624;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8634 = x602 * x8630;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8635 = x8634 * x8631;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8636 = x8635 * x8632;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8637 = x8596 + x8627;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8638 = x8597 + x8625;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8639 = x8598 + x8626;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8640 = x8599 + x8628;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x8641 = x8621 + x8636 * poly_mix[25];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x8642 = x876 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x8643 = x876 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x8644 = x876 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8645 = x876 * x8643;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8646 = x8645 * x8644;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8647 = x8646 * x8642;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x8648 = x8641 + x8647 * poly_mix[26];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x8649 = x1186 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x8650 = x1186 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x8651 = x1186 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8652 = x1186 * x8649;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8653 = x8652 * x8650;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8654 = x8653 * x8651;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x8655 = x8648 + x8654 * poly_mix[27];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x8656 = x1258 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x8657 = x1258 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x8658 = x1258 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8659 = x1258 * x8658;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8660 = x8659 * x8656;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8661 = x8660 * x8657;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x8662 = x8655 + x8661 * poly_mix[28];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8663 = x602 + x876;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8664 = x8663 + x1186;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8665 = x8664 + x1258;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8666 = x8665 * x835;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8667 = x8665 * x836;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8668 = x8665 * x837;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8669 = x8665 * x838;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8670 = x8512 * x4859;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x8671 = x604 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x8672 = x604 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x8673 = x604 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8674 = x8670 + x8665;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8675 = x604 * x8671;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8676 = x8675 * x8672;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8677 = x8676 * x8673;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8678 = x8637 + x8667;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8679 = x8638 + x8668;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8680 = x8639 + x8669;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8681 = x8640 + x8666;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x8682 = x8662 + x8677 * poly_mix[29];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x8683 = x878 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x8684 = x878 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x8685 = x878 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8686 = x878 * x8684;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8687 = x8686 * x8685;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8688 = x8687 * x8683;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x8689 = x8682 + x8688 * poly_mix[30];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x8690 = x1187 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x8691 = x1187 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x8692 = x1187 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8693 = x1187 * x8690;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8694 = x8693 * x8691;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8695 = x8694 * x8692;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x8696 = x8689 + x8695 * poly_mix[31];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x8697 = x1259 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x8698 = x1259 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x8699 = x1259 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8700 = x1259 * x8699;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8701 = x8700 * x8697;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8702 = x8701 * x8698;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x8703 = x8696 + x8702 * poly_mix[32];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8704 = x604 + x878;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8705 = x8704 + x1187;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8706 = x8705 + x1259;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8707 = x8706 * x8216;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8708 = x8706 * x8217;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8709 = x8706 * x8218;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8710 = x8706 * x8236;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8711 = x8512 * x4860;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x8712 = x606 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x8713 = x606 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x8714 = x606 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8715 = x8711 + x8706;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8716 = x606 * x8712;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8717 = x8716 * x8713;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8718 = x8717 * x8714;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8719 = x8678 + x8709;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8720 = x8679 + x8707;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8721 = x8680 + x8708;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8722 = x8681 + x8710;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x8723 = x8703 + x8718 * poly_mix[33];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x8724 = x880 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x8725 = x880 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x8726 = x880 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8727 = x880 * x8725;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8728 = x8727 * x8726;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8729 = x8728 * x8724;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x8730 = x8723 + x8729 * poly_mix[34];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x8731 = x1195 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x8732 = x1195 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x8733 = x1195 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8734 = x1195 * x8731;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8735 = x8734 * x8732;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8736 = x8735 * x8733;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x8737 = x8730 + x8736 * poly_mix[35];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x8738 = x1267 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x8739 = x1267 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x8740 = x1267 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8741 = x1267 * x8740;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8742 = x8741 * x8738;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8743 = x8742 * x8739;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x8744 = x8737 + x8743 * poly_mix[36];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8745 = x606 + x880;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8746 = x8745 + x1195;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8747 = x8746 + x1267;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8748 = x8747 * x8214;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8749 = x8747 * x8215;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8750 = x8747 * x8204;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8751 = x8747 * x8235;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8752 = x8512 * x4861;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x8753 = x608 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x8754 = x608 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x8755 = x608 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8756 = x8752 + x8747;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8757 = x608 * x8753;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8758 = x8757 * x8754;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8759 = x8758 * x8755;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8760 = x8719 + x8750;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8761 = x8720 + x8748;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8762 = x8721 + x8749;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8763 = x8722 + x8751;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x8764 = x8744 + x8759 * poly_mix[37];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x8765 = x882 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x8766 = x882 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x8767 = x882 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8768 = x882 * x8766;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8769 = x8768 * x8767;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8770 = x8769 * x8765;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x8771 = x8764 + x8770 * poly_mix[38];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x8772 = x1196 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x8773 = x1196 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x8774 = x1196 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8775 = x1196 * x8772;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8776 = x8775 * x8773;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8777 = x8776 * x8774;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x8778 = x8771 + x8777 * poly_mix[39];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x8779 = x1268 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x8780 = x1268 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x8781 = x1268 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8782 = x1268 * x8781;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8783 = x8782 * x8779;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8784 = x8783 * x8780;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x8785 = x8778 + x8784 * poly_mix[40];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8786 = x608 + x882;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8787 = x8786 + x1196;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8788 = x8787 + x1268;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8789 = x8788 * x8307;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8790 = x8788 * x8308;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8791 = x8788 * x8311;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8792 = x8788 * x8317;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8793 = x8512 * x4862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x8794 = x610 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x8795 = x610 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x8796 = x610 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8797 = x8793 + x8788;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8798 = x610 * x8794;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8799 = x8798 * x8795;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8800 = x8799 * x8796;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8801 = x8760 + x8791;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8802 = x8761 + x8789;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8803 = x8762 + x8790;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8804 = x8763 + x8792;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x8805 = x8785 + x8800 * poly_mix[41];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x8806 = x884 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x8807 = x884 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x8808 = x884 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8809 = x884 * x8807;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8810 = x8809 * x8808;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8811 = x8810 * x8806;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x8812 = x8805 + x8811 * poly_mix[42];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x8813 = x1204 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x8814 = x1204 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x8815 = x1204 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8816 = x1204 * x8813;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8817 = x8816 * x8814;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8818 = x8817 * x8815;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x8819 = x8812 + x8818 * poly_mix[43];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x8820 = x1276 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x8821 = x1276 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x8822 = x1276 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8823 = x1276 * x8822;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8824 = x8823 * x8820;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8825 = x8824 * x8821;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x8826 = x8819 + x8825 * poly_mix[44];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8827 = x610 + x884;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8828 = x8827 + x1204;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8829 = x8828 + x1276;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8830 = x8829 * x8212;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8831 = x8829 * x8213;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8832 = x8829 * x8201;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8833 = x8829 * x8234;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8834 = x8512 * x4863;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x8835 = x612 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x8836 = x612 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x8837 = x612 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8838 = x8834 + x8829;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8839 = x612 * x8835;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8840 = x8839 * x8836;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8841 = x8840 * x8837;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8842 = x8801 + x8832;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8843 = x8802 + x8830;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8844 = x8803 + x8831;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8845 = x8804 + x8833;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x8846 = x8826 + x8841 * poly_mix[45];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x8847 = x886 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x8848 = x886 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x8849 = x886 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8850 = x886 * x8848;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8851 = x8850 * x8849;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8852 = x8851 * x8847;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x8853 = x8846 + x8852 * poly_mix[46];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x8854 = x1205 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x8855 = x1205 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x8856 = x1205 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8857 = x1205 * x8854;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8858 = x8857 * x8855;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8859 = x8858 * x8856;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x8860 = x8853 + x8859 * poly_mix[47];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x8861 = x1277 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x8862 = x1277 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x8863 = x1277 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8864 = x1277 * x8863;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8865 = x8864 * x8861;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8866 = x8865 * x8862;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x8867 = x8860 + x8866 * poly_mix[48];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8868 = x612 + x886;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8869 = x8868 + x1205;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8870 = x8869 + x1277;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8871 = x8870 * x8305;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8872 = x8870 * x8306;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8873 = x8870 * x8310;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8874 = x8870 * x8316;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8875 = x8512 * x4864;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x8876 = x614 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x8877 = x614 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x8878 = x614 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8879 = x8875 + x8870;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8880 = x614 * x8876;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8881 = x8880 * x8877;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8882 = x8881 * x8878;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8883 = x8842 + x8873;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8884 = x8843 + x8871;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8885 = x8844 + x8872;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8886 = x8845 + x8874;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x8887 = x8867 + x8882 * poly_mix[49];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x8888 = x889 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x8889 = x889 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x8890 = x889 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8891 = x889 * x8889;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8892 = x8891 * x8890;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8893 = x8892 * x8888;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x8894 = x8887 + x8893 * poly_mix[50];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x8895 = x1213 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x8896 = x1213 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x8897 = x1213 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8898 = x1213 * x8895;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8899 = x8898 * x8896;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8900 = x8899 * x8897;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x8901 = x8894 + x8900 * poly_mix[51];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x8902 = x1285 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x8903 = x1285 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x8904 = x1285 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8905 = x1285 * x8904;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8906 = x8905 * x8902;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8907 = x8906 * x8903;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x8908 = x8901 + x8907 * poly_mix[52];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8909 = x614 + x889;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8910 = x8909 + x1213;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8911 = x8910 + x1285;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8912 = x8911 * x839;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8913 = x8911 * x840;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8914 = x8911 * x841;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8915 = x8911 * x1020;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8916 = x8512 * x4841;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x8917 = x617 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x8918 = x617 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x8919 = x617 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8920 = x8916 + x8911;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8921 = x617 * x8917;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8922 = x8921 * x8918;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8923 = x8922 * x8919;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8924 = x8883 + x8913;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8925 = x8884 + x8914;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8926 = x8885 + x8915;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8927 = x8886 + x8912;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x8928 = x8908 + x8923 * poly_mix[53];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x8929 = x892 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x8930 = x892 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x8931 = x892 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8932 = x892 * x8930;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8933 = x8932 * x8931;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8934 = x8933 * x8929;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x8935 = x8928 + x8934 * poly_mix[54];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x8936 = x1214 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x8937 = x1214 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x8938 = x1214 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8939 = x1214 * x8936;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8940 = x8939 * x8937;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8941 = x8940 * x8938;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x8942 = x8935 + x8941 * poly_mix[55];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x8943 = x1286 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x8944 = x1286 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x8945 = x1286 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8946 = x1286 * x8945;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8947 = x8946 * x8943;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8948 = x8947 * x8944;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x8949 = x8942 + x8948 * poly_mix[56];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8950 = x617 + x892;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8951 = x8950 + x1214;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8952 = x8951 + x1286;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8953 = x8952 * x8437;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8954 = x8952 * x8438;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8955 = x8952 * x8441;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8956 = x8952 * x8453;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8957 = x8512 * x4842;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x8958 = x620 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x8959 = x620 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x8960 = x620 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8961 = x8957 + x8952;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8962 = x620 * x8958;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8963 = x8962 * x8959;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x8964 = x8963 * x8960;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8965 = x8924 + x8955;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8966 = x8925 + x8953;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8967 = x8926 + x8954;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x8968 = x8927 + x8956;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x8969 = x8949 + x8964 * poly_mix[57];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x8970 = x895 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x8971 = x895 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x8972 = x895 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8973 = x895 * x8971;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8974 = x8973 * x8972;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x8975 = x8974 * x8970;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x8976 = x8969 + x8975 * poly_mix[58];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x8977 = x1222 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x8978 = x1222 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x8979 = x1222 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8980 = x1222 * x8977;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8981 = x8980 * x8978;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x8982 = x8981 * x8979;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x8983 = x8976 + x8982 * poly_mix[59];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x8984 = x1294 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x8985 = x1294 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x8986 = x1294 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8987 = x1294 * x8986;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8988 = x8987 * x8984;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x8989 = x8988 * x8985;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x8990 = x8983 + x8989 * poly_mix[60];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8991 = x620 + x895;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8992 = x8991 + x1222;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x8993 = x8992 + x1294;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8994 = x8993 * x8435;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8995 = x8993 * x8436;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8996 = x8993 * x8440;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x8997 = x8993 * x8452;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x8998 = x8512 * x4843;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x8999 = x623 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x9000 = x623 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x9001 = x623 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x9002 = x8998 + x8993;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x9003 = x623 * x8999;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x9004 = x9003 * x9000;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x9005 = x9004 * x9001;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9006 = x8965 + x8996;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9007 = x8966 + x8994;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9008 = x8967 + x8995;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9009 = x8968 + x8997;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x9010 = x8990 + x9005 * poly_mix[61];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x9011 = x898 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x9012 = x898 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x9013 = x898 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x9014 = x898 * x9012;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x9015 = x9014 * x9013;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x9016 = x9015 * x9011;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x9017 = x9010 + x9016 * poly_mix[62];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x9018 = x1223 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x9019 = x1223 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x9020 = x1223 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x9021 = x1223 * x9018;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x9022 = x9021 * x9019;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x9023 = x9022 * x9020;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x9024 = x9017 + x9023 * poly_mix[63];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x9025 = x1295 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x9026 = x1295 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x9027 = x1295 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x9028 = x1295 * x9027;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x9029 = x9028 * x9025;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x9030 = x9029 * x9026;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x9031 = x9024 + x9030 * poly_mix[64];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x9032 = x623 + x898;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x9033 = x9032 + x1223;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x9034 = x9033 + x1295;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x9035 = x9034 * x8431;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x9036 = x9034 * x8432;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x9037 = x9034 * x8439;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x9038 = x9034 * x8451;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x9039 = x8512 * x4844;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x9040 = x626 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x9041 = x626 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x9042 = x626 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x9043 = x9039 + x9034;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x9044 = x626 * x9040;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x9045 = x9044 * x9041;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x9046 = x9045 * x9042;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9047 = x9006 + x9037;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9048 = x9007 + x9035;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9049 = x9008 + x9036;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9050 = x9009 + x9038;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x9051 = x9031 + x9046 * poly_mix[65];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x9052 = x1159 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x9053 = x1159 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x9054 = x1159 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x9055 = x1159 * x9053;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x9056 = x9055 * x9054;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x9057 = x9056 * x9052;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x9058 = x9051 + x9057 * poly_mix[66];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x9059 = x1231 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x9060 = x1231 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x9061 = x1231 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x9062 = x1231 * x9059;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x9063 = x9062 * x9060;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x9064 = x9063 * x9061;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x9065 = x9058 + x9064 * poly_mix[67];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x9066 = x1303 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x9067 = x1303 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x9068 = x1303 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x9069 = x1303 * x9068;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x9070 = x9069 * x9066;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x9071 = x9070 * x9067;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x9072 = x9065 + x9071 * poly_mix[68];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x9073 = x626 + x1159;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x9074 = x9073 + x1231;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x9075 = x9074 + x1303;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x9076 = x9075 * x8433;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x9077 = x9075 * x8434;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x9078 = x9075 * x8420;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x9079 = x9075 * x8450;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x9080 = x8512 * x4845;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:19)
  auto x9081 = x866 - x1;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:34)
  auto x9082 = x866 - x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:49)
  auto x9083 = x866 - x3;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x9084 = x9080 + x9075;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x9085 = x866 * x9081;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x9086 = x9085 * x9082;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  auto x9087 = x9086 * x9083;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9088 = x9047 + x9078;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9089 = x9048 + x9076;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9090 = x9049 + x9077;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9091 = x9050 + x9079;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":88:9)
  FpExt x9092 = x9072 + x9087 * poly_mix[69];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:46)
  auto x9093 = x1160 - x281;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:18)
  auto x9094 = x1160 - x4;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:32)
  auto x9095 = x1160 - x8;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x9096 = x1160 * x9094;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x9097 = x9096 * x9095;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  auto x9098 = x9097 * x9093;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":89:9)
  FpExt x9099 = x9092 + x9098 * poly_mix[70];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:18)
  auto x9100 = x1232 - x14;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:33)
  auto x9101 = x1232 - x15;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:48)
  auto x9102 = x1232 - x282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x9103 = x1232 * x9100;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x9104 = x9103 * x9101;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  auto x9105 = x9104 * x9102;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":90:9)
  FpExt x9106 = x9099 + x9105 * poly_mix[71];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:37)
  auto x9107 = x1304 - x17;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:55)
  auto x9108 = x1304 - x283;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:20)
  auto x9109 = x1304 - x16;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x9110 = x1304 * x9109;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x9111 = x9110 * x9107;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  auto x9112 = x9111 * x9108;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":91:9)
  FpExt x9113 = x9106 + x9112 * poly_mix[72];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x9114 = x866 + x1160;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x9115 = x9114 + x1232;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":93:18)
  auto x9116 = x9115 + x1304;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x9117 = x9116 * x8476;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x9118 = x9116 * x8477;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x9119 = x9116 * x8478;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:17)
  auto x9120 = x9116 * x8480;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x9121 = x8512 * x4846;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":94:13)
  auto x9122 = x9121 + x9116;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9123 = x9088 + x9119;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9124 = x9089 + x9117;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9125 = x9090 + x9118;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":96:11)
  auto x9126 = x9091 + x9120;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  auto x9127 = x332 - x287;
  // loc("zirgen/circuit/recursion/wom.cpp":87:3)
  FpExt x9128 = x9113 + x9127 * poly_mix[73];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x9129 = x334 - x9126;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x9130 = x9128 + x9129 * poly_mix[74];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x9131 = x336 - x9123;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x9132 = x9130 + x9131 * poly_mix[75];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x9133 = x338 - x9124;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x9134 = x9132 + x9133 * poly_mix[76];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  auto x9135 = x340 - x9125;
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x9136 = x9134 + x9135 * poly_mix[77];
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x9137 = x8920 + x8961;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x9138 = x9002 + x9043;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x9139 = x9084 + x9122;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x9140 = x8517 + x8554;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x9141 = x8592 + x8633;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x9142 = x8674 + x8715;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x9143 = x8756 + x8797;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x9144 = x8838 + x8879;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x9145 = x9137 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x9146 = x9138 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x9147 = x9139 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x9148 = x9140 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x9149 = x9141 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x9150 = x9142 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x9151 = x9143 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x9152 = x9144 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x9153 = x8961 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x9154 = x9043 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x9155 = x9122 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x9156 = x8554 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x9157 = x8633 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x9158 = x8715 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x9159 = x8797 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x9160 = x8879 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x9161 = x9153 + x9144;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x9162 = x9154 + x9139;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x9163 = x9155 + x9138;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x9164 = x9156 + x9141;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x9165 = x9157 + x9140;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x9166 = x9158 + x9143;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x9167 = x9159 + x9142;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x9168 = x9160 + x9137;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x9169 = x9145 + x9161;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x9170 = x9146 + x9162;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x9171 = x9147 + x9163;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x9172 = x9150 + x9166;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x9173 = x9151 + x9167;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x9174 = x9152 + x9168;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":107:13)
  auto x9175 = x321 * x4847;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":107:13)
  auto x9176 = x321 * x4849;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":107:13)
  auto x9177 = x321 * x4851;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":107:13)
  auto x9178 = x321 * x4853;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":107:13)
  auto x9179 = x321 * x4848;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":107:13)
  auto x9180 = x321 * x4850;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":107:13)
  auto x9181 = x321 * x4852;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":107:13)
  auto x9182 = x321 * x4854;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x9183 = x9161 + x9174;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x9184 = x9162 + x9171;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x9185 = x9163 + x9170;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x9186 = x9166 + x9173;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x9187 = x9167 + x9172;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x9188 = x9168 + x9169;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x9189 = x9148 + x9164;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x9190 = x9149 + x9165;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x9191 = x9175 + x9179;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x9192 = x9176 + x9180;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":14:12)
  auto x9193 = x9177 + x9181;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":15:12)
  auto x9194 = x9178 + x9182;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x9195 = x9191 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x9196 = x9192 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x9197 = x9193 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x9198 = x9194 * x4;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x9199 = x9179 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x9200 = x9180 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x9201 = x9181 * x2;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x9202 = x9182 * x2;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9203 = x540 * x8517;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x9204 = x9164 + x9190;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x9205 = x9165 + x9189;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x9206 = x9199 + x9192;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x9207 = x9200 + x9191;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":16:12)
  auto x9208 = x9201 + x9194;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":17:12)
  auto x9209 = x9202 + x9193;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x9210 = x9195 + x9206;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x9211 = x9196 + x9207;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":19:12)
  auto x9212 = x9197 + x9208;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":18:12)
  auto x9213 = x9198 + x9209;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9214 = x9189 + x9172;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9215 = x9190 + x9173;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x9216 = x9206 + x9211;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x9217 = x9207 + x9210;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":21:12)
  auto x9218 = x9208 + x9213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":20:12)
  auto x9219 = x9209 + x9212;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9220 = x9214 + x9174;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9221 = x9215 + x9169;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9222 = x9204 + x9186;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9223 = x9205 + x9187;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9224 = x9220 + x9170;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9225 = x9221 + x9171;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9226 = x9222 + x9188;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9227 = x9223 + x9183;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9228 = x9224 + x9210;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9229 = x9225 + x9211;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9230 = x9226 + x9184;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9231 = x9227 + x9185;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9232 = x9228 + x9212;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9233 = x9229 + x9213;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9234 = x9230 + x9216;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9235 = x9231 + x9217;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9236 = x9189 + x9232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9237 = x9190 + x9233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9238 = x9169 + x9233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9239 = x9170 + x9232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9240 = x9171 + x9233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9241 = x9172 + x9232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9242 = x9173 + x9233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9243 = x9174 + x9232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9244 = x9210 + x9232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9245 = x9211 + x9233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9246 = x9212 + x9232;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9247 = x9213 + x9233;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9248 = x9234 + x9218;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":35:21)
  auto x9249 = x9235 + x9219;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9250 = x9204 + x9248;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9251 = x9205 + x9249;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9252 = x9183 + x9249;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9253 = x9184 + x9248;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9254 = x9185 + x9249;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9255 = x9186 + x9248;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9256 = x9187 + x9249;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9257 = x9188 + x9248;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9258 = x9216 + x9248;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9259 = x9217 + x9249;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9260 = x9218 + x9248;
  // loc("zirgen/circuit/recursion/poseidon2.cpp":40:14)
  auto x9261 = x9219 + x9249;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9262 = x320 * x9251;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9263 = x9262 + x9203;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9264 = x9263 + x4881;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9265 = x318 - x9264;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9266 = x9136 + x9265 * poly_mix[78];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9267 = x320 * x9236;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9268 = x540 * x8554;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9269 = x9267 + x9268;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9270 = x9269 + x5065;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9271 = x289 - x9270;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9272 = x9266 + x9271 * poly_mix[79];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9273 = x320 * x9250;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9274 = x540 * x8592;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9275 = x9273 + x9274;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9276 = x9275 + x5072;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9277 = x290 - x9276;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9278 = x9272 + x9277 * poly_mix[80];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9279 = x320 * x9237;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9280 = x540 * x8633;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9281 = x9279 + x9280;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9282 = x9281 + x5079;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9283 = x291 - x9282;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9284 = x9278 + x9283 * poly_mix[81];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9285 = x320 * x9256;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9286 = x540 * x8674;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9287 = x9285 + x9286;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9288 = x9287 + x5086;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9289 = x292 - x9288;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9290 = x9284 + x9289 * poly_mix[82];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9291 = x320 * x9241;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9292 = x540 * x8715;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9293 = x9291 + x9292;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9294 = x9293 + x5093;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9295 = x293 - x9294;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9296 = x9290 + x9295 * poly_mix[83];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9297 = x320 * x9255;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9298 = x540 * x8756;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9299 = x9297 + x9298;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9300 = x9299 + x5100;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9301 = x294 - x9300;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9302 = x9296 + x9301 * poly_mix[84];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9303 = x320 * x9242;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9304 = x540 * x8797;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9305 = x9303 + x9304;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9306 = x9305 + x5107;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9307 = x295 - x9306;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9308 = x9302 + x9307 * poly_mix[85];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9309 = x320 * x9252;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9310 = x540 * x8838;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9311 = x9309 + x9310;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9312 = x9311 + x5114;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9313 = x296 - x9312;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9314 = x9308 + x9313 * poly_mix[86];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9315 = x320 * x9243;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9316 = x540 * x8879;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9317 = x9315 + x9316;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9318 = x9317 + x5121;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9319 = x297 - x9318;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9320 = x9314 + x9319 * poly_mix[87];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9321 = x320 * x9257;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9322 = x540 * x8920;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9323 = x9321 + x9322;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9324 = x9323 + x5128;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9325 = x288 - x9324;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9326 = x9320 + x9325 * poly_mix[88];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9327 = x320 * x9238;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9328 = x540 * x8961;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9329 = x9327 + x9328;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9330 = x9329 + x5135;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9331 = x476 - x9330;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9332 = x9326 + x9331 * poly_mix[89];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9333 = x320 * x9254;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9334 = x540 * x9002;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9335 = x9333 + x9334;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9336 = x9335 + x5142;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9337 = x590 - x9336;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9338 = x9332 + x9337 * poly_mix[90];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9339 = x320 * x9239;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9340 = x540 * x9043;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9341 = x9339 + x9340;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9342 = x9341 + x5149;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9343 = x560 - x9342;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9344 = x9338 + x9343 * poly_mix[91];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9345 = x320 * x9253;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9346 = x540 * x9084;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9347 = x9345 + x9346;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9348 = x9347 + x5156;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9349 = x561 - x9348;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9350 = x9344 + x9349 * poly_mix[92];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9351 = x320 * x9240;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9352 = x540 * x9122;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9353 = x9351 + x9352;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9354 = x9353 + x5163;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9355 = x562 - x9354;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9356 = x9350 + x9355 * poly_mix[93];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9357 = x320 * x9259;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9358 = x540 * x9175;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9359 = x9357 + x9358;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9360 = x9359 + x5170;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9361 = x563 - x9360;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9362 = x9356 + x9361 * poly_mix[94];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9363 = x320 * x9244;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9364 = x540 * x9179;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9365 = x9363 + x9364;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9366 = x9365 + x5177;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9367 = x564 - x9366;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9368 = x9362 + x9367 * poly_mix[95];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9369 = x320 * x9258;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9370 = x540 * x9176;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9371 = x9369 + x9370;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9372 = x9371 + x5184;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9373 = x565 - x9372;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9374 = x9368 + x9373 * poly_mix[96];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9375 = x320 * x9245;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9376 = x540 * x9180;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9377 = x9375 + x9376;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9378 = x9377 + x5191;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9379 = x566 - x9378;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9380 = x9374 + x9379 * poly_mix[97];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9381 = x320 * x9261;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9382 = x540 * x9177;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9383 = x9381 + x9382;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9384 = x9383 + x5198;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9385 = x567 - x9384;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9386 = x9380 + x9385 * poly_mix[98];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9387 = x320 * x9246;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9388 = x540 * x9181;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9389 = x9387 + x9388;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9390 = x9389 + x5205;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9391 = x568 - x9390;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9392 = x9386 + x9391 * poly_mix[99];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9393 = x320 * x9260;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9394 = x540 * x9178;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9395 = x9393 + x9394;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9396 = x9395 + x5212;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9397 = x569 - x9396;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9398 = x9392 + x9397 * poly_mix[100];
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9399 = x320 * x9247;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:38)
  auto x9400 = x540 * x9182;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":113:11)
  auto x9401 = x9399 + x9400;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":114:11)
  auto x9402 = x9401 + x5219;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  auto x9403 = x748 - x9402;
  // loc("zirgen/circuit/recursion/checked_bytes.cpp":115:5)
  FpExt x9404 = x9398 + x9403 * poly_mix[101];
  // loc("./zirgen/components/mux.h":49:25)
  FpExt x9405 = x8070 + x8071 * x9404 * poly_mix[139];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9406 = x284 + x286 * x284 * poly_mix[0];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9407 = x9406 + x319 * x284 * poly_mix[0];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9408 = x9407 + x321 * x284 * poly_mix[0];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9409 = x9408 + x320 * x284 * poly_mix[0];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9410 = x9409 + x559 * x284 * poly_mix[0];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9411 = x9410 + x863 * x284 * poly_mix[0];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9412 = x9405 + x1103 * x9411 * poly_mix[140];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9413 = x9412 + x4812 * x284 * poly_mix[140];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9414 = x9413 + x7910 * x284 * poly_mix[140];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9415 = x9414 + x285 * x284 * poly_mix[140];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9416 = x284 + x320 * x284 * poly_mix[0];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9417 = x9416 + x559 * x284 * poly_mix[0];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9418 = x9417 + x591 * x284 * poly_mix[0];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9419 = x9418 + x593 * x284 * poly_mix[0];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9420 = x9419 + x592 * x284 * poly_mix[0];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9421 = x9420 + x831 * x284 * poly_mix[0];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9422 = x9421 + x863 * x284 * poly_mix[0];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9423 = x9415 + x1103 * x9422 * poly_mix[140];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9424 = x9423 + x4812 * x284 * poly_mix[140];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9425 = x9424 + x7910 * x284 * poly_mix[140];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9426 = x9425 + x8071 * x284 * poly_mix[140];
  // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("zirgen/circuit/recursion/wom.cpp":61:40))
  auto x9427 = args[2][0 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9428 = x1159 - x9427;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9429 = x1 - x9428;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9430 = x9428 * x9429;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9431 = x284 + x9430 * poly_mix[0];
  // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38))
  auto x9432 = args[2][1 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9433 = x9432 - x1160;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9434 = x284 + x9433 * poly_mix[0];
  // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38))
  auto x9435 = args[2][2 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9436 = x9435 - x1168;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9437 = x9434 + x9436 * poly_mix[1];
  // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38))
  auto x9438 = args[2][3 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9439 = x9438 - x1169;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9440 = x9437 + x9439 * poly_mix[2];
  // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38))
  auto x9441 = args[2][4 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9442 = x9441 - x1177;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9443 = x9440 + x9442 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9444 = x9431 + x9429 * x9443 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9445 = x1178 - x1159;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9446 = x1 - x9445;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9447 = x9445 * x9446;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9448 = x9444 + x9447 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9449 = x1160 - x1186;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9450 = x284 + x9449 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9451 = x1168 - x1187;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9452 = x9450 + x9451 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9453 = x1169 - x1195;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9454 = x9452 + x9453 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9455 = x1177 - x1196;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9456 = x9454 + x9455 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9457 = x9448 + x9446 * x9456 * poly_mix[6];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9458 = x1204 - x1178;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9459 = x1 - x9458;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9460 = x9458 * x9459;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9461 = x9457 + x9460 * poly_mix[10];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9462 = x1186 - x1205;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9463 = x284 + x9462 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9464 = x1187 - x1213;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9465 = x9463 + x9464 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9466 = x1195 - x1214;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9467 = x9465 + x9466 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9468 = x1196 - x1222;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9469 = x9467 + x9468 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9470 = x9461 + x9459 * x9469 * poly_mix[11];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9471 = x1223 - x1204;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9472 = x1 - x9471;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9473 = x9471 * x9472;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9474 = x9470 + x9473 * poly_mix[15];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9475 = x1205 - x1231;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9476 = x284 + x9475 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9477 = x1213 - x1232;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9478 = x9476 + x9477 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9479 = x1214 - x1240;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9480 = x9478 + x9479 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9481 = x1222 - x1241;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9482 = x9480 + x9481 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9483 = x9474 + x9472 * x9482 * poly_mix[16];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9484 = x1249 - x1223;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9485 = x1 - x9484;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9486 = x9484 * x9485;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9487 = x9483 + x9486 * poly_mix[20];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9488 = x1231 - x1250;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9489 = x284 + x9488 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9490 = x1232 - x1258;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9491 = x9489 + x9490 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9492 = x1240 - x1259;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9493 = x9491 + x9492 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9494 = x1241 - x1267;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9495 = x9493 + x9494 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9496 = x9487 + x9485 * x9495 * poly_mix[21];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9497 = x1268 - x1249;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9498 = x1 - x9497;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9499 = x9497 * x9498;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9500 = x9496 + x9499 * poly_mix[25];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9501 = x1250 - x1276;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9502 = x284 + x9501 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9503 = x1258 - x1277;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9504 = x9502 + x9503 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9505 = x1259 - x1285;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9506 = x9504 + x9505 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9507 = x1267 - x1286;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9508 = x9506 + x9507 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9509 = x9500 + x9498 * x9508 * poly_mix[26];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9510 = x1294 - x1268;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9511 = x1 - x9510;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9512 = x9510 * x9511;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9513 = x9509 + x9512 * poly_mix[30];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9514 = x1276 - x1295;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9515 = x284 + x9514 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9516 = x1277 - x1303;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9517 = x9515 + x9516 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9518 = x1285 - x1304;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9519 = x9517 + x9518 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9520 = x1286 - x1312;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9521 = x9519 + x9520 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9522 = x9513 + x9511 * x9521 * poly_mix[31];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9523 = x1313 - x1294;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9524 = x1 - x9523;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9525 = x9523 * x9524;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9526 = x9522 + x9525 * poly_mix[35];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9527 = x1295 - x1321;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9528 = x284 + x9527 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9529 = x1303 - x1322;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9530 = x9528 + x9529 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9531 = x1304 - x1330;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9532 = x9530 + x9531 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9533 = x1312 - x1331;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9534 = x9532 + x9533 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9535 = x9526 + x9524 * x9534 * poly_mix[36];
  // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61))
  auto x9536 = args[2][0 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9537 = x9536 - x1313;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9538 = x1 - x9537;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9539 = x9537 * x9538;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9540 = x9535 + x9539 * poly_mix[40];
  // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41))
  auto x9541 = args[2][1 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9542 = x1321 - x9541;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9543 = x284 + x9542 * poly_mix[0];
  // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41))
  auto x9544 = args[2][2 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9545 = x1322 - x9544;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9546 = x9543 + x9545 * poly_mix[1];
  // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41))
  auto x9547 = args[2][3 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9548 = x1330 - x9547;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9549 = x9546 + x9548 * poly_mix[2];
  // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41))
  auto x9550 = args[2][4 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9551 = x1331 - x9550;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9552 = x9549 + x9551 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9553 = x9540 + x9538 * x9552 * poly_mix[41];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9554 = x9426 + x285 * x9553 * poly_mix[140];
  // loc("zirgen/circuit/recursion/wom.cpp":12:3)
  FpExt x9555 = x284 + x9536 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x9556 = x9555 + x9541 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x9557 = x9556 + x9544 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x9558 = x9557 + x9547 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":51:5)
  FpExt x9559 = x9558 + x9550 * poly_mix[4];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9560 = x284 + x319 * x9559 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9561 = x334 - x9427;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9562 = x1 - x9561;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9563 = x9561 * x9562;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9564 = x284 + x9563 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9565 = x9432 - x336;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9566 = x284 + x9565 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9567 = x9435 - x338;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9568 = x9566 + x9567 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9569 = x9438 - x340;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9570 = x9568 + x9569 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9571 = x9441 - x342;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9572 = x9570 + x9571 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9573 = x9564 + x9562 * x9572 * poly_mix[1];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9574 = x9560 + x321 * x9573 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9575 = x606 - x9427;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9576 = x1 - x9575;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9577 = x9575 * x9576;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9578 = x284 + x9577 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9579 = x9432 - x608;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9580 = x284 + x9579 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9581 = x9435 - x610;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9582 = x9580 + x9581 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9583 = x9438 - x612;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9584 = x9582 + x9583 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9585 = x9441 - x614;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9586 = x9584 + x9585 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9587 = x9578 + x9576 * x9586 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9588 = x1 - x802;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9589 = x802 * x9588;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9590 = x9587 + x9589 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9591 = x608 - x620;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9592 = x284 + x9591 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9593 = x610 - x623;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9594 = x9592 + x9593 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9595 = x612 - x626;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9596 = x9594 + x9595 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9597 = x614 - x866;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9598 = x9596 + x9597 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9599 = x9590 + x9588 * x9598 * poly_mix[6];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9600 = x9536 - x617;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9601 = x1 - x9600;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9602 = x9600 * x9601;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9603 = x9599 + x9602 * poly_mix[10];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9604 = x620 - x9541;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9605 = x284 + x9604 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9606 = x623 - x9544;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9607 = x9605 + x9606 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9608 = x626 - x9547;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9609 = x9607 + x9608 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9610 = x866 - x9550;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9611 = x9609 + x9610 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9612 = x9603 + x9601 * x9611 * poly_mix[11];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9613 = x9574 + x320 * x9612 * poly_mix[10];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9614 = x9613 + x559 * x9612 * poly_mix[25];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9615 = x596 - x9427;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9616 = x1 - x9615;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9617 = x9615 * x9616;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9618 = x284 + x9617 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9619 = x9432 - x598;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9620 = x284 + x9619 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9621 = x9435 - x600;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9622 = x9620 + x9621 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9623 = x9438 - x602;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9624 = x9622 + x9623 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9625 = x9441 - x604;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9626 = x9624 + x9625 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9627 = x9618 + x9616 * x9626 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9628 = x9536 - x596;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9629 = x1 - x9628;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9630 = x9628 * x9629;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9631 = x9627 + x9630 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9632 = x598 - x9541;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9633 = x284 + x9632 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9634 = x600 - x9544;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9635 = x9633 + x9634 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9636 = x602 - x9547;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9637 = x9635 + x9636 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9638 = x604 - x9550;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9639 = x9637 + x9638 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9640 = x9631 + x9629 * x9639 * poly_mix[6];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9641 = x9614 + x591 * x9640 * poly_mix[40];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9642 = x9641 + x593 * x9640 * poly_mix[50];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9643 = x9642 + x592 * x9640 * poly_mix[60];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9644 = x9643 + x831 * x9640 * poly_mix[70];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9645 = x866 - x9427;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9646 = x1 - x9645;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9647 = x9645 * x9646;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9648 = x284 + x9647 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9649 = x9432 - x868;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9650 = x284 + x9649 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9651 = x9435 - x870;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9652 = x9650 + x9651 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9653 = x9438 - x872;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9654 = x9652 + x9653 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9655 = x9441 - x874;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9656 = x9654 + x9655 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9657 = x9648 + x9646 * x9656 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9658 = x876 - x866;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9659 = x1 - x9658;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9660 = x9658 * x9659;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9661 = x9657 + x9660 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9662 = x284 + x919 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9663 = x9662 + x920 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9664 = x9663 + x921 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9665 = x9664 + x922 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9666 = x9661 + x9659 * x9665 * poly_mix[6];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9667 = x886 - x876;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9668 = x1 - x9667;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9669 = x9667 * x9668;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9670 = x9666 + x9669 * poly_mix[10];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9671 = x878 - x889;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9672 = x284 + x9671 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9673 = x880 - x892;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9674 = x9672 + x9673 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9675 = x882 - x895;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9676 = x9674 + x9675 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9677 = x884 - x898;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9678 = x9676 + x9677 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9679 = x9670 + x9668 * x9678 * poly_mix[11];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9680 = x9536 - x886;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9681 = x1 - x9680;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9682 = x9680 * x9681;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9683 = x9679 + x9682 * poly_mix[15];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9684 = x889 - x9541;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9685 = x284 + x9684 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9686 = x892 - x9544;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9687 = x9685 + x9686 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9688 = x895 - x9547;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9689 = x9687 + x9688 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9690 = x898 - x9550;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9691 = x9689 + x9690 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9692 = x9683 + x9681 * x9691 * poly_mix[16];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9693 = x9644 + x863 * x9692 * poly_mix[80];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9694 = x9554 + x1103 * x9693 * poly_mix[141];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9695 = x9694 + x4812 * x9553 * poly_mix[142];
  // loc("zirgen/circuit/recursion/wom.cpp":31:3)
  auto x9696 = x9536 - x9427;
  // loc("zirgen/circuit/recursion/wom.cpp":31:3)
  FpExt x9697 = x284 + x9696 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":33:5)
  auto x9698 = x9541 - x9432;
  // loc("zirgen/circuit/recursion/wom.cpp":33:5)
  FpExt x9699 = x9697 + x9698 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":33:5)
  auto x9700 = x9544 - x9435;
  // loc("zirgen/circuit/recursion/wom.cpp":33:5)
  FpExt x9701 = x9699 + x9700 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":33:5)
  auto x9702 = x9547 - x9438;
  // loc("zirgen/circuit/recursion/wom.cpp":33:5)
  FpExt x9703 = x9701 + x9702 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":33:5)
  auto x9704 = x9550 - x9441;
  // loc("zirgen/circuit/recursion/wom.cpp":33:5)
  FpExt x9705 = x9703 + x9704 * poly_mix[4];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9706 = x9695 + x5226 * x9705 * poly_mix[143];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9707 = x9706 + x6154 * x9705 * poly_mix[144];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9708 = x9707 + x7910 * x9553 * poly_mix[145];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9709 = x342 - x9427;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9710 = x1 - x9709;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9711 = x9709 * x9710;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9712 = x284 + x9711 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9713 = x9432 - x345;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9714 = x284 + x9713 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9715 = x9435 - x348;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9716 = x9714 + x9715 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9717 = x9438 - x351;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9718 = x9716 + x9717 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9719 = x9441 - x354;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9720 = x9718 + x9719 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9721 = x9712 + x9710 * x9720 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":62:19)
  auto x9722 = x9536 - x342;
  // loc("zirgen/circuit/recursion/wom.cpp":64:19)
  auto x9723 = x1 - x9722;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  auto x9724 = x9722 * x9723;
  // loc("zirgen/circuit/recursion/wom.cpp":64:7)
  FpExt x9725 = x9721 + x9724 * poly_mix[5];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9726 = x345 - x9541;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9727 = x284 + x9726 * poly_mix[0];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9728 = x348 - x9544;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9729 = x9727 + x9728 * poly_mix[1];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9730 = x351 - x9547;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9731 = x9729 + x9730 * poly_mix[2];
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  auto x9732 = x354 - x9550;
  // loc("zirgen/circuit/recursion/wom.cpp":68:38)
  FpExt x9733 = x9731 + x9732 * poly_mix[3];
  // loc("zirgen/circuit/recursion/wom.cpp":66:18)
  FpExt x9734 = x9725 + x9723 * x9733 * poly_mix[6];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9735 = x9708 + x8071 * x9734 * poly_mix[146];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9736 = x9735 + x285 * x284 * poly_mix[147];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9737 = x9736 + x1103 * x9422 * poly_mix[147];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9738 = x9737 + x4812 * x284 * poly_mix[147];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9739 = x9738 + x5226 * x284 * poly_mix[147];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9740 = x9739 + x6154 * x284 * poly_mix[147];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9741 = x9740 + x7910 * x284 * poly_mix[147];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x9742 = x9741 + x8071 * x284 * poly_mix[147];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[0](FpExtReg)/elem[0](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9743 = args[3][0];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[0](FpExtReg)/elem[1](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9744 = args[3][1];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[2](FpExtReg)/elem[2](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9745 = args[3][10];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[2](FpExtReg)/elem[3](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9746 = args[3][11];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[3](FpExtReg)/elem[0](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9747 = args[3][12];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[3](FpExtReg)/elem[1](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9748 = args[3][13];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[3](FpExtReg)/elem[2](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9749 = args[3][14];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[3](FpExtReg)/elem[3](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9750 = args[3][15];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[4](FpExtReg)/elem[0](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9751 = args[3][16];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[4](FpExtReg)/elem[1](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9752 = args[3][17];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[4](FpExtReg)/elem[2](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9753 = args[3][18];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[4](FpExtReg)/elem[3](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9754 = args[3][19];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[0](FpExtReg)/elem[2](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9755 = args[3][2];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[0](FpExtReg)/elem[3](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9756 = args[3][3];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[1](FpExtReg)/elem[0](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9757 = args[3][4];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[1](FpExtReg)/elem[1](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9758 = args[3][5];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[1](FpExtReg)/elem[2](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9759 = args[3][6];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[1](FpExtReg)/elem[3](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9760 = args[3][7];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[2](FpExtReg)/elem[0](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9761 = args[3][8];
  // loc("top(recursion::Top)/recursion::WomHeader/mix[2](FpExtReg)/elem[1](Reg)"("./zirgen/components/plonk.h":220:23))
  auto x9762 = args[3][9];
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9763 = x9743 * x9536;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9764 = x9743 * x332;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9765 = x9743 * x342;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9766 = x9743 * x594;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9767 = x9743 * x604;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9768 = x9743 * x614;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9769 = x9743 * x866;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9770 = x9743 * x876;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9771 = x9743 * x886;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9772 = x9743 * x322;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9773 = x9743 * x1159;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9774 = x9743 * x1178;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9775 = x9743 * x1204;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9776 = x9743 * x1223;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9777 = x9743 * x1249;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9778 = x9743 * x1268;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9779 = x9743 * x1294;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9780 = x9743 * x1313;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9781 = x9744 * x9536;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9782 = x9744 * x332;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9783 = x9744 * x342;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9784 = x9744 * x594;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9785 = x9744 * x604;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9786 = x9744 * x614;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9787 = x9744 * x866;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9788 = x9744 * x876;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9789 = x9744 * x886;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9790 = x9744 * x322;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9791 = x9744 * x1159;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9792 = x9744 * x1178;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9793 = x9744 * x1204;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9794 = x9744 * x1223;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9795 = x9744 * x1249;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9796 = x9744 * x1268;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9797 = x9744 * x1294;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9798 = x9744 * x1313;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9799 = x9745 * x336;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9800 = x9745 * x348;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9801 = x9745 * x9544;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9802 = x9745 * x598;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9803 = x9745 * x608;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9804 = x9745 * x620;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9805 = x9745 * x870;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9806 = x9745 * x880;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9807 = x9745 * x892;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9808 = x9745 * x1168;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9809 = x9745 * x1187;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9810 = x9745 * x1213;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9811 = x9745 * x1232;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9812 = x9745 * x326;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9813 = x9745 * x1258;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9814 = x9745 * x1277;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9815 = x9745 * x1303;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9816 = x9745 * x1322;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9817 = x9746 * x336;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9818 = x9746 * x348;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9819 = x9746 * x9544;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9820 = x9746 * x598;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9821 = x9746 * x608;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9822 = x9746 * x620;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9823 = x9746 * x870;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9824 = x9746 * x880;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9825 = x9746 * x892;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9826 = x9746 * x1168;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9827 = x9746 * x1187;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9828 = x9746 * x1213;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9829 = x9746 * x1232;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9830 = x9746 * x326;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9831 = x9746 * x1258;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9832 = x9746 * x1277;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9833 = x9746 * x1303;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9834 = x9746 * x1322;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9835 = x9748 * x338;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9836 = x9748 * x351;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9837 = x9748 * x600;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9838 = x9748 * x610;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9839 = x9748 * x9547;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9840 = x9748 * x623;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9841 = x9748 * x872;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9842 = x9748 * x882;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9843 = x9748 * x895;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9844 = x9748 * x1169;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9845 = x9748 * x1195;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9846 = x9748 * x1214;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9847 = x9748 * x1240;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9848 = x9748 * x1259;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9849 = x9748 * x1285;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9850 = x9748 * x328;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9851 = x9748 * x1304;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9852 = x9748 * x1330;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9853 = x9749 * x338;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9854 = x9749 * x351;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9855 = x9749 * x600;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9856 = x9749 * x610;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9857 = x9749 * x9547;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9858 = x9749 * x623;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9859 = x9749 * x872;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9860 = x9749 * x882;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9861 = x9749 * x895;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9862 = x9749 * x1169;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9863 = x9749 * x1195;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9864 = x9749 * x1214;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9865 = x9749 * x1240;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9866 = x9749 * x1259;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9867 = x9749 * x1285;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9868 = x9749 * x328;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9869 = x9749 * x1304;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9870 = x9749 * x1330;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9871 = x9750 * x338;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9872 = x9750 * x351;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9873 = x9750 * x600;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9874 = x9750 * x610;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9875 = x9750 * x9547;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9876 = x9750 * x623;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9877 = x9750 * x872;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9878 = x9750 * x882;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9879 = x9750 * x895;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9880 = x9750 * x1169;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9881 = x9750 * x1195;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9882 = x9750 * x1214;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9883 = x9750 * x1240;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9884 = x9750 * x1259;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9885 = x9750 * x1285;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9886 = x9750 * x328;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9887 = x9750 * x1304;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9888 = x9750 * x1330;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9889 = x9752 * x340;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9890 = x9752 * x354;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9891 = x9752 * x602;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9892 = x9752 * x612;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9893 = x9752 * x626;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9894 = x9752 * x874;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9895 = x9752 * x9550;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9896 = x9752 * x884;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9897 = x9752 * x898;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9898 = x9752 * x1177;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9899 = x9752 * x1196;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9900 = x9752 * x1222;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9901 = x9752 * x1241;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9902 = x9752 * x1267;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9903 = x9752 * x1286;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9904 = x9752 * x1312;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9905 = x9752 * x1331;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9906 = x9752 * x330;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9907 = x9753 * x340;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9908 = x9753 * x354;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9909 = x9753 * x602;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9910 = x9753 * x612;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9911 = x9753 * x626;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9912 = x9753 * x874;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9913 = x9753 * x9550;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9914 = x9753 * x884;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9915 = x9753 * x898;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9916 = x9753 * x1177;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9917 = x9753 * x1196;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9918 = x9753 * x1222;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9919 = x9753 * x1241;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9920 = x9753 * x1267;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9921 = x9753 * x1286;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9922 = x9753 * x1312;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9923 = x9753 * x1331;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9924 = x9753 * x330;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9925 = x9754 * x340;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9926 = x9754 * x354;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9927 = x9754 * x602;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9928 = x9754 * x612;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9929 = x9754 * x626;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9930 = x9754 * x874;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9931 = x9754 * x9550;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9932 = x9754 * x884;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9933 = x9754 * x898;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9934 = x9754 * x1177;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9935 = x9754 * x1196;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9936 = x9754 * x1222;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9937 = x9754 * x1241;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9938 = x9754 * x1267;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9939 = x9754 * x1286;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9940 = x9754 * x1312;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9941 = x9754 * x1331;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9942 = x9754 * x330;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9943 = x9755 * x9536;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9944 = x9755 * x332;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9945 = x9755 * x342;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9946 = x9755 * x594;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9947 = x9755 * x604;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9948 = x9755 * x614;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9949 = x9755 * x866;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9950 = x9755 * x876;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9951 = x9755 * x886;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9952 = x9755 * x322;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9953 = x9755 * x1159;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9954 = x9755 * x1178;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9955 = x9755 * x1204;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9956 = x9755 * x1223;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9957 = x9755 * x1249;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9958 = x9755 * x1268;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9959 = x9755 * x1294;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9960 = x9755 * x1313;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9961 = x9756 * x9536;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9962 = x9756 * x332;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9963 = x9756 * x342;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9964 = x9756 * x594;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9965 = x9756 * x604;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9966 = x9756 * x614;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9967 = x9756 * x866;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9968 = x9756 * x876;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9969 = x9756 * x886;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9970 = x9756 * x322;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9971 = x9756 * x1159;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9972 = x9756 * x1178;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9973 = x9756 * x1204;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9974 = x9756 * x1223;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9975 = x9756 * x1249;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9976 = x9756 * x1268;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9977 = x9756 * x1294;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9978 = x9756 * x1313;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9979 = x9758 * x9541;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9980 = x9758 * x334;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9981 = x9758 * x345;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9982 = x9758 * x596;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9983 = x9758 * x606;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9984 = x9758 * x617;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9985 = x9758 * x868;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9986 = x9758 * x878;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9987 = x9758 * x889;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9988 = x9758 * x1160;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9989 = x9758 * x1186;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9990 = x9758 * x324;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9991 = x9758 * x1205;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9992 = x9758 * x1231;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9993 = x9758 * x1250;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9994 = x9758 * x1276;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9995 = x9758 * x1295;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9996 = x9758 * x1321;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9997 = x9759 * x9541;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9998 = x9759 * x334;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x9999 = x9759 * x345;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10000 = x9759 * x596;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10001 = x9759 * x606;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10002 = x9759 * x617;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10003 = x9759 * x868;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10004 = x9759 * x878;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10005 = x9759 * x889;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10006 = x9759 * x1160;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10007 = x9759 * x1186;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10008 = x9759 * x324;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10009 = x9759 * x1205;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10010 = x9759 * x1231;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10011 = x9759 * x1250;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10012 = x9759 * x1276;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10013 = x9759 * x1295;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10014 = x9759 * x1321;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10015 = x9760 * x9541;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10016 = x9760 * x334;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10017 = x9760 * x345;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10018 = x9760 * x596;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10019 = x9760 * x606;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10020 = x9760 * x617;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10021 = x9760 * x868;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10022 = x9760 * x878;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10023 = x9760 * x889;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10024 = x9760 * x1160;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10025 = x9760 * x1186;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10026 = x9760 * x324;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10027 = x9760 * x1205;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10028 = x9760 * x1231;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10029 = x9760 * x1250;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10030 = x9760 * x1276;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10031 = x9760 * x1295;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10032 = x9760 * x1321;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10033 = x9762 * x336;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10034 = x9762 * x348;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10035 = x9762 * x9544;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10036 = x9762 * x598;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10037 = x9762 * x608;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10038 = x9762 * x620;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10039 = x9762 * x870;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10040 = x9762 * x880;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10041 = x9762 * x892;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10042 = x9762 * x1168;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10043 = x9762 * x1187;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10044 = x9762 * x1213;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10045 = x9762 * x1232;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10046 = x9762 * x326;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10047 = x9762 * x1258;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10048 = x9762 * x1277;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10049 = x9762 * x1303;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10050 = x9762 * x1322;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10051 = x9747 * x338;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10052 = x9747 * x351;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10053 = x9747 * x600;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10054 = x9747 * x610;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10055 = x9747 * x9547;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10056 = x9747 * x623;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10057 = x9747 * x872;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10058 = x9747 * x882;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10059 = x9747 * x895;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10060 = x9747 * x1169;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10061 = x9747 * x1195;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10062 = x9747 * x1214;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10063 = x9747 * x1240;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10064 = x9747 * x1259;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10065 = x9747 * x1285;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10066 = x9747 * x328;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10067 = x9747 * x1304;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10068 = x9747 * x1330;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10069 = x9751 * x340;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10070 = x9751 * x354;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10071 = x9751 * x602;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10072 = x9751 * x612;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10073 = x9751 * x626;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10074 = x9751 * x874;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10075 = x9751 * x9550;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10076 = x9751 * x884;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10077 = x9751 * x898;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10078 = x9751 * x1177;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10079 = x9751 * x1196;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10080 = x9751 * x1222;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10081 = x9751 * x1241;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10082 = x9751 * x1267;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10083 = x9751 * x1286;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10084 = x9751 * x1312;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10085 = x9751 * x1331;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10086 = x9751 * x330;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10087 = x9757 * x9541;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10088 = x9757 * x334;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10089 = x9757 * x345;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10090 = x9757 * x596;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10091 = x9757 * x606;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10092 = x9757 * x617;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10093 = x9757 * x868;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10094 = x9757 * x878;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10095 = x9757 * x889;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10096 = x9757 * x1160;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10097 = x9757 * x1186;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10098 = x9757 * x324;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10099 = x9757 * x1205;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10100 = x9757 * x1231;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10101 = x9757 * x1250;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10102 = x9757 * x1276;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10103 = x9757 * x1295;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10104 = x9757 * x1321;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10105 = x9761 * x336;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10106 = x9761 * x348;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10107 = x9761 * x9544;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10108 = x9761 * x598;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10109 = x9761 * x608;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10110 = x9761 * x620;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10111 = x9761 * x870;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10112 = x9761 * x880;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10113 = x9761 * x892;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10114 = x9761 * x1168;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10115 = x9761 * x1187;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10116 = x9761 * x1213;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10117 = x9761 * x1232;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10118 = x9761 * x326;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10119 = x9761 * x1258;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10120 = x9761 * x1277;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10121 = x9761 * x1303;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x10122 = x9761 * x1322;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10123 = x9763 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10124 = x9764 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10125 = x9765 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10126 = x9766 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10127 = x9767 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10128 = x9768 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10129 = x9769 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10130 = x9770 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10131 = x9771 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10132 = x9772 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10133 = x9773 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10134 = x9774 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10135 = x9775 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10136 = x9776 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10137 = x9777 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10138 = x9778 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10139 = x9779 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10140 = x9780 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10141 = x10123 + x10087;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10142 = x10124 + x10088;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10143 = x10125 + x10089;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10144 = x10126 + x10090;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10145 = x10127 + x10091;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10146 = x10128 + x10092;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10147 = x10129 + x10093;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10148 = x10130 + x10094;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10149 = x10131 + x10095;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10150 = x10132 + x10098;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10151 = x10133 + x10096;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10152 = x10134 + x10097;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10153 = x10135 + x10099;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10154 = x10136 + x10100;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10155 = x10137 + x10101;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10156 = x10138 + x10102;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10157 = x10139 + x10103;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10158 = x10140 + x10104;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10159 = x10141 + x10107;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10160 = x10142 + x10105;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10161 = x10143 + x10106;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10162 = x10144 + x10108;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10163 = x10145 + x10109;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10164 = x10146 + x10110;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10165 = x10147 + x10111;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10166 = x10148 + x10112;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10167 = x10149 + x10113;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10168 = x10150 + x10118;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10169 = x10151 + x10114;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10170 = x10152 + x10115;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10171 = x10153 + x10116;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10172 = x10154 + x10117;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10173 = x10155 + x10119;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10174 = x10156 + x10120;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10175 = x10157 + x10121;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10176 = x10158 + x10122;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10177 = x9781 + x9979;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10178 = x9782 + x9980;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10179 = x9783 + x9981;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10180 = x9784 + x9982;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10181 = x9785 + x9983;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10182 = x9786 + x9984;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10183 = x9787 + x9985;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10184 = x9788 + x9986;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10185 = x9789 + x9987;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10186 = x9790 + x9990;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10187 = x9791 + x9988;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10188 = x9792 + x9989;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10189 = x9793 + x9991;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10190 = x9794 + x9992;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10191 = x9795 + x9993;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10192 = x9796 + x9994;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10193 = x9797 + x9995;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10194 = x9798 + x9996;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10195 = x9943 + x9997;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10196 = x9944 + x9998;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10197 = x9945 + x9999;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10198 = x9946 + x10000;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10199 = x9947 + x10001;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10200 = x9948 + x10002;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10201 = x9949 + x10003;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10202 = x9950 + x10004;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10203 = x9951 + x10005;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10204 = x9952 + x10008;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10205 = x9953 + x10006;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10206 = x9954 + x10007;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10207 = x9955 + x10009;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10208 = x9956 + x10010;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10209 = x9957 + x10011;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10210 = x9958 + x10012;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10211 = x9959 + x10013;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10212 = x9960 + x10014;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10213 = x9961 + x10015;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10214 = x9962 + x10016;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10215 = x9963 + x10017;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10216 = x9964 + x10018;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10217 = x9965 + x10019;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10218 = x9966 + x10020;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10219 = x9967 + x10021;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10220 = x9968 + x10022;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10221 = x9969 + x10023;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10222 = x9970 + x10026;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10223 = x9971 + x10024;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10224 = x9972 + x10025;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10225 = x9973 + x10027;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10226 = x9974 + x10028;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10227 = x9975 + x10029;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10228 = x9976 + x10030;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10229 = x9977 + x10031;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10230 = x9978 + x10032;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10231 = x10159 + x10055;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10232 = x10160 + x10051;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10233 = x10161 + x10052;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10234 = x10162 + x10053;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10235 = x10163 + x10054;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10236 = x10164 + x10056;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10237 = x10165 + x10057;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10238 = x10166 + x10058;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10239 = x10167 + x10059;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10240 = x10168 + x10066;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10241 = x10169 + x10060;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10242 = x10170 + x10061;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10243 = x10171 + x10062;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10244 = x10172 + x10063;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10245 = x10173 + x10064;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10246 = x10174 + x10065;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10247 = x10175 + x10067;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10248 = x10176 + x10068;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10249 = x10177 + x10035;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10250 = x10178 + x10033;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10251 = x10179 + x10034;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10252 = x10180 + x10036;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10253 = x10181 + x10037;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10254 = x10182 + x10038;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10255 = x10183 + x10039;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10256 = x10184 + x10040;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10257 = x10185 + x10041;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10258 = x10186 + x10046;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10259 = x10187 + x10042;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10260 = x10188 + x10043;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10261 = x10189 + x10044;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10262 = x10190 + x10045;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10263 = x10191 + x10047;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10264 = x10192 + x10048;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10265 = x10193 + x10049;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10266 = x10194 + x10050;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10267 = x10195 + x9801;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10268 = x10196 + x9799;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10269 = x10197 + x9800;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10270 = x10198 + x9802;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10271 = x10199 + x9803;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10272 = x10200 + x9804;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10273 = x10201 + x9805;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10274 = x10202 + x9806;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10275 = x10203 + x9807;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10276 = x10204 + x9812;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10277 = x10205 + x9808;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10278 = x10206 + x9809;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10279 = x10207 + x9810;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10280 = x10208 + x9811;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10281 = x10209 + x9813;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10282 = x10210 + x9814;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10283 = x10211 + x9815;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10284 = x10212 + x9816;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10285 = x10213 + x9819;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10286 = x10214 + x9817;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10287 = x10215 + x9818;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10288 = x10216 + x9820;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10289 = x10217 + x9821;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10290 = x10218 + x9822;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10291 = x10219 + x9823;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10292 = x10220 + x9824;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10293 = x10221 + x9825;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10294 = x10222 + x9830;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10295 = x10223 + x9826;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10296 = x10224 + x9827;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10297 = x10225 + x9828;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10298 = x10226 + x9829;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10299 = x10227 + x9831;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10300 = x10228 + x9832;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10301 = x10229 + x9833;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10302 = x10230 + x9834;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10303 = x10231 + x10075;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10304 = x10232 + x10069;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10305 = x10233 + x10070;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10306 = x10235 + x10072;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10307 = x10236 + x10073;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10308 = x10238 + x10076;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10309 = x10239 + x10077;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10310 = x10242 + x10079;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10311 = x10243 + x10080;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10312 = x10245 + x10082;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10313 = x10246 + x10083;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10314 = x10248 + x10085;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10315 = x10234 + x10071;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10316 = x10237 + x10074;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10317 = x10240 + x10086;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10318 = x10241 + x10078;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10319 = x10244 + x10081;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10320 = x10247 + x10084;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10321 = x10249 + x9839;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10322 = x10250 + x9835;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10323 = x10251 + x9836;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10324 = x10252 + x9837;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10325 = x10253 + x9838;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10326 = x10254 + x9840;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10327 = x10255 + x9841;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10328 = x10256 + x9842;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10329 = x10257 + x9843;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10330 = x10258 + x9850;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10331 = x10259 + x9844;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10332 = x10260 + x9845;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10333 = x10261 + x9846;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10334 = x10262 + x9847;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10335 = x10263 + x9848;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10336 = x10264 + x9849;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10337 = x10265 + x9851;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10338 = x10266 + x9852;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10339 = x10267 + x9857;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10340 = x10268 + x9853;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10341 = x10269 + x9854;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10342 = x10270 + x9855;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10343 = x10271 + x9856;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10344 = x10272 + x9858;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10345 = x10273 + x9859;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10346 = x10274 + x9860;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10347 = x10275 + x9861;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10348 = x10276 + x9868;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10349 = x10277 + x9862;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10350 = x10278 + x9863;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10351 = x10279 + x9864;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10352 = x10280 + x9865;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10353 = x10281 + x9866;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10354 = x10282 + x9867;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10355 = x10283 + x9869;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10356 = x10284 + x9870;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10357 = x10285 + x9875;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10358 = x10286 + x9871;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10359 = x10287 + x9872;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10360 = x10288 + x9873;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10361 = x10289 + x9874;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10362 = x10290 + x9876;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10363 = x10291 + x9877;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10364 = x10292 + x9878;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10365 = x10293 + x9879;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10366 = x10294 + x9886;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10367 = x10295 + x9880;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10368 = x10296 + x9881;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10369 = x10297 + x9882;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10370 = x10298 + x9883;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10371 = x10299 + x9884;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10372 = x10300 + x9885;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10373 = x10301 + x9887;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10374 = x10302 + x9888;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10375 = x10321 + x9895;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10376 = x10322 + x9889;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10377 = x10323 + x9890;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10378 = x10325 + x9892;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10379 = x10326 + x9893;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10380 = x10328 + x9896;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10381 = x10329 + x9897;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10382 = x10332 + x9899;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10383 = x10333 + x9900;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10384 = x10335 + x9902;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10385 = x10336 + x9903;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10386 = x10338 + x9905;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10387 = x10339 + x9913;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10388 = x10340 + x9907;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10389 = x10341 + x9908;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10390 = x10343 + x9910;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10391 = x10344 + x9911;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10392 = x10346 + x9914;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10393 = x10347 + x9915;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10394 = x10350 + x9917;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10395 = x10351 + x9918;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10396 = x10353 + x9920;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10397 = x10354 + x9921;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10398 = x10356 + x9923;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10399 = x10357 + x9931;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10400 = x10358 + x9925;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10401 = x10359 + x9926;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10402 = x10361 + x9928;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10403 = x10362 + x9929;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10404 = x10364 + x9932;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10405 = x10365 + x9933;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10406 = x10368 + x9935;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10407 = x10369 + x9936;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10408 = x10371 + x9938;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10409 = x10372 + x9939;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10410 = x10374 + x9941;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10411 = x10324 + x9891;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10412 = x10327 + x9894;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10413 = x10330 + x9906;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10414 = x10331 + x9898;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10415 = x10334 + x9901;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10416 = x10337 + x9904;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10417 = x10342 + x9909;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10418 = x10345 + x9912;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10419 = x10348 + x9924;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10420 = x10349 + x9916;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10421 = x10352 + x9919;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10422 = x10355 + x9922;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10423 = x10360 + x9927;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10424 = x10363 + x9930;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10425 = x10366 + x9942;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10426 = x10367 + x9934;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10427 = x10370 + x9937;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x10428 = x10373 + x9940;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10429 = x10411 * x10402;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10430 = x10412 * x10404;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10431 = x10413 * x10400;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10432 = x10414 * x10406;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10433 = x10415 * x10408;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10434 = x10416 * x10410;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10435 = x10411 * x10378;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10436 = x10411 * x10390;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10437 = x10411 * x10306;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10438 = x10412 * x10380;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10439 = x10412 * x10392;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10440 = x10412 * x10308;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10441 = x10413 * x10376;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10442 = x10413 * x10388;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10443 = x10413 * x10304;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10444 = x10414 * x10382;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10445 = x10414 * x10394;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10446 = x10414 * x10310;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10447 = x10415 * x10384;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10448 = x10415 * x10396;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10449 = x10415 * x10312;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10450 = x10416 * x10386;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10451 = x10416 * x10398;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10452 = x10416 * x10314;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10453 = x10417 * x10402;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10454 = x10418 * x10404;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10455 = x10419 * x10400;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10456 = x10420 * x10406;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10457 = x10421 * x10408;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10458 = x10422 * x10410;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10459 = x10423 * x10402;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10460 = x10424 * x10404;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10461 = x10425 * x10400;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10462 = x10426 * x10406;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10463 = x10427 * x10408;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10464 = x10428 * x10410;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10465 = x10315 * x10378;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10466 = x10315 * x10390;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10467 = x10315 * x10402;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10468 = x10315 * x10306;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10469 = x10316 * x10380;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10470 = x10316 * x10392;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10471 = x10316 * x10404;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10472 = x10316 * x10308;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10473 = x10317 * x10376;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10474 = x10317 * x10388;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10475 = x10317 * x10400;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10476 = x10317 * x10304;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10477 = x10318 * x10382;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10478 = x10318 * x10394;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10479 = x10318 * x10406;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10480 = x10318 * x10310;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10481 = x10319 * x10384;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10482 = x10319 * x10396;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10483 = x10319 * x10408;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10484 = x10319 * x10312;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10485 = x10320 * x10386;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10486 = x10320 * x10398;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10487 = x10320 * x10410;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10488 = x10320 * x10314;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10489 = x10417 * x10378;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10490 = x10417 * x10390;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10491 = x10417 * x10306;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10492 = x10418 * x10380;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10493 = x10418 * x10392;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10494 = x10418 * x10308;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10495 = x10419 * x10376;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10496 = x10419 * x10388;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10497 = x10419 * x10304;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10498 = x10420 * x10382;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10499 = x10420 * x10394;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10500 = x10420 * x10310;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10501 = x10421 * x10384;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10502 = x10421 * x10396;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10503 = x10421 * x10312;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10504 = x10422 * x10386;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10505 = x10422 * x10398;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10506 = x10422 * x10314;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10507 = x10423 * x10378;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10508 = x10423 * x10390;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10509 = x10423 * x10306;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10510 = x10424 * x10380;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10511 = x10424 * x10392;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10512 = x10424 * x10308;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10513 = x10425 * x10376;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10514 = x10425 * x10388;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10515 = x10425 * x10304;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10516 = x10426 * x10382;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10517 = x10426 * x10394;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10518 = x10426 * x10310;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10519 = x10427 * x10384;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10520 = x10427 * x10396;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10521 = x10427 * x10312;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10522 = x10428 * x10386;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10523 = x10428 * x10398;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10524 = x10428 * x10314;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10525 = x10459 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10526 = x10460 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10527 = x10461 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10528 = x10462 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10529 = x10463 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10530 = x10464 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10531 = x10453 + x10508;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10532 = x10454 + x10511;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10533 = x10455 + x10514;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10534 = x10456 + x10517;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10535 = x10457 + x10520;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10536 = x10458 + x10523;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10537 = x10429 + x10490;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10538 = x10430 + x10493;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10539 = x10431 + x10496;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10540 = x10432 + x10499;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10541 = x10433 + x10502;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10542 = x10434 + x10505;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10543 = x10465 + x10437;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10544 = x10466 + x10435;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10545 = x10467 + x10436;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10546 = x10469 + x10440;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10547 = x10470 + x10438;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10548 = x10471 + x10439;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10549 = x10473 + x10443;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10550 = x10474 + x10441;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10551 = x10475 + x10442;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10552 = x10477 + x10446;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10553 = x10478 + x10444;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10554 = x10479 + x10445;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10555 = x10481 + x10449;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10556 = x10482 + x10447;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10557 = x10483 + x10448;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10558 = x10485 + x10452;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10559 = x10486 + x10450;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10560 = x10487 + x10451;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10561 = x10531 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10562 = x10532 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10563 = x10533 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10564 = x10534 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10565 = x10535 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10566 = x10536 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10567 = x10537 + x10507;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10568 = x10538 + x10510;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10569 = x10539 + x10513;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10570 = x10540 + x10516;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10571 = x10541 + x10519;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10572 = x10542 + x10522;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10573 = x10543 + x10561;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10574 = x10544 + x10491;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10575 = x10545 + x10489;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10576 = x10546 + x10562;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10577 = x10547 + x10494;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10578 = x10548 + x10492;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10579 = x10549 + x10563;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10580 = x10550 + x10497;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10581 = x10551 + x10495;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10582 = x10552 + x10564;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10583 = x10553 + x10500;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10584 = x10554 + x10498;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10585 = x10555 + x10565;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10586 = x10556 + x10503;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10587 = x10557 + x10501;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10588 = x10558 + x10566;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10589 = x10559 + x10506;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10590 = x10560 + x10504;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10591 = x10573 * x10403;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10592 = x10576 * x10405;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10593 = x10579 * x10401;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10594 = x10582 * x10407;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10595 = x10585 * x10409;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10596 = x10588 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10597 = x10567 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10598 = x10568 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10599 = x10569 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10600 = x10570 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10601 = x10571 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10602 = x10572 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10603 = x10573 * x10379;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10604 = x10573 * x10391;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10605 = x10573 * x10307;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10606 = x10576 * x10381;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10607 = x10576 * x10393;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10608 = x10576 * x10309;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10609 = x10579 * x10377;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10610 = x10579 * x10389;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10611 = x10579 * x10305;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10612 = x10582 * x10383;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10613 = x10582 * x10395;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10614 = x10582 * x10311;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10615 = x10585 * x10385;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10616 = x10585 * x10397;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10617 = x10585 * x10313;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10618 = x10588 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10619 = x10588 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10620 = x10588 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10621 = x10574 + x10525;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10622 = x10575 + x10509;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10623 = x10577 + x10526;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10624 = x10578 + x10512;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10625 = x10580 + x10527;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10626 = x10581 + x10515;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10627 = x10583 + x10528;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10628 = x10584 + x10518;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10629 = x10586 + x10529;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10630 = x10587 + x10521;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10631 = x10589 + x10530;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10632 = x10590 + x10524;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10633 = x10468 + x10597;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10634 = x10472 + x10598;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10635 = x10476 + x10599;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10636 = x10480 + x10600;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10637 = x10484 + x10601;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10638 = x10488 + x10602;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10639 = x10621 * x10403;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10640 = x10622 * x10403;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10641 = x10623 * x10405;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10642 = x10624 * x10405;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10643 = x10625 * x10401;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10644 = x10626 * x10401;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10645 = x10627 * x10407;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10646 = x10628 * x10407;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10647 = x10629 * x10409;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10648 = x10630 * x10409;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10649 = x10631 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10650 = x10632 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10651 = x10633 * x10379;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10652 = x10633 * x10391;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10653 = x10633 * x10403;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10654 = x10633 * x10307;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10655 = x10634 * x10381;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10656 = x10634 * x10393;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10657 = x10634 * x10405;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10658 = x10634 * x10309;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10659 = x10635 * x10377;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10660 = x10635 * x10389;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10661 = x10635 * x10401;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10662 = x10635 * x10305;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10663 = x10636 * x10383;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10664 = x10636 * x10395;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10665 = x10636 * x10407;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10666 = x10636 * x10311;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10667 = x10637 * x10385;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10668 = x10637 * x10397;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10669 = x10637 * x10409;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10670 = x10637 * x10313;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10671 = x10638 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10672 = x10638 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10673 = x10638 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10674 = x10638 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10675 = x10621 * x10379;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10676 = x10621 * x10391;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10677 = x10621 * x10307;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10678 = x10622 * x10379;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10679 = x10622 * x10391;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10680 = x10622 * x10307;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10681 = x10623 * x10381;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10682 = x10623 * x10393;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10683 = x10623 * x10309;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10684 = x10624 * x10381;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10685 = x10624 * x10393;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10686 = x10624 * x10309;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10687 = x10625 * x10377;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10688 = x10625 * x10389;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10689 = x10625 * x10305;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10690 = x10626 * x10377;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10691 = x10626 * x10389;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10692 = x10626 * x10305;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10693 = x10627 * x10383;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10694 = x10627 * x10395;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10695 = x10627 * x10311;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10696 = x10628 * x10383;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10697 = x10628 * x10395;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10698 = x10628 * x10311;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10699 = x10629 * x10385;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10700 = x10629 * x10397;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10701 = x10629 * x10313;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10702 = x10630 * x10385;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10703 = x10630 * x10397;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10704 = x10630 * x10313;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10705 = x10631 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10706 = x10631 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10707 = x10631 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10708 = x10632 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10709 = x10632 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10710 = x10632 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10711 = x10640 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10712 = x10642 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10713 = x10644 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10714 = x10646 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10715 = x10648 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10716 = x10650 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10717 = x10639 + x10679;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10718 = x10641 + x10685;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10719 = x10643 + x10691;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10720 = x10645 + x10697;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10721 = x10647 + x10703;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10722 = x10649 + x10709;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10723 = x10591 + x10676;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10724 = x10592 + x10682;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10725 = x10593 + x10688;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10726 = x10594 + x10694;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10727 = x10595 + x10700;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10728 = x10596 + x10706;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10729 = x10651 + x10605;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10730 = x10652 + x10603;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10731 = x10653 + x10604;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10732 = x10655 + x10608;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10733 = x10656 + x10606;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10734 = x10657 + x10607;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10735 = x10659 + x10611;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10736 = x10660 + x10609;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10737 = x10661 + x10610;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10738 = x10663 + x10614;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10739 = x10664 + x10612;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10740 = x10665 + x10613;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10741 = x10667 + x10617;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10742 = x10668 + x10615;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10743 = x10669 + x10616;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10744 = x10671 + x10620;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10745 = x10672 + x10618;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10746 = x10673 + x10619;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10747 = x10717 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10748 = x10718 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10749 = x10719 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10750 = x10720 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10751 = x10721 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10752 = x10722 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10753 = x10723 + x10678;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10754 = x10724 + x10684;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10755 = x10725 + x10690;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10756 = x10726 + x10696;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10757 = x10727 + x10702;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10758 = x10728 + x10708;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10759 = x10730 + x10677;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10760 = x10731 + x10675;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10761 = x10733 + x10683;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10762 = x10734 + x10681;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10763 = x10736 + x10689;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10764 = x10737 + x10687;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10765 = x10739 + x10695;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10766 = x10740 + x10693;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10767 = x10742 + x10701;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10768 = x10743 + x10699;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10769 = x10745 + x10707;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10770 = x10746 + x10705;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10771 = x10729 + x10747;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10772 = x10732 + x10748;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10773 = x10735 + x10749;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10774 = x10759 + x10711;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10775 = x10760 + x10680;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10776 = x10761 + x10712;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10777 = x10762 + x10686;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10778 = x10763 + x10713;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10779 = x10764 + x10692;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10780 = x10765 + x10714;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10781 = x10766 + x10698;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10782 = x10767 + x10715;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10783 = x10768 + x10704;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10784 = x10769 + x10716;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10785 = x10770 + x10710;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10786 = x10738 + x10750;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10787 = x10741 + x10751;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10788 = x10744 + x10752;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10789 = x10753 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10790 = x10754 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10791 = x10755 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10792 = x10756 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10793 = x10757 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10794 = x10758 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10795 = x10654 + x10789;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10796 = x10658 + x10790;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10797 = x10662 + x10791;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10798 = x10666 + x10792;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10799 = x10670 + x10793;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x10800 = x10674 + x10794;
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/FpExtReg/elem[0](Reg)"("./zirgen/components/plonk.h":288:20))
  auto x10801 = args[4][4 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/FpExtReg/elem[1](Reg)"("./zirgen/components/plonk.h":288:20))
  auto x10802 = args[4][5 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/FpExtReg/elem[2](Reg)"("./zirgen/components/plonk.h":288:20))
  auto x10803 = args[4][6 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/FpExtReg/elem[3](Reg)"("./zirgen/components/plonk.h":288:20))
  auto x10804 = args[4][7 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/recursion::WomHeader/accum(FpExtReg)/elem[0](Reg)"("./zirgen/components/plonk.h":286:45))
  auto x10805 = args[4][0 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/recursion::WomHeader/accum(FpExtReg)/elem[1](Reg)"("./zirgen/components/plonk.h":286:45))
  auto x10806 = args[4][1 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/recursion::WomHeader/accum(FpExtReg)/elem[2](Reg)"("./zirgen/components/plonk.h":286:45))
  auto x10807 = args[4][2 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("top(recursion::Top)/recursion::WomHeader/accum(FpExtReg)/elem[3](Reg)"("./zirgen/components/plonk.h":286:45))
  auto x10808 = args[4][3 * steps + ((cycle - kInvRate * 1) & mask)];
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10809 = x10801 * x10780;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10810 = x10801 * x10781;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10811 = x10801 * x10786;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10812 = x10801 * x10798;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10813 = x10802 * x10781;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10814 = x10803 * x10781;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10815 = x10804 * x10781;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10816 = x10805 * x10773;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10817 = x10805 * x10797;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10818 = x10805 * x10778;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10819 = x10805 * x10779;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10820 = x10806 * x10779;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10821 = x10807 * x10779;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10822 = x10808 * x10779;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10823 = x10802 * x10780;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10824 = x10802 * x10786;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10825 = x10802 * x10798;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10826 = x10803 * x10780;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10827 = x10803 * x10786;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10828 = x10803 * x10798;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10829 = x10804 * x10780;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10830 = x10804 * x10786;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10831 = x10804 * x10798;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10832 = x10806 * x10773;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10833 = x10806 * x10797;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10834 = x10806 * x10778;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10835 = x10807 * x10773;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10836 = x10807 * x10797;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10837 = x10807 * x10778;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10838 = x10808 * x10773;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10839 = x10808 * x10797;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10840 = x10808 * x10778;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10841 = x10815 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10842 = x10822 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10843 = x10809 + x10824;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10844 = x10810 + x10823;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10845 = x10811 + x10825;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10846 = x10813 + x10826;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10847 = x10814 + x10829;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10848 = x10816 + x10833;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10849 = x10818 + x10832;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10850 = x10819 + x10834;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10851 = x10820 + x10837;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10852 = x10821 + x10840;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10853 = x10847 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10854 = x10852 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10855 = x10843 + x10828;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10856 = x10844 + x10827;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10857 = x10846 + x10830;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10858 = x10848 + x10854;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10859 = x10849 + x10836;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10860 = x10850 + x10835;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10861 = x10851 + x10838;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10862 = x10855 + x10841;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10863 = x10856 + x10831;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10864 = x10845 + x10853;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10865 = x10857 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10866 = x10861 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10867 = x10859 + x10842;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10868 = x10860 + x10839;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10869 = x10817 + x10866;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10870 = x10812 + x10865;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10871 = x10869 - x10870;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x10872 = x284 + x10871 * poly_mix[0];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10873 = x10858 - x10864;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x10874 = x10872 + x10873 * poly_mix[1];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10875 = x10867 - x10862;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x10876 = x10874 + x10875 * poly_mix[2];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10877 = x10868 - x10863;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x10878 = x10876 + x10877 * poly_mix[3];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10879 = x10801 * x10771;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10880 = x10801 * x10795;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10881 = x10801 * x10774;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10882 = x10801 * x10775;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10883 = x10802 * x10775;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10884 = x10803 * x10775;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10885 = x10804 * x10775;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10886 = x10802 * x10771;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10887 = x10802 * x10795;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10888 = x10802 * x10774;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10889 = x10803 * x10771;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10890 = x10803 * x10795;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10891 = x10803 * x10774;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10892 = x10804 * x10771;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10893 = x10804 * x10795;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10894 = x10804 * x10774;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10895 = x10885 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10896 = x10879 + x10887;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10897 = x10881 + x10886;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10898 = x10882 + x10888;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10899 = x10883 + x10891;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10900 = x10884 + x10894;
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/FpExtReg/elem[2](Reg)"("./zirgen/components/plonk.h":288:20))
  auto x10901 = args[4][10 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/FpExtReg/elem[3](Reg)"("./zirgen/components/plonk.h":288:20))
  auto x10902 = args[4][11 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/FpExtReg/elem[0](Reg)"("./zirgen/components/plonk.h":288:20))
  auto x10903 = args[4][8 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/FpExtReg/elem[1](Reg)"("./zirgen/components/plonk.h":288:20))
  auto x10904 = args[4][9 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10905 = x10901 * x10783;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10906 = x10902 * x10783;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10907 = x10903 * x10782;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10908 = x10903 * x10783;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10909 = x10903 * x10787;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10910 = x10903 * x10799;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10911 = x10904 * x10783;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10912 = x10900 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10913 = x10901 * x10782;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10914 = x10901 * x10787;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10915 = x10901 * x10799;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10916 = x10902 * x10782;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10917 = x10902 * x10787;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10918 = x10902 * x10799;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10919 = x10904 * x10782;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10920 = x10904 * x10787;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10921 = x10904 * x10799;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10922 = x10906 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10923 = x10896 + x10912;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10924 = x10897 + x10890;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10925 = x10898 + x10889;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10926 = x10899 + x10892;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10927 = x10905 + x10916;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10928 = x10907 + x10920;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10929 = x10908 + x10919;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10930 = x10909 + x10921;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10931 = x10911 + x10913;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10932 = x10926 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10933 = x10927 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10934 = x10924 + x10895;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10935 = x10925 + x10893;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10936 = x10928 + x10915;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10937 = x10929 + x10914;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10938 = x10931 + x10917;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10939 = x10880 + x10932;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10940 = x10936 + x10922;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10941 = x10937 + x10918;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10942 = x10930 + x10933;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10943 = x10938 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10944 = x10910 + x10943;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10945 = x10939 - x10944;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x10946 = x10878 + x10945 * poly_mix[4];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10947 = x10923 - x10942;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x10948 = x10946 + x10947 * poly_mix[5];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10949 = x10934 - x10940;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x10950 = x10948 + x10949 * poly_mix[6];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10951 = x10935 - x10941;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x10952 = x10950 + x10951 * poly_mix[7];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10953 = x10901 * x10777;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10954 = x10902 * x10777;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10955 = x10903 * x10772;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10956 = x10903 * x10796;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10957 = x10903 * x10776;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10958 = x10903 * x10777;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10959 = x10904 * x10777;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10960 = x10901 * x10772;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10961 = x10901 * x10796;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10962 = x10901 * x10776;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10963 = x10902 * x10772;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10964 = x10902 * x10796;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10965 = x10902 * x10776;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10966 = x10904 * x10772;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10967 = x10904 * x10796;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10968 = x10904 * x10776;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10969 = x10954 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10970 = x10953 + x10965;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10971 = x10955 + x10967;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10972 = x10957 + x10966;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10973 = x10958 + x10968;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10974 = x10959 + x10962;
  // loc("top(recursion::Top)/recursion::WomHeader/accum(FpExtReg)/elem[0](Reg)"("./zirgen/components/plonk.h":288:20))
  auto x10975 = args[4][0 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/recursion::WomHeader/accum(FpExtReg)/elem[1](Reg)"("./zirgen/components/plonk.h":288:20))
  auto x10976 = args[4][1 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/recursion::WomHeader/accum(FpExtReg)/elem[2](Reg)"("./zirgen/components/plonk.h":288:20))
  auto x10977 = args[4][2 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("top(recursion::Top)/recursion::WomHeader/accum(FpExtReg)/elem[3](Reg)"("./zirgen/components/plonk.h":288:20))
  auto x10978 = args[4][3 * steps + ((cycle - kInvRate * 0) & mask)];
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10979 = x10975 * x10784;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10980 = x10975 * x10785;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10981 = x10975 * x10788;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10982 = x10975 * x10800;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10983 = x10976 * x10785;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10984 = x10977 * x10785;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10985 = x10978 * x10785;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10986 = x10970 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10987 = x10976 * x10784;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10988 = x10976 * x10788;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10989 = x10976 * x10800;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10990 = x10977 * x10784;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10991 = x10977 * x10788;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10992 = x10977 * x10800;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10993 = x10978 * x10784;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10994 = x10978 * x10788;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10995 = x10978 * x10800;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x10996 = x10985 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10997 = x10971 + x10986;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10998 = x10972 + x10961;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x10999 = x10973 + x10960;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11000 = x10974 + x10963;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11001 = x10979 + x10988;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11002 = x10980 + x10987;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11003 = x10981 + x10989;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11004 = x10983 + x10990;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11005 = x10984 + x10993;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11006 = x11000 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11007 = x11005 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11008 = x10998 + x10969;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11009 = x10999 + x10964;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11010 = x11001 + x10992;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11011 = x11002 + x10991;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11012 = x11004 + x10994;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11013 = x10956 + x11006;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11014 = x11010 + x10996;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11015 = x11011 + x10995;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11016 = x11003 + x11007;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11017 = x11012 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11018 = x10982 + x11017;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11019 = x11013 - x11018;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11020 = x10952 + x11019 * poly_mix[8];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11021 = x10997 - x11016;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11022 = x11020 + x11021 * poly_mix[9];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11023 = x11008 - x11014;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11024 = x11022 + x11023 * poly_mix[10];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11025 = x11009 - x11015;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11026 = x11024 + x11025 * poly_mix[11];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11027 = x9742 + x285 * x11026 * poly_mix[147];
  // loc("zirgen/components/fpext.cpp":28:5)
  auto x11028 = x10975 - x1;
  // loc("zirgen/components/fpext.cpp":28:5)
  FpExt x11029 = x284 + x11028 * poly_mix[0];
  // loc("zirgen/components/fpext.cpp":28:5)
  FpExt x11030 = x11029 + x10976 * poly_mix[1];
  // loc("zirgen/components/fpext.cpp":28:5)
  FpExt x11031 = x11030 + x10977 * poly_mix[2];
  // loc("zirgen/components/fpext.cpp":28:5)
  FpExt x11032 = x11031 + x10978 * poly_mix[3];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11033 = x284 + x319 * x11032 * poly_mix[0];
  // loc("./zirgen/components/plonk.h":124:57)
  auto x11034 = x10805 - x1;
  // loc("./zirgen/components/plonk.h":124:57)
  FpExt x11035 = x284 + x11034 * poly_mix[0];
  // loc("./zirgen/components/plonk.h":124:57)
  FpExt x11036 = x11035 + x10806 * poly_mix[1];
  // loc("./zirgen/components/plonk.h":124:57)
  FpExt x11037 = x11036 + x10807 * poly_mix[2];
  // loc("./zirgen/components/plonk.h":124:57)
  FpExt x11038 = x11037 + x10808 * poly_mix[3];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11039 = x11033 + x321 * x11038 * poly_mix[4];
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11040 = x9743 * x334;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11041 = x9743 * x345;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11042 = x9743 * x596;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11043 = x9743 * x606;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11044 = x9743 * x617;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11045 = x9744 * x334;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11046 = x9744 * x345;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11047 = x9744 * x596;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11048 = x9744 * x606;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11049 = x9744 * x617;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11050 = x9745 * x338;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11051 = x9745 * x351;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11052 = x9745 * x600;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11053 = x9745 * x610;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11054 = x9745 * x623;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11055 = x9746 * x338;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11056 = x9746 * x351;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11057 = x9746 * x600;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11058 = x9746 * x610;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11059 = x9746 * x623;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11060 = x9748 * x340;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11061 = x9748 * x354;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11062 = x9748 * x602;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11063 = x9748 * x612;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11064 = x9748 * x626;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11065 = x9749 * x340;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11066 = x9749 * x354;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11067 = x9749 * x602;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11068 = x9749 * x612;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11069 = x9749 * x626;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11070 = x9750 * x340;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11071 = x9750 * x354;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11072 = x9750 * x602;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11073 = x9750 * x612;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11074 = x9750 * x626;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11075 = x9752 * x342;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11076 = x9752 * x594;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11077 = x9752 * x604;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11078 = x9752 * x614;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11079 = x9752 * x866;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11080 = x9753 * x342;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11081 = x9753 * x594;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11082 = x9753 * x604;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11083 = x9753 * x614;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11084 = x9753 * x866;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11085 = x9754 * x342;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11086 = x9754 * x594;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11087 = x9754 * x604;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11088 = x9754 * x614;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11089 = x9754 * x866;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11090 = x9755 * x334;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11091 = x9755 * x345;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11092 = x9755 * x596;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11093 = x9755 * x606;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11094 = x9755 * x617;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11095 = x9756 * x334;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11096 = x9756 * x345;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11097 = x9756 * x596;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11098 = x9756 * x606;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11099 = x9756 * x617;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11100 = x9758 * x336;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11101 = x9758 * x348;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11102 = x9758 * x598;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11103 = x9758 * x608;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11104 = x9758 * x620;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11105 = x9759 * x336;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11106 = x9759 * x348;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11107 = x9759 * x598;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11108 = x9759 * x608;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11109 = x9759 * x620;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11110 = x9760 * x336;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11111 = x9760 * x348;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11112 = x9760 * x598;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11113 = x9760 * x608;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11114 = x9760 * x620;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11115 = x9762 * x338;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11116 = x9762 * x351;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11117 = x9762 * x600;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11118 = x9762 * x610;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11119 = x9762 * x623;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11120 = x9747 * x340;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11121 = x9747 * x354;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11122 = x9747 * x602;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11123 = x9747 * x612;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11124 = x9747 * x626;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11125 = x9751 * x342;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11126 = x9751 * x594;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11127 = x9751 * x604;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11128 = x9751 * x614;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11129 = x9751 * x866;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11130 = x9757 * x336;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11131 = x9757 * x348;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11132 = x9757 * x598;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11133 = x9757 * x608;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11134 = x9757 * x620;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11135 = x9761 * x338;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11136 = x9761 * x351;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11137 = x9761 * x600;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11138 = x9761 * x610;
  // loc("./zirgen/components/plonk.h":220:23)
  auto x11139 = x9761 * x623;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11140 = x11040 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11141 = x11041 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11142 = x11042 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11143 = x11043 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11144 = x11044 + x1;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11145 = x11140 + x11130;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11146 = x11141 + x11131;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11147 = x11142 + x11132;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11148 = x11143 + x11133;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11149 = x11144 + x11134;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11150 = x11145 + x11135;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11151 = x11146 + x11136;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11152 = x11147 + x11137;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11153 = x11148 + x11138;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11154 = x11149 + x11139;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11155 = x11045 + x11100;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11156 = x11046 + x11101;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11157 = x11047 + x11102;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11158 = x11048 + x11103;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11159 = x11049 + x11104;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11160 = x11090 + x11105;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11161 = x11091 + x11106;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11162 = x11092 + x11107;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11163 = x11093 + x11108;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11164 = x11094 + x11109;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11165 = x11095 + x11110;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11166 = x11096 + x11111;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11167 = x11097 + x11112;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11168 = x11098 + x11113;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11169 = x11099 + x11114;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11170 = x11150 + x11120;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11171 = x11151 + x11121;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11172 = x11152 + x11122;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11173 = x11153 + x11123;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11174 = x11154 + x11124;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11175 = x11155 + x11115;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11176 = x11156 + x11116;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11177 = x11157 + x11117;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11178 = x11158 + x11118;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11179 = x11159 + x11119;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11180 = x11160 + x11050;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11181 = x11161 + x11051;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11182 = x11162 + x11052;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11183 = x11163 + x11053;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11184 = x11164 + x11054;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11185 = x11165 + x11055;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11186 = x11166 + x11056;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11187 = x11167 + x11057;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11188 = x11168 + x11058;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11189 = x11169 + x11059;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11190 = x11171 + x11126;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11191 = x11174 + x11129;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11192 = x11170 + x11125;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11193 = x11172 + x11127;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11194 = x11173 + x11128;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11195 = x11175 + x11060;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11196 = x11176 + x11061;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11197 = x11177 + x11062;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11198 = x11178 + x11063;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11199 = x11179 + x11064;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11200 = x11180 + x11065;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11201 = x11181 + x11066;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11202 = x11182 + x11067;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11203 = x11183 + x11068;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11204 = x11184 + x11069;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11205 = x11185 + x11070;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11206 = x11186 + x11071;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11207 = x11187 + x11072;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11208 = x11188 + x11073;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11209 = x11189 + x11074;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11210 = x11196 + x11076;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11211 = x11199 + x11079;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11212 = x11201 + x11081;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11213 = x11204 + x11084;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11214 = x11206 + x11086;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11215 = x11209 + x11089;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11216 = x11195 + x11075;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11217 = x11197 + x11077;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11218 = x11198 + x11078;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11219 = x11200 + x11080;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11220 = x11202 + x11082;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11221 = x11203 + x11083;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11222 = x11205 + x11085;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11223 = x11207 + x11087;
  // loc("./zirgen/components/plonk.h":220:17)
  auto x11224 = x11208 + x11088;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11225 = x11216 * x11214;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11226 = x11218 * x11215;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11227 = x11216 * x11210;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11228 = x11216 * x11212;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11229 = x11216 * x11190;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11230 = x11218 * x11211;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11231 = x11218 * x11213;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11232 = x11218 * x11191;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11233 = x11219 * x11214;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11234 = x11221 * x11215;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11235 = x11222 * x11214;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11236 = x11224 * x11215;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11237 = x11192 * x11210;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11238 = x11192 * x11212;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11239 = x11192 * x11214;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11240 = x11192 * x11190;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11241 = x11194 * x11211;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11242 = x11194 * x11213;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11243 = x11194 * x11215;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11244 = x11194 * x11191;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11245 = x11219 * x11210;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11246 = x11219 * x11212;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11247 = x11219 * x11190;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11248 = x11221 * x11211;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11249 = x11221 * x11213;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11250 = x11221 * x11191;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11251 = x11222 * x11210;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11252 = x11222 * x11212;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11253 = x11222 * x11190;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11254 = x11224 * x11211;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11255 = x11224 * x11213;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11256 = x11224 * x11191;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11257 = x11235 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11258 = x11236 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11259 = x11233 + x11252;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11260 = x11234 + x11255;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11261 = x11225 + x11246;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11262 = x11226 + x11249;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11263 = x11237 + x11229;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11264 = x11238 + x11227;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11265 = x11239 + x11228;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11266 = x11241 + x11232;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11267 = x11242 + x11230;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11268 = x11243 + x11231;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11269 = x11259 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11270 = x11260 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11271 = x11261 + x11251;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11272 = x11262 + x11254;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11273 = x11264 + x11247;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11274 = x11265 + x11245;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11275 = x11267 + x11250;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11276 = x11268 + x11248;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11277 = x11263 + x11269;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11278 = x11273 + x11257;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11279 = x11274 + x11253;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11280 = x11275 + x11258;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11281 = x11276 + x11256;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11282 = x11266 + x11270;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11283 = x11271 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11284 = x11272 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11285 = x11240 + x11283;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11286 = x11244 + x11284;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11287 = x10801 * x11280;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11288 = x10801 * x11281;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11289 = x10801 * x11282;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11290 = x10801 * x11286;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11291 = x10802 * x11281;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11292 = x10803 * x11281;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11293 = x10804 * x11281;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11294 = x10805 * x11277;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11295 = x10805 * x11285;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11296 = x10805 * x11278;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11297 = x10805 * x11279;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11298 = x10806 * x11279;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11299 = x10807 * x11279;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11300 = x10808 * x11279;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11301 = x10802 * x11280;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11302 = x10802 * x11282;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11303 = x10802 * x11286;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11304 = x10803 * x11280;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11305 = x10803 * x11282;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11306 = x10803 * x11286;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11307 = x10804 * x11280;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11308 = x10804 * x11282;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11309 = x10804 * x11286;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11310 = x10806 * x11277;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11311 = x10806 * x11285;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11312 = x10806 * x11278;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11313 = x10807 * x11277;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11314 = x10807 * x11285;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11315 = x10807 * x11278;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11316 = x10808 * x11277;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11317 = x10808 * x11285;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11318 = x10808 * x11278;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11319 = x11293 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11320 = x11300 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11321 = x11287 + x11302;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11322 = x11288 + x11301;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11323 = x11289 + x11303;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11324 = x11291 + x11304;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11325 = x11292 + x11307;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11326 = x11294 + x11311;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11327 = x11296 + x11310;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11328 = x11297 + x11312;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11329 = x11298 + x11315;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11330 = x11299 + x11318;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11331 = x11325 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11332 = x11330 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11333 = x11321 + x11306;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11334 = x11322 + x11305;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11335 = x11324 + x11308;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11336 = x11326 + x11332;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11337 = x11327 + x11314;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11338 = x11328 + x11313;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11339 = x11329 + x11316;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11340 = x11333 + x11319;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11341 = x11334 + x11309;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11342 = x11323 + x11331;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11343 = x11335 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11344 = x11339 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11345 = x11337 + x11320;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11346 = x11338 + x11317;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11347 = x11295 + x11344;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11348 = x11290 + x11343;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11349 = x11347 - x11348;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11350 = x284 + x11349 * poly_mix[0];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11351 = x11336 - x11342;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11352 = x11350 + x11351 * poly_mix[1];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11353 = x11345 - x11340;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11354 = x11352 + x11353 * poly_mix[2];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11355 = x11346 - x11341;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11356 = x11354 + x11355 * poly_mix[3];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11357 = x10801 * x11217;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11358 = x10801 * x11193;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11359 = x10801 * x11220;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11360 = x10801 * x11223;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11361 = x10802 * x11223;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11362 = x10803 * x11223;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11363 = x10804 * x11223;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11364 = x10802 * x11217;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11365 = x10802 * x11193;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11366 = x10802 * x11220;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11367 = x10803 * x11217;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11368 = x10803 * x11193;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11369 = x10803 * x11220;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11370 = x10804 * x11217;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11371 = x10804 * x11193;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11372 = x10804 * x11220;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11373 = x11363 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11374 = x11357 + x11365;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11375 = x11359 + x11364;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11376 = x11360 + x11366;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11377 = x11361 + x11369;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11378 = x11362 + x11372;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11379 = x10975 * x10387;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11380 = x10975 * x10399;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11381 = x10975 * x10375;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11382 = x10975 * x10303;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11383 = x10976 * x10399;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11384 = x10977 * x10399;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11385 = x10978 * x10399;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11386 = x11378 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11387 = x10976 * x10387;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11388 = x10976 * x10375;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11389 = x10976 * x10303;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11390 = x10977 * x10387;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11391 = x10977 * x10375;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11392 = x10977 * x10303;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11393 = x10978 * x10387;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11394 = x10978 * x10375;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11395 = x10978 * x10303;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11396 = x11385 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11397 = x11374 + x11386;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11398 = x11375 + x11368;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11399 = x11376 + x11367;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11400 = x11377 + x11370;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11401 = x11379 + x11388;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11402 = x11380 + x11387;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11403 = x11381 + x11389;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11404 = x11383 + x11390;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11405 = x11384 + x11393;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11406 = x11400 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11407 = x11405 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11408 = x11398 + x11373;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11409 = x11399 + x11371;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11410 = x11401 + x11392;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11411 = x11402 + x11391;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11412 = x11404 + x11394;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11413 = x11358 + x11406;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11414 = x11410 + x11396;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11415 = x11411 + x11395;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11416 = x11403 + x11407;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11417 = x11412 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11418 = x11382 + x11417;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11419 = x11413 - x11418;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11420 = x11356 + x11419 * poly_mix[4];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11421 = x11397 - x11416;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11422 = x11420 + x11421 * poly_mix[5];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11423 = x11408 - x11414;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11424 = x11422 + x11423 * poly_mix[6];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11425 = x11409 - x11415;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11426 = x11424 + x11425 * poly_mix[7];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11427 = x11039 + x320 * x11426 * poly_mix[8];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11428 = x11427 + x559 * x11426 * poly_mix[16];
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11429 = x11217 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11430 = x11217 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11431 = x11217 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11432 = x11217 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11433 = x11220 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11434 = x11223 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11435 = x11193 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11436 = x11193 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11437 = x11193 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11438 = x11193 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11439 = x11220 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11440 = x11220 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11441 = x11220 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11442 = x11223 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11443 = x11223 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11444 = x11223 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11445 = x11434 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11446 = x11433 + x11443;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11447 = x11429 + x11440;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11448 = x11435 + x11432;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11449 = x11436 + x11430;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11450 = x11437 + x11431;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11451 = x11446 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11452 = x11447 + x11442;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11453 = x11449 + x11441;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11454 = x11450 + x11439;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11455 = x11453 + x11445;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11456 = x11454 + x11444;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11457 = x11448 + x11451;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11458 = x11452 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11459 = x11438 + x11458;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11460 = x10975 * x11455;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11461 = x10975 * x11456;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11462 = x10975 * x11457;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11463 = x10975 * x11459;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11464 = x10976 * x11456;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11465 = x10977 * x11456;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11466 = x10978 * x11456;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11467 = x10976 * x11455;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11468 = x10976 * x11457;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11469 = x10976 * x11459;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11470 = x10977 * x11455;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11471 = x10977 * x11457;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11472 = x10977 * x11459;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11473 = x10978 * x11455;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11474 = x10978 * x11457;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11475 = x10978 * x11459;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11476 = x11466 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11477 = x11460 + x11468;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11478 = x11461 + x11467;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11479 = x11462 + x11469;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11480 = x11464 + x11470;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11481 = x11465 + x11473;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11482 = x11481 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11483 = x11477 + x11472;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11484 = x11478 + x11471;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11485 = x11480 + x11474;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11486 = x11483 + x11476;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11487 = x11484 + x11475;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11488 = x11479 + x11482;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11489 = x11485 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11490 = x11463 + x11489;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11491 = x11347 - x11490;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11492 = x284 + x11491 * poly_mix[0];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11493 = x11336 - x11488;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11494 = x11492 + x11493 * poly_mix[1];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11495 = x11345 - x11486;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11496 = x11494 + x11495 * poly_mix[2];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11497 = x11346 - x11487;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11498 = x11496 + x11497 * poly_mix[3];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11499 = x11428 + x591 * x11498 * poly_mix[24];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11500 = x11499 + x593 * x11498 * poly_mix[28];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11501 = x11500 + x592 * x11498 * poly_mix[32];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11502 = x11501 + x831 * x11498 * poly_mix[36];
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11503 = x10377 * x10423;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11504 = x10378 * x10403;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11505 = x10381 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11506 = x10377 * x10411;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11507 = x10377 * x10417;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11508 = x10377 * x10315;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11509 = x10378 * x10379;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11510 = x10378 * x10391;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11511 = x10378 * x10307;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11512 = x10381 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11513 = x10381 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11514 = x10381 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11515 = x10389 * x10423;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11516 = x10390 * x10403;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11517 = x10393 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11518 = x10401 * x10423;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11519 = x10402 * x10403;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11520 = x10405 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11521 = x10305 * x10411;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11522 = x10305 * x10417;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11523 = x10305 * x10423;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11524 = x10305 * x10315;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11525 = x10306 * x10379;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11526 = x10306 * x10391;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11527 = x10306 * x10403;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11528 = x10306 * x10307;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11529 = x10309 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11530 = x10309 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11531 = x10309 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11532 = x10309 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11533 = x10389 * x10411;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11534 = x10389 * x10417;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11535 = x10389 * x10315;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11536 = x10390 * x10379;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11537 = x10390 * x10391;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11538 = x10390 * x10307;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11539 = x10393 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11540 = x10393 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11541 = x10393 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11542 = x10401 * x10411;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11543 = x10401 * x10417;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11544 = x10401 * x10315;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11545 = x10402 * x10379;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11546 = x10402 * x10391;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11547 = x10402 * x10307;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11548 = x10405 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11549 = x10405 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11550 = x10405 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11551 = x11518 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11552 = x11519 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11553 = x11520 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11554 = x11515 + x11543;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11555 = x11516 + x11546;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11556 = x11517 + x11549;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11557 = x11503 + x11534;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11558 = x11504 + x11537;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11559 = x11505 + x11540;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11560 = x11521 + x11508;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11561 = x11522 + x11506;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11562 = x11523 + x11507;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11563 = x11525 + x11511;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11564 = x11526 + x11509;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11565 = x11527 + x11510;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11566 = x11529 + x11514;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11567 = x11530 + x11512;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11568 = x11531 + x11513;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11569 = x11554 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11570 = x11555 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11571 = x11556 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11572 = x11557 + x11542;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11573 = x11558 + x11545;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11574 = x11559 + x11548;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11575 = x11561 + x11535;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11576 = x11562 + x11533;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11577 = x11564 + x11538;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11578 = x11565 + x11536;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11579 = x11567 + x11541;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11580 = x11568 + x11539;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11581 = x11560 + x11569;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11582 = x11563 + x11570;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11583 = x11575 + x11551;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11584 = x11576 + x11544;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11585 = x11577 + x11552;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11586 = x11578 + x11547;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11587 = x11579 + x11553;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11588 = x11580 + x11550;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11589 = x11566 + x11571;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11590 = x11572 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11591 = x11573 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11592 = x11574 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11593 = x11524 + x11590;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11594 = x11528 + x11591;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11595 = x11532 + x11592;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11596 = x10801 * x10623;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11597 = x10801 * x10624;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11598 = x10801 * x10576;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11599 = x10801 * x10634;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11600 = x10802 * x10624;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11601 = x10803 * x10624;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11602 = x10804 * x10624;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11603 = x10805 * x11581;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11604 = x10805 * x11593;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11605 = x10805 * x11583;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11606 = x10805 * x11584;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11607 = x10806 * x11584;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11608 = x10807 * x11584;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11609 = x10808 * x11584;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11610 = x10802 * x10623;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11611 = x10802 * x10576;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11612 = x10802 * x10634;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11613 = x10803 * x10623;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11614 = x10803 * x10576;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11615 = x10803 * x10634;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11616 = x10804 * x10623;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11617 = x10804 * x10576;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11618 = x10804 * x10634;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11619 = x10806 * x11581;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11620 = x10806 * x11593;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11621 = x10806 * x11583;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11622 = x10807 * x11581;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11623 = x10807 * x11593;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11624 = x10807 * x11583;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11625 = x10808 * x11581;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11626 = x10808 * x11593;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11627 = x10808 * x11583;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11628 = x11602 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11629 = x11609 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11630 = x11596 + x11611;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11631 = x11597 + x11610;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11632 = x11598 + x11612;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11633 = x11600 + x11613;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11634 = x11601 + x11616;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11635 = x11603 + x11620;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11636 = x11605 + x11619;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11637 = x11606 + x11621;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11638 = x11607 + x11624;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11639 = x11608 + x11627;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11640 = x11634 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11641 = x11639 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11642 = x11630 + x11615;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11643 = x11631 + x11614;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11644 = x11633 + x11617;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11645 = x11635 + x11641;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11646 = x11636 + x11623;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11647 = x11637 + x11622;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11648 = x11638 + x11625;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11649 = x11642 + x11628;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11650 = x11643 + x11618;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11651 = x11632 + x11640;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11652 = x11644 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11653 = x11648 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11654 = x11646 + x11629;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11655 = x11647 + x11626;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11656 = x11604 + x11653;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11657 = x11599 + x11652;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11658 = x11656 - x11657;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11659 = x284 + x11658 * poly_mix[0];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11660 = x11645 - x11651;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11661 = x11659 + x11660 * poly_mix[1];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11662 = x11654 - x11649;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11663 = x11661 + x11662 * poly_mix[2];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11664 = x11655 - x11650;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11665 = x11663 + x11664 * poly_mix[3];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11666 = x10801 * x11582;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11667 = x10801 * x11594;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11668 = x10801 * x11585;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11669 = x10801 * x11586;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11670 = x10802 * x11586;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11671 = x10803 * x11586;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11672 = x10804 * x11586;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11673 = x10802 * x11582;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11674 = x10802 * x11594;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11675 = x10802 * x11585;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11676 = x10803 * x11582;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11677 = x10803 * x11594;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11678 = x10803 * x11585;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11679 = x10804 * x11582;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11680 = x10804 * x11594;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11681 = x10804 * x11585;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11682 = x11672 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11683 = x11666 + x11674;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11684 = x11668 + x11673;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11685 = x11669 + x11675;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11686 = x11670 + x11678;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11687 = x11671 + x11681;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11688 = x10975 * x11587;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11689 = x10975 * x11588;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11690 = x10975 * x11589;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11691 = x10975 * x11595;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11692 = x10976 * x11588;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11693 = x10977 * x11588;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11694 = x10978 * x11588;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11695 = x11687 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11696 = x10976 * x11587;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11697 = x10976 * x11589;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11698 = x10976 * x11595;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11699 = x10977 * x11587;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11700 = x10977 * x11589;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11701 = x10977 * x11595;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11702 = x10978 * x11587;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11703 = x10978 * x11589;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11704 = x10978 * x11595;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11705 = x11694 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11706 = x11683 + x11695;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11707 = x11684 + x11677;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11708 = x11685 + x11676;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11709 = x11686 + x11679;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11710 = x11688 + x11697;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11711 = x11689 + x11696;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11712 = x11690 + x11698;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11713 = x11692 + x11699;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11714 = x11693 + x11702;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11715 = x11709 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11716 = x11714 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11717 = x11707 + x11682;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11718 = x11708 + x11680;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11719 = x11710 + x11701;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11720 = x11711 + x11700;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11721 = x11713 + x11703;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11722 = x11667 + x11715;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11723 = x11719 + x11705;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11724 = x11720 + x11704;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11725 = x11712 + x11716;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11726 = x11721 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11727 = x11691 + x11726;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11728 = x11722 - x11727;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11729 = x11665 + x11728 * poly_mix[4];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11730 = x11706 - x11725;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11731 = x11729 + x11730 * poly_mix[5];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11732 = x11717 - x11723;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11733 = x11731 + x11732 * poly_mix[6];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11734 = x11718 - x11724;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11735 = x11733 + x11734 * poly_mix[7];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11736 = x11502 + x863 * x11735 * poly_mix[40];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11737 = x11027 + x1103 * x11736 * poly_mix[148];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11738 = x11737 + x4812 * x11026 * poly_mix[149];
  // loc("./zirgen/components/plonk.h":103:8)
  auto x11739 = x10975 - x10805;
  // loc("./zirgen/components/plonk.h":103:8)
  FpExt x11740 = x284 + x11739 * poly_mix[0];
  // loc("./zirgen/components/plonk.h":103:8)
  auto x11741 = x10976 - x10806;
  // loc("./zirgen/components/plonk.h":103:8)
  FpExt x11742 = x11740 + x11741 * poly_mix[1];
  // loc("./zirgen/components/plonk.h":103:8)
  auto x11743 = x10977 - x10807;
  // loc("./zirgen/components/plonk.h":103:8)
  FpExt x11744 = x11742 + x11743 * poly_mix[2];
  // loc("./zirgen/components/plonk.h":103:8)
  auto x11745 = x10978 - x10808;
  // loc("./zirgen/components/plonk.h":103:8)
  FpExt x11746 = x11744 + x11745 * poly_mix[3];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11747 = x11738 + x5226 * x11746 * poly_mix[150];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11748 = x11747 + x6154 * x11746 * poly_mix[151];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11749 = x11748 + x7910 * x11026 * poly_mix[152];
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11750 = x10377 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11751 = x10377 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11752 = x10377 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11753 = x10377 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11754 = x10389 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11755 = x10401 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11756 = x10305 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11757 = x10305 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11758 = x10305 * x10399;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11759 = x10305 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11760 = x10389 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11761 = x10389 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11762 = x10389 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11763 = x10401 * x10375;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11764 = x10401 * x10387;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11765 = x10401 * x10303;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11766 = x11755 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11767 = x11754 + x11764;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11768 = x11750 + x11761;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11769 = x11756 + x11753;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11770 = x11757 + x11751;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11771 = x11758 + x11752;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11772 = x11767 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11773 = x11768 + x11763;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11774 = x11770 + x11762;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11775 = x11771 + x11760;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11776 = x11774 + x11766;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11777 = x11775 + x11765;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11778 = x11769 + x11772;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11779 = x11773 * x11;
  // loc("./zirgen/components/plonk.h":222:16)
  auto x11780 = x11759 + x11779;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11781 = x10975 * x11776;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11782 = x10975 * x11777;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11783 = x10975 * x11778;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11784 = x10975 * x11780;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11785 = x10976 * x11777;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11786 = x10977 * x11777;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11787 = x10978 * x11777;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11788 = x10805 * x10579;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11789 = x10805 * x10635;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11790 = x10805 * x10625;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11791 = x10805 * x10626;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11792 = x10806 * x10626;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11793 = x10807 * x10626;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11794 = x10808 * x10626;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11795 = x10976 * x11776;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11796 = x10976 * x11778;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11797 = x10976 * x11780;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11798 = x10977 * x11776;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11799 = x10977 * x11778;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11800 = x10977 * x11780;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11801 = x10978 * x11776;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11802 = x10978 * x11778;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11803 = x10978 * x11780;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11804 = x10806 * x10579;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11805 = x10806 * x10635;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11806 = x10806 * x10625;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11807 = x10807 * x10579;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11808 = x10807 * x10635;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11809 = x10807 * x10625;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11810 = x10808 * x10579;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11811 = x10808 * x10635;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11812 = x10808 * x10625;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11813 = x11787 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11814 = x11794 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11815 = x11781 + x11796;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11816 = x11782 + x11795;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11817 = x11783 + x11797;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11818 = x11785 + x11798;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11819 = x11786 + x11801;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11820 = x11788 + x11805;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11821 = x11790 + x11804;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11822 = x11791 + x11806;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11823 = x11792 + x11809;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11824 = x11793 + x11812;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11825 = x11819 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11826 = x11824 * x11;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11827 = x11815 + x11800;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11828 = x11816 + x11799;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11829 = x11818 + x11802;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11830 = x11820 + x11826;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11831 = x11821 + x11808;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11832 = x11822 + x11807;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11833 = x11823 + x11810;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11834 = x11827 + x11813;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11835 = x11828 + x11803;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11836 = x11817 + x11825;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11837 = x11829 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11838 = x11833 * x11;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11839 = x11831 + x11814;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11840 = x11832 + x11811;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11841 = x11789 + x11838;
  // loc("./zirgen/components/plonk.h":289:30)
  auto x11842 = x11784 + x11837;
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11843 = x11841 - x11842;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11844 = x284 + x11843 * poly_mix[0];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11845 = x11830 - x11836;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11846 = x11844 + x11845 * poly_mix[1];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11847 = x11839 - x11834;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11848 = x11846 + x11847 * poly_mix[2];
  // loc("./zirgen/components/plonk.h":289:10)
  auto x11849 = x11840 - x11835;
  // loc("./zirgen/components/plonk.h":289:10)
  FpExt x11850 = x11848 + x11849 * poly_mix[3];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11851 = x11749 + x8071 * x11850 * poly_mix[153];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11852 = x1 - x559;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11853 = x559 * x11852;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11854 = x284 + x11853 * poly_mix[0];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11855 = x1 - x591;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11856 = x591 * x11855;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11857 = x11854 + x11856 * poly_mix[1];
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11858 = x559 + x591;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11859 = x593 * x746;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11860 = x11857 + x11859 * poly_mix[2];
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11861 = x11858 + x593;
  // loc("./zirgen/components/onehot.h":31:8)
  auto x11862 = x11861 - x1;
  // loc("./zirgen/components/onehot.h":31:8)
  FpExt x11863 = x11860 + x11862 * poly_mix[3];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11864 = x11851 + x4812 * x11863 * poly_mix[154];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x11865 = x11864 + x7910 * x11863 * poly_mix[155];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11866 = x1 - x318;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11867 = x318 * x11866;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11868 = x284 + x11867 * poly_mix[0];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11869 = x1 - x289;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11870 = x289 * x11869;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11871 = x11868 + x11870 * poly_mix[1];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11872 = x1 - x290;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11873 = x318 + x289;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11874 = x290 * x11872;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11875 = x11871 + x11874 * poly_mix[2];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11876 = x1 - x291;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11877 = x11873 + x290;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11878 = x291 * x11876;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11879 = x11875 + x11878 * poly_mix[3];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11880 = x1 - x292;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11881 = x11877 + x291;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11882 = x292 * x11880;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11883 = x11879 + x11882 * poly_mix[4];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11884 = x1 - x293;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11885 = x11881 + x292;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11886 = x293 * x11884;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11887 = x11883 + x11886 * poly_mix[5];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11888 = x1 - x294;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11889 = x11885 + x293;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11890 = x294 * x11888;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11891 = x11887 + x11890 * poly_mix[6];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11892 = x1 - x295;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11893 = x11889 + x294;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11894 = x295 * x11892;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11895 = x11891 + x11894 * poly_mix[7];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11896 = x1 - x296;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11897 = x11893 + x295;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11898 = x296 * x11896;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11899 = x11895 + x11898 * poly_mix[8];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11900 = x1 - x297;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11901 = x11897 + x296;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11902 = x297 * x11900;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11903 = x11899 + x11902 * poly_mix[9];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11904 = x1 - x288;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11905 = x11901 + x297;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11906 = x288 * x11904;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11907 = x11903 + x11906 * poly_mix[10];
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11908 = x11905 + x288;
  // loc("./zirgen/components/onehot.h":31:8)
  auto x11909 = x11908 - x1;
  // loc("./zirgen/components/onehot.h":31:8)
  FpExt x11910 = x11907 + x11909 * poly_mix[11];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11911 = x1 - x590;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11912 = x590 * x11911;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11913 = x11910 + x11912 * poly_mix[12];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11914 = x1 - x560;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11915 = x560 * x11914;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11916 = x11913 + x11915 * poly_mix[13];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11917 = x1 - x561;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11918 = x590 + x560;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11919 = x561 * x11917;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11920 = x11916 + x11919 * poly_mix[14];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11921 = x1 - x562;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11922 = x11918 + x561;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11923 = x562 * x11921;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11924 = x11920 + x11923 * poly_mix[15];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11925 = x1 - x563;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11926 = x11922 + x562;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11927 = x563 * x11925;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11928 = x11924 + x11927 * poly_mix[16];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11929 = x1 - x564;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11930 = x11926 + x563;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11931 = x564 * x11929;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11932 = x11928 + x11931 * poly_mix[17];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11933 = x1 - x565;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11934 = x11930 + x564;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11935 = x565 * x11933;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11936 = x11932 + x11935 * poly_mix[18];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11937 = x1 - x566;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11938 = x11934 + x565;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11939 = x566 * x11937;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11940 = x11936 + x11939 * poly_mix[19];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11941 = x1 - x567;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11942 = x11938 + x566;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11943 = x567 * x11941;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11944 = x11940 + x11943 * poly_mix[20];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11945 = x1 - x568;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11946 = x11942 + x567;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11947 = x568 * x11945;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11948 = x11944 + x11947 * poly_mix[21];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11949 = x1 - x569;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11950 = x11946 + x568;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11951 = x569 * x11949;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11952 = x11948 + x11951 * poly_mix[22];
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11953 = x11950 + x569;
  // loc("./zirgen/components/onehot.h":31:8)
  auto x11954 = x11953 - x1;
  // loc("./zirgen/components/onehot.h":31:8)
  FpExt x11955 = x11952 + x11954 * poly_mix[23];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11956 = x1 - x862;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11957 = x862 * x11956;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11958 = x11955 + x11957 * poly_mix[24];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11959 = x1 - x832;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11960 = x832 * x11959;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11961 = x11958 + x11960 * poly_mix[25];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11962 = x1 - x833;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11963 = x862 + x832;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11964 = x833 * x11962;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11965 = x11961 + x11964 * poly_mix[26];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11966 = x1 - x834;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11967 = x11963 + x833;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11968 = x834 * x11966;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11969 = x11965 + x11968 * poly_mix[27];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11970 = x1 - x835;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11971 = x11967 + x834;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11972 = x835 * x11970;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11973 = x11969 + x11972 * poly_mix[28];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11974 = x1 - x836;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11975 = x11971 + x835;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11976 = x836 * x11974;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11977 = x11973 + x11976 * poly_mix[29];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11978 = x1 - x837;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11979 = x11975 + x836;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11980 = x837 * x11978;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11981 = x11977 + x11980 * poly_mix[30];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11982 = x1 - x838;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11983 = x11979 + x837;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11984 = x838 * x11982;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11985 = x11981 + x11984 * poly_mix[31];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11986 = x1 - x839;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11987 = x11983 + x838;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11988 = x839 * x11986;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11989 = x11985 + x11988 * poly_mix[32];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11990 = x1 - x840;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11991 = x11987 + x839;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11992 = x840 * x11990;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11993 = x11989 + x11992 * poly_mix[33];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x11994 = x1 - x841;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11995 = x11991 + x840;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x11996 = x841 * x11994;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x11997 = x11993 + x11996 * poly_mix[34];
  // loc("./zirgen/components/onehot.h":29:13)
  auto x11998 = x11995 + x841;
  // loc("./zirgen/components/onehot.h":31:8)
  auto x11999 = x11998 - x1;
  // loc("./zirgen/components/onehot.h":31:8)
  FpExt x12000 = x11997 + x11999 * poly_mix[35];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x12001 = x11865 + x285 * x12000 * poly_mix[156];
  // loc("./zirgen/components/bits.h":55:16)
  auto x12002 = x1 - x322;
  // loc("./zirgen/components/bits.h":55:26)
  auto x12003 = x2 - x322;
  // loc("./zirgen/components/bits.h":55:36)
  auto x12004 = x3 - x322;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12005 = x322 * x12002;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12006 = x12005 * x12003;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12007 = x12006 * x12004;
  // loc("./zirgen/components/bits.h":55:11)
  FpExt x12008 = x284 + x12007 * poly_mix[0];
  // loc("./zirgen/components/bits.h":55:16)
  auto x12009 = x1 - x324;
  // loc("./zirgen/components/bits.h":55:26)
  auto x12010 = x2 - x324;
  // loc("./zirgen/components/bits.h":55:36)
  auto x12011 = x3 - x324;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12012 = x324 * x12009;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12013 = x12012 * x12010;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12014 = x12013 * x12011;
  // loc("./zirgen/components/bits.h":55:11)
  FpExt x12015 = x12008 + x12014 * poly_mix[1];
  // loc("./zirgen/components/bits.h":55:16)
  auto x12016 = x1 - x326;
  // loc("./zirgen/components/bits.h":55:26)
  auto x12017 = x2 - x326;
  // loc("./zirgen/components/bits.h":55:36)
  auto x12018 = x3 - x326;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12019 = x326 * x12016;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12020 = x12019 * x12017;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12021 = x12020 * x12018;
  // loc("./zirgen/components/bits.h":55:11)
  FpExt x12022 = x12015 + x12021 * poly_mix[2];
  // loc("./zirgen/components/bits.h":55:16)
  auto x12023 = x1 - x328;
  // loc("./zirgen/components/bits.h":55:26)
  auto x12024 = x2 - x328;
  // loc("./zirgen/components/bits.h":55:36)
  auto x12025 = x3 - x328;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12026 = x328 * x12023;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12027 = x12026 * x12024;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12028 = x12027 * x12025;
  // loc("./zirgen/components/bits.h":55:11)
  FpExt x12029 = x12022 + x12028 * poly_mix[3];
  // loc("./zirgen/components/bits.h":55:16)
  auto x12030 = x1 - x330;
  // loc("./zirgen/components/bits.h":55:26)
  auto x12031 = x2 - x330;
  // loc("./zirgen/components/bits.h":55:36)
  auto x12032 = x3 - x330;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12033 = x330 * x12030;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12034 = x12033 * x12031;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12035 = x12034 * x12032;
  // loc("./zirgen/components/bits.h":55:11)
  FpExt x12036 = x12029 + x12035 * poly_mix[4];
  // loc("./zirgen/components/bits.h":55:16)
  auto x12037 = x1 - x332;
  // loc("./zirgen/components/bits.h":55:26)
  auto x12038 = x2 - x332;
  // loc("./zirgen/components/bits.h":55:36)
  auto x12039 = x3 - x332;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12040 = x332 * x12037;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12041 = x12040 * x12038;
  // loc("./zirgen/components/bits.h":55:11)
  auto x12042 = x12041 * x12039;
  // loc("./zirgen/components/bits.h":55:11)
  FpExt x12043 = x12036 + x12042 * poly_mix[5];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12044 = x1 - x868;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12045 = x868 * x12044;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12046 = x284 + x12045 * poly_mix[0];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12047 = x1 - x870;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12048 = x870 * x12047;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12049 = x12046 + x12048 * poly_mix[1];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12050 = x1 - x872;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12051 = x872 * x12050;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12052 = x12049 + x12051 * poly_mix[2];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12053 = x1 - x874;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12054 = x874 * x12053;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12055 = x12052 + x12054 * poly_mix[3];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12056 = x1 - x876;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12057 = x876 * x12056;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12058 = x12055 + x12057 * poly_mix[4];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12059 = x1 - x878;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12060 = x878 * x12059;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12061 = x12058 + x12060 * poly_mix[5];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12062 = x1 - x880;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12063 = x880 * x12062;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12064 = x12061 + x12063 * poly_mix[6];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12065 = x1 - x882;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12066 = x882 * x12065;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12067 = x12064 + x12066 * poly_mix[7];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12068 = x1 - x884;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12069 = x884 * x12068;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12070 = x12067 + x12069 * poly_mix[8];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12071 = x1 - x886;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12072 = x886 * x12071;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12073 = x12070 + x12072 * poly_mix[9];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12074 = x12073 + x1022 * poly_mix[10];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12075 = x1 - x892;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12076 = x892 * x12075;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12077 = x12074 + x12076 * poly_mix[11];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12078 = x1 - x895;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12079 = x895 * x12078;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12080 = x12077 + x12079 * poly_mix[12];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12081 = x1 - x898;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12082 = x898 * x12081;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12083 = x12080 + x12082 * poly_mix[13];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12084 = x1 - x1159;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12085 = x1159 * x12084;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12086 = x12083 + x12085 * poly_mix[14];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12087 = x1 - x1160;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12088 = x1160 * x12087;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12089 = x12086 + x12088 * poly_mix[15];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12090 = x1 - x1168;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12091 = x1168 * x12090;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12092 = x12089 + x12091 * poly_mix[16];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12093 = x1 - x1169;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12094 = x1169 * x12093;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12095 = x12092 + x12094 * poly_mix[17];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12096 = x1 - x1177;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12097 = x1177 * x12096;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12098 = x12095 + x12097 * poly_mix[18];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12099 = x1 - x1178;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12100 = x1178 * x12099;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12101 = x12098 + x12100 * poly_mix[19];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12102 = x1 - x1186;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12103 = x1186 * x12102;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12104 = x12101 + x12103 * poly_mix[20];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12105 = x1 - x1187;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12106 = x1187 * x12105;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12107 = x12104 + x12106 * poly_mix[21];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12108 = x1 - x1195;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12109 = x1195 * x12108;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12110 = x12107 + x12109 * poly_mix[22];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12111 = x1 - x1196;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12112 = x1196 * x12111;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12113 = x12110 + x12112 * poly_mix[23];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12114 = x1 - x1204;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12115 = x1204 * x12114;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12116 = x12113 + x12115 * poly_mix[24];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12117 = x1 - x1205;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12118 = x1205 * x12117;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12119 = x12116 + x12118 * poly_mix[25];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12120 = x1 - x1213;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12121 = x1213 * x12120;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12122 = x12119 + x12121 * poly_mix[26];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12123 = x1 - x1214;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12124 = x1214 * x12123;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12125 = x12122 + x12124 * poly_mix[27];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12126 = x1 - x1222;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12127 = x1222 * x12126;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12128 = x12125 + x12127 * poly_mix[28];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12129 = x1 - x1223;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12130 = x1223 * x12129;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12131 = x12128 + x12130 * poly_mix[29];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12132 = x1 - x1231;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12133 = x1231 * x12132;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12134 = x12131 + x12133 * poly_mix[30];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12135 = x1 - x1232;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12136 = x1232 * x12135;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12137 = x12134 + x12136 * poly_mix[31];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12138 = x1 - x1240;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12139 = x1240 * x12138;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12140 = x12137 + x12139 * poly_mix[32];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12141 = x1 - x1241;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12142 = x1241 * x12141;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12143 = x12140 + x12142 * poly_mix[33];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12144 = x1 - x1249;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12145 = x1249 * x12144;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12146 = x12143 + x12145 * poly_mix[34];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12147 = x1 - x1250;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12148 = x1250 * x12147;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12149 = x12146 + x12148 * poly_mix[35];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12150 = x1 - x1258;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12151 = x1258 * x12150;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12152 = x12149 + x12151 * poly_mix[36];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12153 = x1 - x1259;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12154 = x1259 * x12153;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12155 = x12152 + x12154 * poly_mix[37];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12156 = x1 - x1267;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12157 = x1267 * x12156;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12158 = x12155 + x12157 * poly_mix[38];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12159 = x1 - x1268;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12160 = x1268 * x12159;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12161 = x12158 + x12160 * poly_mix[39];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12162 = x1 - x1276;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12163 = x1276 * x12162;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12164 = x12161 + x12163 * poly_mix[40];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12165 = x1 - x1277;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12166 = x1277 * x12165;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12167 = x12164 + x12166 * poly_mix[41];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12168 = x1 - x1285;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12169 = x1285 * x12168;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12170 = x12167 + x12169 * poly_mix[42];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12171 = x1 - x1286;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12172 = x1286 * x12171;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12173 = x12170 + x12172 * poly_mix[43];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12174 = x1 - x1294;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12175 = x1294 * x12174;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12176 = x12173 + x12175 * poly_mix[44];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12177 = x1 - x1295;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12178 = x1295 * x12177;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12179 = x12176 + x12178 * poly_mix[45];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12180 = x1 - x1303;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12181 = x1303 * x12180;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12182 = x12179 + x12181 * poly_mix[46];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12183 = x1 - x1304;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12184 = x1304 * x12183;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12185 = x12182 + x12184 * poly_mix[47];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12186 = x1 - x1312;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12187 = x1312 * x12186;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12188 = x12185 + x12187 * poly_mix[48];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12189 = x1 - x1313;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12190 = x1313 * x12189;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12191 = x12188 + x12190 * poly_mix[49];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12192 = x1 - x1321;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12193 = x1321 * x12192;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12194 = x12191 + x12193 * poly_mix[50];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12195 = x1 - x1322;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12196 = x1322 * x12195;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12197 = x12194 + x12196 * poly_mix[51];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12198 = x1 - x1330;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12199 = x1330 * x12198;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12200 = x12197 + x12199 * poly_mix[52];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12201 = x1 - x1331;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12202 = x1331 * x12201;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12203 = x12200 + x12202 * poly_mix[53];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12204 = x12203 + x11867 * poly_mix[54];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12205 = x12204 + x11870 * poly_mix[55];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12206 = x12205 + x11874 * poly_mix[56];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12207 = x12206 + x11878 * poly_mix[57];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12208 = x12207 + x11882 * poly_mix[58];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12209 = x12208 + x11886 * poly_mix[59];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12210 = x12209 + x11890 * poly_mix[60];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12211 = x12210 + x11894 * poly_mix[61];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x12212 = x12043 + x320 * x12211 * poly_mix[6];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12213 = x12211 + x11898 * poly_mix[62];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12214 = x12213 + x11902 * poly_mix[63];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x12215 = x12212 + x559 * x12214 * poly_mix[68];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12216 = x1 - x606;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12217 = x606 * x12216;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12218 = x284 + x12217 * poly_mix[0];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12219 = x1 - x608;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12220 = x608 * x12219;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12221 = x12218 + x12220 * poly_mix[1];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12222 = x1 - x610;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12223 = x610 * x12222;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12224 = x12221 + x12223 * poly_mix[2];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12225 = x1 - x612;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12226 = x612 * x12225;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12227 = x12224 + x12226 * poly_mix[3];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12228 = x1 - x614;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12229 = x614 * x12228;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12230 = x12227 + x12229 * poly_mix[4];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12231 = x12230 + x750 * poly_mix[5];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12232 = x1 - x620;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12233 = x620 * x12232;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12234 = x12231 + x12233 * poly_mix[6];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12235 = x1 - x623;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12236 = x623 * x12235;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12237 = x12234 + x12236 * poly_mix[7];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12238 = x1 - x626;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12239 = x626 * x12238;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12240 = x12237 + x12239 * poly_mix[8];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12241 = x1 - x866;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12242 = x866 * x12241;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12243 = x12240 + x12242 * poly_mix[9];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12244 = x12243 + x12045 * poly_mix[10];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12245 = x12244 + x12048 * poly_mix[11];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12246 = x12245 + x12051 * poly_mix[12];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12247 = x12246 + x12054 * poly_mix[13];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12248 = x12247 + x12057 * poly_mix[14];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12249 = x12248 + x12060 * poly_mix[15];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12250 = x12249 + x12063 * poly_mix[16];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12251 = x12250 + x12066 * poly_mix[17];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12252 = x12251 + x12069 * poly_mix[18];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12253 = x12252 + x12072 * poly_mix[19];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12254 = x12253 + x1022 * poly_mix[20];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12255 = x12254 + x12076 * poly_mix[21];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12256 = x12255 + x12079 * poly_mix[22];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12257 = x12256 + x12082 * poly_mix[23];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12258 = x12257 + x12085 * poly_mix[24];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12259 = x12258 + x12088 * poly_mix[25];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12260 = x12259 + x12091 * poly_mix[26];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12261 = x12260 + x12094 * poly_mix[27];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12262 = x12261 + x12097 * poly_mix[28];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12263 = x12262 + x12100 * poly_mix[29];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12264 = x12263 + x12103 * poly_mix[30];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12265 = x12264 + x12106 * poly_mix[31];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12266 = x12265 + x12115 * poly_mix[32];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12267 = x12266 + x12118 * poly_mix[33];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12268 = x12267 + x12121 * poly_mix[34];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12269 = x12268 + x12124 * poly_mix[35];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12270 = x12269 + x12127 * poly_mix[36];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12271 = x12270 + x12130 * poly_mix[37];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12272 = x12271 + x12133 * poly_mix[38];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12273 = x12272 + x12136 * poly_mix[39];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12274 = x12273 + x12139 * poly_mix[40];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12275 = x12274 + x12142 * poly_mix[41];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12276 = x12275 + x12145 * poly_mix[42];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12277 = x12276 + x12148 * poly_mix[43];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12278 = x12277 + x12151 * poly_mix[44];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12279 = x12278 + x12154 * poly_mix[45];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12280 = x12279 + x12157 * poly_mix[46];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12281 = x12280 + x12160 * poly_mix[47];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12282 = x12281 + x12163 * poly_mix[48];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12283 = x12282 + x12166 * poly_mix[49];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12284 = x12283 + x12169 * poly_mix[50];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12285 = x12284 + x12172 * poly_mix[51];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12286 = x12285 + x12175 * poly_mix[52];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12287 = x12286 + x12178 * poly_mix[53];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12288 = x12287 + x12181 * poly_mix[54];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12289 = x12288 + x12184 * poly_mix[55];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12290 = x12289 + x12187 * poly_mix[56];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12291 = x12290 + x12190 * poly_mix[57];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12292 = x12291 + x12193 * poly_mix[58];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12293 = x12292 + x12196 * poly_mix[59];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12294 = x12293 + x12199 * poly_mix[60];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12295 = x12294 + x12202 * poly_mix[61];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12296 = x12295 + x11867 * poly_mix[62];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12297 = x12296 + x11870 * poly_mix[63];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12298 = x12297 + x11882 * poly_mix[64];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12299 = x12298 + x11886 * poly_mix[65];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12300 = x12299 + x11890 * poly_mix[66];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12301 = x12300 + x11894 * poly_mix[67];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12302 = x12301 + x11898 * poly_mix[68];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12303 = x12302 + x11902 * poly_mix[69];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12304 = x12303 + x11906 * poly_mix[70];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12305 = x1 - x476;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12306 = x476 * x12305;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12307 = x12304 + x12306 * poly_mix[71];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12308 = x12307 + x11912 * poly_mix[72];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12309 = x12308 + x11915 * poly_mix[73];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12310 = x12309 + x11919 * poly_mix[74];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12311 = x12310 + x11923 * poly_mix[75];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12312 = x12311 + x11927 * poly_mix[76];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12313 = x12312 + x11931 * poly_mix[77];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12314 = x12313 + x11935 * poly_mix[78];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12315 = x12314 + x11939 * poly_mix[79];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12316 = x12315 + x11943 * poly_mix[80];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12317 = x12316 + x11947 * poly_mix[81];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12318 = x12317 + x11951 * poly_mix[82];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12319 = x1 - x748;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12320 = x748 * x12319;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12321 = x12318 + x12320 * poly_mix[83];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12322 = x12321 + x11957 * poly_mix[84];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12323 = x12322 + x11960 * poly_mix[85];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12324 = x12323 + x11964 * poly_mix[86];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12325 = x12324 + x11968 * poly_mix[87];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12326 = x12325 + x11972 * poly_mix[88];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12327 = x12326 + x11976 * poly_mix[89];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12328 = x12327 + x11980 * poly_mix[90];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12329 = x12328 + x11984 * poly_mix[91];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12330 = x12329 + x11988 * poly_mix[92];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12331 = x12330 + x11992 * poly_mix[93];
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12332 = x12331 + x11996 * poly_mix[94];
  // loc("./zirgen/components/bits.h":24:32)
  auto x12333 = x1 - x1020;
  // loc("./zirgen/components/bits.h":24:25)
  auto x12334 = x1020 * x12333;
  // loc("./zirgen/components/bits.h":24:25)
  FpExt x12335 = x12332 + x12334 * poly_mix[95];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x12336 = x12215 + x591 * x12335 * poly_mix[106];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x12337 = x12336 + x593 * x12335 * poly_mix[117];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x12338 = x12337 + x592 * x12335 * poly_mix[128];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x12339 = x12338 + x831 * x12335 * poly_mix[133];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x12340 = x1 - x334;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x12341 = x334 * x12340;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x12342 = x284 + x12341 * poly_mix[0];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x12343 = x1 - x336;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x12344 = x336 * x12343;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x12345 = x12342 + x12344 * poly_mix[1];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x12346 = x1 - x338;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x12347 = x334 + x336;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x12348 = x338 * x12346;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x12349 = x12345 + x12348 * poly_mix[2];
  // loc("./zirgen/components/onehot.h":28:22)
  auto x12350 = x1 - x340;
  // loc("./zirgen/components/onehot.h":29:13)
  auto x12351 = x12347 + x338;
  // loc("./zirgen/components/onehot.h":28:11)
  auto x12352 = x340 * x12350;
  // loc("./zirgen/components/onehot.h":28:11)
  FpExt x12353 = x12349 + x12352 * poly_mix[3];
  // loc("./zirgen/components/onehot.h":29:13)
  auto x12354 = x12351 + x340;
  // loc("./zirgen/components/onehot.h":31:8)
  auto x12355 = x12354 - x1;
  // loc("./zirgen/components/onehot.h":31:8)
  FpExt x12356 = x12353 + x12355 * poly_mix[4];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x12357 = x12339 + x863 * x12356 * poly_mix[135];
  // loc("zirgen/compiler/edsl/component.cpp":39:15)
  FpExt x12358 = x12001 + x1103 * x12357 * poly_mix[157];
  return x12358;
}

} // namespace risc0::circuit::recursion
// clang-format on
