From 19c519a43d434340974943182c7726b35b3ff87d Mon Sep 17 00:00:00 2001 From: biscuitdey Date: Thu, 18 Jul 2024 20:49:06 +0530 Subject: [PATCH 1/6] Store verifier.sol contracts under ccsm contracts --- examples/bri-3/zeroKnowledgeArtifacts/scripts/circuits/plonk.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/bri-3/zeroKnowledgeArtifacts/scripts/circuits/plonk.sh b/examples/bri-3/zeroKnowledgeArtifacts/scripts/circuits/plonk.sh index 489f9f4a0..1d16e180d 100755 --- a/examples/bri-3/zeroKnowledgeArtifacts/scripts/circuits/plonk.sh +++ b/examples/bri-3/zeroKnowledgeArtifacts/scripts/circuits/plonk.sh @@ -19,6 +19,6 @@ snarkjs plonk setup zeroKnowledgeArtifacts/circuits/$1/$1.r1cs zeroKnowledgeArti snarkjs zkey export verificationkey zeroKnowledgeArtifacts/circuits/$1/$1_final.zkey zeroKnowledgeArtifacts/circuits/$1/$1_verification_key.json # Export circuit verifier with updated name and solidity version -snarkjs zkey export solidityverifier zeroKnowledgeArtifacts/circuits/$1/$1_final.zkey src/bri/zeroKnowledgeProof/services/circuit/snarkjs/$1Verifier.sol +snarkjs zkey export solidityverifier zeroKnowledgeArtifacts/circuits/$1/$1_final.zkey ccsm/contracts/$1Verifier.sol echo "------------------Phase 2 complete-------------------------" \ No newline at end of file From 543ca9fc1506979c7d182ce33f22d69b72dceebb Mon Sep 17 00:00:00 2001 From: biscuitdey Date: Thu, 18 Jul 2024 20:49:35 +0530 Subject: [PATCH 2/6] Generate verifier solidity contract for all three worksteps --- .../ccsm/contracts/workstep1Verifier.sol | 652 ++++++++++++++++++ .../ccsm/contracts/workstep2Verifier.sol | 652 ++++++++++++++++++ .../ccsm/contracts/workstep3Verifier.sol | 652 ++++++++++++++++++ 3 files changed, 1956 insertions(+) create mode 100644 examples/bri-3/ccsm/contracts/workstep1Verifier.sol create mode 100644 examples/bri-3/ccsm/contracts/workstep2Verifier.sol create mode 100644 examples/bri-3/ccsm/contracts/workstep3Verifier.sol diff --git a/examples/bri-3/ccsm/contracts/workstep1Verifier.sol b/examples/bri-3/ccsm/contracts/workstep1Verifier.sol new file mode 100644 index 000000000..1cfdb1768 --- /dev/null +++ b/examples/bri-3/ccsm/contracts/workstep1Verifier.sol @@ -0,0 +1,652 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + + +pragma solidity >=0.7.0 <0.9.0; + +contract PlonkVerifier { + + uint32 constant n = 32768; + uint16 constant nPublic = 1; + uint16 constant nLagrange = 1; + + uint256 constant Qmx = 10194515970599655109282911583529565849380113195932357171927870801826137307774; + uint256 constant Qmy = 13140940011443490941222100702885231336933018003050133753669339785410949789318; + uint256 constant Qlx = 9075702821792504836345109031609121656336462373875253577566881197906035654776; + uint256 constant Qly = 18954037199706809918078978569604036271719091221321522515280996454686959634667; + uint256 constant Qrx = 14125739754959425112951448565023067073272356473857387194868146753139341737481; + uint256 constant Qry = 9211804802878452259667024877839323417493810024412294758516974036979308136919; + uint256 constant Qox = 13352593265832352698392334901719590216083652550510765281779096890792086115148; + uint256 constant Qoy = 21171212246999274828233761278619486390083267569257427931416020748289597739922; + uint256 constant Qcx = 5480056686458973564008058219103481932927511500969774465272533080708796456916; + uint256 constant Qcy = 18487662305128159302246915279383311188386526722958024410734396746249896900994; + uint256 constant S1x = 17437666502495807466379659324529146642963221649250738321282955596403801525575; + uint256 constant S1y = 18377485979133540239288926929244885650557281677382052473844064353786021038654; + uint256 constant S2x = 10333151760014968029254102863611638785552971938423162339326135439408834116154; + uint256 constant S2y = 6543452700579038735255020802571735600538633455576730189571594753630185539443; + uint256 constant S3x = 8285393960618857014807148089475294222094460765549151605952886640511103409207; + uint256 constant S3y = 11915398849747589245935203954132611261473678566697922313039161652306295887431; + uint256 constant k1 = 2; + uint256 constant k2 = 3; + uint256 constant X2x1 = 7550171141489642323345496683737244277083256424004707715998483409540040587466; + uint256 constant X2x2 = 13674327281456600895607819848682159502956608479735975762218411599033981559968; + uint256 constant X2y1 = 16329427655915944908484974060898761683974646318074639198003187154525254176520; + uint256 constant X2y2 = 19604631653040203911523494213678188005987622194545572529608835183936569820990; + + uint256 constant q = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + uint256 constant qf = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + uint256 constant w1 = 20402931748843538985151001264530049874871572933694634836567070693966133783803; + + uint256 constant G1x = 1; + uint256 constant G1y = 2; + uint256 constant G2x1 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant G2x2 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant G2y1 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant G2y2 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint16 constant pA = 32; + uint16 constant pB = 96; + uint16 constant pC = 160; + uint16 constant pZ = 224; + uint16 constant pT1 = 288; + uint16 constant pT2 = 352; + uint16 constant pT3 = 416; + uint16 constant pWxi = 480; + uint16 constant pWxiw = 544; + uint16 constant pEval_a = 608; + uint16 constant pEval_b = 640; + uint16 constant pEval_c = 672; + uint16 constant pEval_s1 = 704; + uint16 constant pEval_s2 = 736; + uint16 constant pEval_zw = 768; + uint16 constant pEval_r = 800; + + uint16 constant pAlpha = 0; + uint16 constant pBeta = 32; + uint16 constant pGamma = 64; + uint16 constant pXi = 96; + uint16 constant pXin = 128; + uint16 constant pBetaXi = 160; + uint16 constant pV1 = 192; + uint16 constant pV2 = 224; + uint16 constant pV3 = 256; + uint16 constant pV4 = 288; + uint16 constant pV5 = 320; + uint16 constant pV6 = 352; + uint16 constant pU = 384; + uint16 constant pPl = 416; + uint16 constant pEval_t = 448; + uint16 constant pA1 = 480; + uint16 constant pB1 = 544; + uint16 constant pZh = 608; + uint16 constant pZhInv = 640; + + uint16 constant pEval_l1 = 672; + + + + uint16 constant lastMem = 704; + + function verifyProof(bytes memory proof, uint[] memory pubSignals) public view returns (bool) { + assembly { + ///////// + // Computes the inverse using the extended euclidean algorithm + ///////// + function inverse(a, q) -> inv { + let t := 0 + let newt := 1 + let r := q + let newr := a + let quotient + let aux + + for { } newr { } { + quotient := sdiv(r, newr) + aux := sub(t, mul(quotient, newt)) + t:= newt + newt:= aux + + aux := sub(r,mul(quotient, newr)) + r := newr + newr := aux + } + + if gt(r, 1) { revert(0,0) } + if slt(t, 0) { t:= add(t, q) } + + inv := t + } + + /////// + // Computes the inverse of an array of values + // See https://vitalik.ca/general/2018/07/21/starks_part_3.html in section where explain fields operations + ////// + function inverseArray(pVals, n) { + + let pAux := mload(0x40) // Point to the next free position + let pIn := pVals + let lastPIn := add(pVals, mul(n, 32)) // Read n elemnts + let acc := mload(pIn) // Read the first element + pIn := add(pIn, 32) // Point to the second element + let inv + + + for { } lt(pIn, lastPIn) { + pAux := add(pAux, 32) + pIn := add(pIn, 32) + } + { + mstore(pAux, acc) + acc := mulmod(acc, mload(pIn), q) + } + acc := inverse(acc, q) + + // At this point pAux pint to the next free position we substract 1 to point to the last used + pAux := sub(pAux, 32) + // pIn points to the n+1 element, we substract to point to n + pIn := sub(pIn, 32) + lastPIn := pVals // We don't process the first element + for { } gt(pIn, lastPIn) { + pAux := sub(pAux, 32) + pIn := sub(pIn, 32) + } + { + inv := mulmod(acc, mload(pAux), q) + acc := mulmod(acc, mload(pIn), q) + mstore(pIn, inv) + } + // pIn points to first element, we just set it. + mstore(pIn, acc) + } + + function checkField(v) { + if iszero(lt(v, q)) { + mstore(0, 0) + return(0,0x20) + } + } + + function checkInput(pProof) { + if iszero(eq(mload(pProof), 800 )) { + mstore(0, 0) + return(0,0x20) + } + checkField(mload(add(pProof, pEval_a))) + checkField(mload(add(pProof, pEval_b))) + checkField(mload(add(pProof, pEval_c))) + checkField(mload(add(pProof, pEval_s1))) + checkField(mload(add(pProof, pEval_s2))) + checkField(mload(add(pProof, pEval_zw))) + checkField(mload(add(pProof, pEval_r))) + + // Points are checked in the point operations precompiled smart contracts + } + + function calculateChallanges(pProof, pMem, pPublic) { + + let a + let b + + + mstore( add(pMem, 704 ), mload( add( pPublic, 32))) + + mstore( add(pMem, 736 ), mload( add( pProof, pA))) + mstore( add(pMem, 768 ), mload( add( pProof, add(pA,32)))) + mstore( add(pMem, 800 ), mload( add( pProof, add(pA,64)))) + mstore( add(pMem, 832 ), mload( add( pProof, add(pA,96)))) + mstore( add(pMem, 864 ), mload( add( pProof, add(pA,128)))) + mstore( add(pMem, 896 ), mload( add( pProof, add(pA,160)))) + + b := mod(keccak256(add(pMem, lastMem), 224), q) + mstore( add(pMem, pBeta), b) + mstore( add(pMem, pGamma), mod(keccak256(add(pMem, pBeta), 32), q)) + mstore( add(pMem, pAlpha), mod(keccak256(add(pProof, pZ), 64), q)) + + a := mod(keccak256(add(pProof, pT1), 192), q) + mstore( add(pMem, pXi), a) + mstore( add(pMem, pBetaXi), mulmod(b, a, q)) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + mstore( add(pMem, pXin), a) + a:= mod(add(sub(a, 1),q), q) + mstore( add(pMem, pZh), a) + mstore( add(pMem, pZhInv), a) // We will invert later together with lagrange pols + + let v1 := mod(keccak256(add(pProof, pEval_a), 224), q) + mstore( add(pMem, pV1), v1) + a := mulmod(v1, v1, q) + mstore( add(pMem, pV2), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV3), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV4), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV5), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV6), a) + + mstore( add(pMem, pU), mod(keccak256(add(pProof, pWxi), 128), q)) + } + + function calculateLagrange(pMem) { + + let w := 1 + + mstore( + add(pMem, pEval_l1), + mulmod( + n, + mod( + add( + sub( + mload(add(pMem, pXi)), + w + ), + q + ), + q + ), + q + ) + ) + + + + inverseArray(add(pMem, pZhInv), 2 ) + + let zh := mload(add(pMem, pZh)) + w := 1 + + + mstore( + add(pMem, pEval_l1 ), + mulmod( + mload(add(pMem, pEval_l1 )), + zh, + q + ) + ) + + + + + + } + + function calculatePl(pMem, pPub) { + let pl := 0 + + + pl := mod( + add( + sub( + pl, + mulmod( + mload(add(pMem, pEval_l1)), + mload(add(pPub, 32)), + q + ) + ), + q + ), + q + ) + + + mstore(add(pMem, pPl), pl) + + + } + + function calculateT(pProof, pMem) { + let t + let t1 + let t2 + t := addmod( + mload(add(pProof, pEval_r)), + mload(add(pMem, pPl)), + q + ) + + t1 := mulmod( + mload(add(pProof, pEval_s1)), + mload(add(pMem, pBeta)), + q + ) + + t1 := addmod( + t1, + mload(add(pProof, pEval_a)), + q + ) + + t1 := addmod( + t1, + mload(add(pMem, pGamma)), + q + ) + + t2 := mulmod( + mload(add(pProof, pEval_s2)), + mload(add(pMem, pBeta)), + q + ) + + t2 := addmod( + t2, + mload(add(pProof, pEval_b)), + q + ) + + t2 := addmod( + t2, + mload(add(pMem, pGamma)), + q + ) + + t1 := mulmod(t1, t2, q) + + t2 := addmod( + mload(add(pProof, pEval_c)), + mload(add(pMem, pGamma)), + q + ) + + t1 := mulmod(t1, t2, q) + t1 := mulmod(t1, mload(add(pProof, pEval_zw)), q) + t1 := mulmod(t1, mload(add(pMem, pAlpha)), q) + + t2 := mulmod( + mload(add(pMem, pEval_l1)), + mload(add(pMem, pAlpha)), + q + ) + + t2 := mulmod( + t2, + mload(add(pMem, pAlpha)), + q + ) + + t1 := addmod(t1, t2, q) + + t := mod(sub(add(t, q), t1), q) + t := mulmod(t, mload(add(pMem, pZhInv)), q) + + mstore( add(pMem, pEval_t) , t) + + } + + function g1_set(pR, pP) { + mstore(pR, mload(pP)) + mstore(add(pR, 32), mload(add(pP,32))) + } + + function g1_acc(pR, pP) { + let mIn := mload(0x40) + mstore(mIn, mload(pR)) + mstore(add(mIn,32), mload(add(pR, 32))) + mstore(add(mIn,64), mload(pP)) + mstore(add(mIn,96), mload(add(pP, 32))) + + let success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + function g1_mulAcc(pR, pP, s) { + let success + let mIn := mload(0x40) + mstore(mIn, mload(pP)) + mstore(add(mIn,32), mload(add(pP, 32))) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + mstore(add(mIn,64), mload(pR)) + mstore(add(mIn,96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + } + + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn,32), y) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + mstore(add(mIn,64), mload(pR)) + mstore(add(mIn,96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + function g1_mulSetC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn,32), y) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + + function calculateA1(pProof, pMem) { + let p := add(pMem, pA1) + g1_set(p, add(pProof, pWxi)) + g1_mulAcc(p, add(pProof, pWxiw), mload(add(pMem, pU))) + } + + + function calculateB1(pProof, pMem) { + let s + let s1 + let p := add(pMem, pB1) + + // Calculate D + s := mulmod( mload(add(pProof, pEval_a)), mload(add(pMem, pV1)), q) + g1_mulSetC(p, Qlx, Qly, s) + + s := mulmod( s, mload(add(pProof, pEval_b)), q) + g1_mulAccC(p, Qmx, Qmy, s) + + s := mulmod( mload(add(pProof, pEval_b)), mload(add(pMem, pV1)), q) + g1_mulAccC(p, Qrx, Qry, s) + + s := mulmod( mload(add(pProof, pEval_c)), mload(add(pMem, pV1)), q) + g1_mulAccC(p, Qox, Qoy, s) + + s :=mload(add(pMem, pV1)) + g1_mulAccC(p, Qcx, Qcy, s) + + s := addmod(mload(add(pProof, pEval_a)), mload(add(pMem, pBetaXi)), q) + s := addmod(s, mload(add(pMem, pGamma)), q) + s1 := mulmod(k1, mload(add(pMem, pBetaXi)), q) + s1 := addmod(s1, mload(add(pProof, pEval_b)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s1 := mulmod(k2, mload(add(pMem, pBetaXi)), q) + s1 := addmod(s1, mload(add(pProof, pEval_c)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s := mulmod(s, mload(add(pMem, pAlpha)), q) + s := mulmod(s, mload(add(pMem, pV1)), q) + s1 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q) + s1 := mulmod(s1, mload(add(pMem, pAlpha)), q) + s1 := mulmod(s1, mload(add(pMem, pV1)), q) + s := addmod(s, s1, q) + s := addmod(s, mload(add(pMem, pU)), q) + g1_mulAcc(p, add(pProof, pZ), s) + + s := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s1)), q) + s := addmod(s, mload(add(pProof, pEval_a)), q) + s := addmod(s, mload(add(pMem, pGamma)), q) + s1 := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s2)), q) + s1 := addmod(s1, mload(add(pProof, pEval_b)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s := mulmod(s, mload(add(pMem, pAlpha)), q) + s := mulmod(s, mload(add(pMem, pV1)), q) + s := mulmod(s, mload(add(pMem, pBeta)), q) + s := mulmod(s, mload(add(pProof, pEval_zw)), q) + s := mod(sub(q, s), q) + g1_mulAccC(p, S3x, S3y, s) + + + // calculate F + g1_acc(p , add(pProof, pT1)) + + s := mload(add(pMem, pXin)) + g1_mulAcc(p, add(pProof, pT2), s) + + s := mulmod(s, s, q) + g1_mulAcc(p, add(pProof, pT3), s) + + g1_mulAcc(p, add(pProof, pA), mload(add(pMem, pV2))) + g1_mulAcc(p, add(pProof, pB), mload(add(pMem, pV3))) + g1_mulAcc(p, add(pProof, pC), mload(add(pMem, pV4))) + g1_mulAccC(p, S1x, S1y, mload(add(pMem, pV5))) + g1_mulAccC(p, S2x, S2y, mload(add(pMem, pV6))) + + // calculate E + s := mload(add(pMem, pEval_t)) + s := addmod(s, mulmod(mload(add(pProof, pEval_r)), mload(add(pMem, pV1)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV2)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV3)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV4)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pV5)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pV6)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_zw)), mload(add(pMem, pU)), q), q) + s := mod(sub(q, s), q) + g1_mulAccC(p, G1x, G1y, s) + + + // Last part of B + s := mload(add(pMem, pXi)) + g1_mulAcc(p, add(pProof, pWxi), s) + + s := mulmod(mload(add(pMem, pU)), mload(add(pMem, pXi)), q) + s := mulmod(s, w1, q) + g1_mulAcc(p, add(pProof, pWxiw), s) + + } + + function checkPairing(pMem) -> isOk { + let mIn := mload(0x40) + mstore(mIn, mload(add(pMem, pA1))) + mstore(add(mIn,32), mload(add(add(pMem, pA1), 32))) + mstore(add(mIn,64), X2x2) + mstore(add(mIn,96), X2x1) + mstore(add(mIn,128), X2y2) + mstore(add(mIn,160), X2y1) + mstore(add(mIn,192), mload(add(pMem, pB1))) + let s := mload(add(add(pMem, pB1), 32)) + s := mod(sub(qf, s), qf) + mstore(add(mIn,224), s) + mstore(add(mIn,256), G2x2) + mstore(add(mIn,288), G2x1) + mstore(add(mIn,320), G2y2) + mstore(add(mIn,352), G2y1) + + let success := staticcall(sub(gas(), 2000), 8, mIn, 384, mIn, 0x20) + + isOk := and(success, mload(mIn)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, lastMem)) + + checkInput(proof) + calculateChallanges(proof, pMem, pubSignals) + calculateLagrange(pMem) + calculatePl(pMem, pubSignals) + calculateT(proof, pMem) + calculateA1(proof, pMem) + calculateB1(proof, pMem) + let isValid := checkPairing(pMem) + + mstore(0x40, sub(pMem, lastMem)) + mstore(0, isValid) + return(0,0x20) + } + + } +} diff --git a/examples/bri-3/ccsm/contracts/workstep2Verifier.sol b/examples/bri-3/ccsm/contracts/workstep2Verifier.sol new file mode 100644 index 000000000..8aa99b873 --- /dev/null +++ b/examples/bri-3/ccsm/contracts/workstep2Verifier.sol @@ -0,0 +1,652 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + + +pragma solidity >=0.7.0 <0.9.0; + +contract PlonkVerifier { + + uint32 constant n = 32768; + uint16 constant nPublic = 1; + uint16 constant nLagrange = 1; + + uint256 constant Qmx = 9031014201334786598437474819333373897984837472962630324851335361844058545780; + uint256 constant Qmy = 16607210786086921981367283815049778740600968770620223098147538097138430537595; + uint256 constant Qlx = 6808278280485306759745548891536191162342236099697633650996345740914224220305; + uint256 constant Qly = 3270170195800647956439730797339220040656917583598598133609260645618986123588; + uint256 constant Qrx = 6148500901704548782540313024093324774763190834353235759778239054380115761181; + uint256 constant Qry = 17496928704547418787249113629100332597587390388927992302390890724367334325226; + uint256 constant Qox = 21659278811951783556483125629272843184764885478213749993598444862278045884755; + uint256 constant Qoy = 16660597475205619545281468126006239987539267348200340592793952148487504874309; + uint256 constant Qcx = 5305510349838087338783547875566294471771494030996437605662252026376037082958; + uint256 constant Qcy = 19377334097772342373923876594211562277705091388899497313132675599004144975313; + uint256 constant S1x = 13511374588247167997414482771460319777500130147065290737814654512741747616346; + uint256 constant S1y = 9410442723228155800609023852081630300440285014469359549251506116352343840765; + uint256 constant S2x = 6234343642032529676304475840139856609542183618893282794848722265839404121608; + uint256 constant S2y = 198081256679397470117078185378786682134167977767481936106730933658216400205; + uint256 constant S3x = 15607364487714913306100446210105619358733676078036562302151585058643715232255; + uint256 constant S3y = 16418203895932101971661510317717759015568131982287223931136504811190200970422; + uint256 constant k1 = 2; + uint256 constant k2 = 3; + uint256 constant X2x1 = 7550171141489642323345496683737244277083256424004707715998483409540040587466; + uint256 constant X2x2 = 13674327281456600895607819848682159502956608479735975762218411599033981559968; + uint256 constant X2y1 = 16329427655915944908484974060898761683974646318074639198003187154525254176520; + uint256 constant X2y2 = 19604631653040203911523494213678188005987622194545572529608835183936569820990; + + uint256 constant q = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + uint256 constant qf = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + uint256 constant w1 = 20402931748843538985151001264530049874871572933694634836567070693966133783803; + + uint256 constant G1x = 1; + uint256 constant G1y = 2; + uint256 constant G2x1 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant G2x2 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant G2y1 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant G2y2 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint16 constant pA = 32; + uint16 constant pB = 96; + uint16 constant pC = 160; + uint16 constant pZ = 224; + uint16 constant pT1 = 288; + uint16 constant pT2 = 352; + uint16 constant pT3 = 416; + uint16 constant pWxi = 480; + uint16 constant pWxiw = 544; + uint16 constant pEval_a = 608; + uint16 constant pEval_b = 640; + uint16 constant pEval_c = 672; + uint16 constant pEval_s1 = 704; + uint16 constant pEval_s2 = 736; + uint16 constant pEval_zw = 768; + uint16 constant pEval_r = 800; + + uint16 constant pAlpha = 0; + uint16 constant pBeta = 32; + uint16 constant pGamma = 64; + uint16 constant pXi = 96; + uint16 constant pXin = 128; + uint16 constant pBetaXi = 160; + uint16 constant pV1 = 192; + uint16 constant pV2 = 224; + uint16 constant pV3 = 256; + uint16 constant pV4 = 288; + uint16 constant pV5 = 320; + uint16 constant pV6 = 352; + uint16 constant pU = 384; + uint16 constant pPl = 416; + uint16 constant pEval_t = 448; + uint16 constant pA1 = 480; + uint16 constant pB1 = 544; + uint16 constant pZh = 608; + uint16 constant pZhInv = 640; + + uint16 constant pEval_l1 = 672; + + + + uint16 constant lastMem = 704; + + function verifyProof(bytes memory proof, uint[] memory pubSignals) public view returns (bool) { + assembly { + ///////// + // Computes the inverse using the extended euclidean algorithm + ///////// + function inverse(a, q) -> inv { + let t := 0 + let newt := 1 + let r := q + let newr := a + let quotient + let aux + + for { } newr { } { + quotient := sdiv(r, newr) + aux := sub(t, mul(quotient, newt)) + t:= newt + newt:= aux + + aux := sub(r,mul(quotient, newr)) + r := newr + newr := aux + } + + if gt(r, 1) { revert(0,0) } + if slt(t, 0) { t:= add(t, q) } + + inv := t + } + + /////// + // Computes the inverse of an array of values + // See https://vitalik.ca/general/2018/07/21/starks_part_3.html in section where explain fields operations + ////// + function inverseArray(pVals, n) { + + let pAux := mload(0x40) // Point to the next free position + let pIn := pVals + let lastPIn := add(pVals, mul(n, 32)) // Read n elemnts + let acc := mload(pIn) // Read the first element + pIn := add(pIn, 32) // Point to the second element + let inv + + + for { } lt(pIn, lastPIn) { + pAux := add(pAux, 32) + pIn := add(pIn, 32) + } + { + mstore(pAux, acc) + acc := mulmod(acc, mload(pIn), q) + } + acc := inverse(acc, q) + + // At this point pAux pint to the next free position we substract 1 to point to the last used + pAux := sub(pAux, 32) + // pIn points to the n+1 element, we substract to point to n + pIn := sub(pIn, 32) + lastPIn := pVals // We don't process the first element + for { } gt(pIn, lastPIn) { + pAux := sub(pAux, 32) + pIn := sub(pIn, 32) + } + { + inv := mulmod(acc, mload(pAux), q) + acc := mulmod(acc, mload(pIn), q) + mstore(pIn, inv) + } + // pIn points to first element, we just set it. + mstore(pIn, acc) + } + + function checkField(v) { + if iszero(lt(v, q)) { + mstore(0, 0) + return(0,0x20) + } + } + + function checkInput(pProof) { + if iszero(eq(mload(pProof), 800 )) { + mstore(0, 0) + return(0,0x20) + } + checkField(mload(add(pProof, pEval_a))) + checkField(mload(add(pProof, pEval_b))) + checkField(mload(add(pProof, pEval_c))) + checkField(mload(add(pProof, pEval_s1))) + checkField(mload(add(pProof, pEval_s2))) + checkField(mload(add(pProof, pEval_zw))) + checkField(mload(add(pProof, pEval_r))) + + // Points are checked in the point operations precompiled smart contracts + } + + function calculateChallanges(pProof, pMem, pPublic) { + + let a + let b + + + mstore( add(pMem, 704 ), mload( add( pPublic, 32))) + + mstore( add(pMem, 736 ), mload( add( pProof, pA))) + mstore( add(pMem, 768 ), mload( add( pProof, add(pA,32)))) + mstore( add(pMem, 800 ), mload( add( pProof, add(pA,64)))) + mstore( add(pMem, 832 ), mload( add( pProof, add(pA,96)))) + mstore( add(pMem, 864 ), mload( add( pProof, add(pA,128)))) + mstore( add(pMem, 896 ), mload( add( pProof, add(pA,160)))) + + b := mod(keccak256(add(pMem, lastMem), 224), q) + mstore( add(pMem, pBeta), b) + mstore( add(pMem, pGamma), mod(keccak256(add(pMem, pBeta), 32), q)) + mstore( add(pMem, pAlpha), mod(keccak256(add(pProof, pZ), 64), q)) + + a := mod(keccak256(add(pProof, pT1), 192), q) + mstore( add(pMem, pXi), a) + mstore( add(pMem, pBetaXi), mulmod(b, a, q)) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + mstore( add(pMem, pXin), a) + a:= mod(add(sub(a, 1),q), q) + mstore( add(pMem, pZh), a) + mstore( add(pMem, pZhInv), a) // We will invert later together with lagrange pols + + let v1 := mod(keccak256(add(pProof, pEval_a), 224), q) + mstore( add(pMem, pV1), v1) + a := mulmod(v1, v1, q) + mstore( add(pMem, pV2), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV3), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV4), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV5), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV6), a) + + mstore( add(pMem, pU), mod(keccak256(add(pProof, pWxi), 128), q)) + } + + function calculateLagrange(pMem) { + + let w := 1 + + mstore( + add(pMem, pEval_l1), + mulmod( + n, + mod( + add( + sub( + mload(add(pMem, pXi)), + w + ), + q + ), + q + ), + q + ) + ) + + + + inverseArray(add(pMem, pZhInv), 2 ) + + let zh := mload(add(pMem, pZh)) + w := 1 + + + mstore( + add(pMem, pEval_l1 ), + mulmod( + mload(add(pMem, pEval_l1 )), + zh, + q + ) + ) + + + + + + } + + function calculatePl(pMem, pPub) { + let pl := 0 + + + pl := mod( + add( + sub( + pl, + mulmod( + mload(add(pMem, pEval_l1)), + mload(add(pPub, 32)), + q + ) + ), + q + ), + q + ) + + + mstore(add(pMem, pPl), pl) + + + } + + function calculateT(pProof, pMem) { + let t + let t1 + let t2 + t := addmod( + mload(add(pProof, pEval_r)), + mload(add(pMem, pPl)), + q + ) + + t1 := mulmod( + mload(add(pProof, pEval_s1)), + mload(add(pMem, pBeta)), + q + ) + + t1 := addmod( + t1, + mload(add(pProof, pEval_a)), + q + ) + + t1 := addmod( + t1, + mload(add(pMem, pGamma)), + q + ) + + t2 := mulmod( + mload(add(pProof, pEval_s2)), + mload(add(pMem, pBeta)), + q + ) + + t2 := addmod( + t2, + mload(add(pProof, pEval_b)), + q + ) + + t2 := addmod( + t2, + mload(add(pMem, pGamma)), + q + ) + + t1 := mulmod(t1, t2, q) + + t2 := addmod( + mload(add(pProof, pEval_c)), + mload(add(pMem, pGamma)), + q + ) + + t1 := mulmod(t1, t2, q) + t1 := mulmod(t1, mload(add(pProof, pEval_zw)), q) + t1 := mulmod(t1, mload(add(pMem, pAlpha)), q) + + t2 := mulmod( + mload(add(pMem, pEval_l1)), + mload(add(pMem, pAlpha)), + q + ) + + t2 := mulmod( + t2, + mload(add(pMem, pAlpha)), + q + ) + + t1 := addmod(t1, t2, q) + + t := mod(sub(add(t, q), t1), q) + t := mulmod(t, mload(add(pMem, pZhInv)), q) + + mstore( add(pMem, pEval_t) , t) + + } + + function g1_set(pR, pP) { + mstore(pR, mload(pP)) + mstore(add(pR, 32), mload(add(pP,32))) + } + + function g1_acc(pR, pP) { + let mIn := mload(0x40) + mstore(mIn, mload(pR)) + mstore(add(mIn,32), mload(add(pR, 32))) + mstore(add(mIn,64), mload(pP)) + mstore(add(mIn,96), mload(add(pP, 32))) + + let success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + function g1_mulAcc(pR, pP, s) { + let success + let mIn := mload(0x40) + mstore(mIn, mload(pP)) + mstore(add(mIn,32), mload(add(pP, 32))) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + mstore(add(mIn,64), mload(pR)) + mstore(add(mIn,96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + } + + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn,32), y) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + mstore(add(mIn,64), mload(pR)) + mstore(add(mIn,96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + function g1_mulSetC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn,32), y) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + + function calculateA1(pProof, pMem) { + let p := add(pMem, pA1) + g1_set(p, add(pProof, pWxi)) + g1_mulAcc(p, add(pProof, pWxiw), mload(add(pMem, pU))) + } + + + function calculateB1(pProof, pMem) { + let s + let s1 + let p := add(pMem, pB1) + + // Calculate D + s := mulmod( mload(add(pProof, pEval_a)), mload(add(pMem, pV1)), q) + g1_mulSetC(p, Qlx, Qly, s) + + s := mulmod( s, mload(add(pProof, pEval_b)), q) + g1_mulAccC(p, Qmx, Qmy, s) + + s := mulmod( mload(add(pProof, pEval_b)), mload(add(pMem, pV1)), q) + g1_mulAccC(p, Qrx, Qry, s) + + s := mulmod( mload(add(pProof, pEval_c)), mload(add(pMem, pV1)), q) + g1_mulAccC(p, Qox, Qoy, s) + + s :=mload(add(pMem, pV1)) + g1_mulAccC(p, Qcx, Qcy, s) + + s := addmod(mload(add(pProof, pEval_a)), mload(add(pMem, pBetaXi)), q) + s := addmod(s, mload(add(pMem, pGamma)), q) + s1 := mulmod(k1, mload(add(pMem, pBetaXi)), q) + s1 := addmod(s1, mload(add(pProof, pEval_b)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s1 := mulmod(k2, mload(add(pMem, pBetaXi)), q) + s1 := addmod(s1, mload(add(pProof, pEval_c)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s := mulmod(s, mload(add(pMem, pAlpha)), q) + s := mulmod(s, mload(add(pMem, pV1)), q) + s1 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q) + s1 := mulmod(s1, mload(add(pMem, pAlpha)), q) + s1 := mulmod(s1, mload(add(pMem, pV1)), q) + s := addmod(s, s1, q) + s := addmod(s, mload(add(pMem, pU)), q) + g1_mulAcc(p, add(pProof, pZ), s) + + s := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s1)), q) + s := addmod(s, mload(add(pProof, pEval_a)), q) + s := addmod(s, mload(add(pMem, pGamma)), q) + s1 := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s2)), q) + s1 := addmod(s1, mload(add(pProof, pEval_b)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s := mulmod(s, mload(add(pMem, pAlpha)), q) + s := mulmod(s, mload(add(pMem, pV1)), q) + s := mulmod(s, mload(add(pMem, pBeta)), q) + s := mulmod(s, mload(add(pProof, pEval_zw)), q) + s := mod(sub(q, s), q) + g1_mulAccC(p, S3x, S3y, s) + + + // calculate F + g1_acc(p , add(pProof, pT1)) + + s := mload(add(pMem, pXin)) + g1_mulAcc(p, add(pProof, pT2), s) + + s := mulmod(s, s, q) + g1_mulAcc(p, add(pProof, pT3), s) + + g1_mulAcc(p, add(pProof, pA), mload(add(pMem, pV2))) + g1_mulAcc(p, add(pProof, pB), mload(add(pMem, pV3))) + g1_mulAcc(p, add(pProof, pC), mload(add(pMem, pV4))) + g1_mulAccC(p, S1x, S1y, mload(add(pMem, pV5))) + g1_mulAccC(p, S2x, S2y, mload(add(pMem, pV6))) + + // calculate E + s := mload(add(pMem, pEval_t)) + s := addmod(s, mulmod(mload(add(pProof, pEval_r)), mload(add(pMem, pV1)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV2)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV3)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV4)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pV5)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pV6)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_zw)), mload(add(pMem, pU)), q), q) + s := mod(sub(q, s), q) + g1_mulAccC(p, G1x, G1y, s) + + + // Last part of B + s := mload(add(pMem, pXi)) + g1_mulAcc(p, add(pProof, pWxi), s) + + s := mulmod(mload(add(pMem, pU)), mload(add(pMem, pXi)), q) + s := mulmod(s, w1, q) + g1_mulAcc(p, add(pProof, pWxiw), s) + + } + + function checkPairing(pMem) -> isOk { + let mIn := mload(0x40) + mstore(mIn, mload(add(pMem, pA1))) + mstore(add(mIn,32), mload(add(add(pMem, pA1), 32))) + mstore(add(mIn,64), X2x2) + mstore(add(mIn,96), X2x1) + mstore(add(mIn,128), X2y2) + mstore(add(mIn,160), X2y1) + mstore(add(mIn,192), mload(add(pMem, pB1))) + let s := mload(add(add(pMem, pB1), 32)) + s := mod(sub(qf, s), qf) + mstore(add(mIn,224), s) + mstore(add(mIn,256), G2x2) + mstore(add(mIn,288), G2x1) + mstore(add(mIn,320), G2y2) + mstore(add(mIn,352), G2y1) + + let success := staticcall(sub(gas(), 2000), 8, mIn, 384, mIn, 0x20) + + isOk := and(success, mload(mIn)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, lastMem)) + + checkInput(proof) + calculateChallanges(proof, pMem, pubSignals) + calculateLagrange(pMem) + calculatePl(pMem, pubSignals) + calculateT(proof, pMem) + calculateA1(proof, pMem) + calculateB1(proof, pMem) + let isValid := checkPairing(pMem) + + mstore(0x40, sub(pMem, lastMem)) + mstore(0, isValid) + return(0,0x20) + } + + } +} diff --git a/examples/bri-3/ccsm/contracts/workstep3Verifier.sol b/examples/bri-3/ccsm/contracts/workstep3Verifier.sol new file mode 100644 index 000000000..8ac7379fd --- /dev/null +++ b/examples/bri-3/ccsm/contracts/workstep3Verifier.sol @@ -0,0 +1,652 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + + +pragma solidity >=0.7.0 <0.9.0; + +contract PlonkVerifier { + + uint32 constant n = 32768; + uint16 constant nPublic = 1; + uint16 constant nLagrange = 1; + + uint256 constant Qmx = 9031014201334786598437474819333373897984837472962630324851335361844058545780; + uint256 constant Qmy = 16607210786086921981367283815049778740600968770620223098147538097138430537595; + uint256 constant Qlx = 6808278280485306759745548891536191162342236099697633650996345740914224220305; + uint256 constant Qly = 3270170195800647956439730797339220040656917583598598133609260645618986123588; + uint256 constant Qrx = 19867659962940379415833721956196885812592831298524381980555731113220022045761; + uint256 constant Qry = 5839482012031765332886537848770371473868238809091147323904600653094947875345; + uint256 constant Qox = 21659278811951783556483125629272843184764885478213749993598444862278045884755; + uint256 constant Qoy = 16660597475205619545281468126006239987539267348200340592793952148487504874309; + uint256 constant Qcx = 5305510349838087338783547875566294471771494030996437605662252026376037082958; + uint256 constant Qcy = 19377334097772342373923876594211562277705091388899497313132675599004144975313; + uint256 constant S1x = 13511374588247167997414482771460319777500130147065290737814654512741747616346; + uint256 constant S1y = 9410442723228155800609023852081630300440285014469359549251506116352343840765; + uint256 constant S2x = 6234343642032529676304475840139856609542183618893282794848722265839404121608; + uint256 constant S2y = 198081256679397470117078185378786682134167977767481936106730933658216400205; + uint256 constant S3x = 15607364487714913306100446210105619358733676078036562302151585058643715232255; + uint256 constant S3y = 16418203895932101971661510317717759015568131982287223931136504811190200970422; + uint256 constant k1 = 2; + uint256 constant k2 = 3; + uint256 constant X2x1 = 7550171141489642323345496683737244277083256424004707715998483409540040587466; + uint256 constant X2x2 = 13674327281456600895607819848682159502956608479735975762218411599033981559968; + uint256 constant X2y1 = 16329427655915944908484974060898761683974646318074639198003187154525254176520; + uint256 constant X2y2 = 19604631653040203911523494213678188005987622194545572529608835183936569820990; + + uint256 constant q = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + uint256 constant qf = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + uint256 constant w1 = 20402931748843538985151001264530049874871572933694634836567070693966133783803; + + uint256 constant G1x = 1; + uint256 constant G1y = 2; + uint256 constant G2x1 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant G2x2 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant G2y1 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant G2y2 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint16 constant pA = 32; + uint16 constant pB = 96; + uint16 constant pC = 160; + uint16 constant pZ = 224; + uint16 constant pT1 = 288; + uint16 constant pT2 = 352; + uint16 constant pT3 = 416; + uint16 constant pWxi = 480; + uint16 constant pWxiw = 544; + uint16 constant pEval_a = 608; + uint16 constant pEval_b = 640; + uint16 constant pEval_c = 672; + uint16 constant pEval_s1 = 704; + uint16 constant pEval_s2 = 736; + uint16 constant pEval_zw = 768; + uint16 constant pEval_r = 800; + + uint16 constant pAlpha = 0; + uint16 constant pBeta = 32; + uint16 constant pGamma = 64; + uint16 constant pXi = 96; + uint16 constant pXin = 128; + uint16 constant pBetaXi = 160; + uint16 constant pV1 = 192; + uint16 constant pV2 = 224; + uint16 constant pV3 = 256; + uint16 constant pV4 = 288; + uint16 constant pV5 = 320; + uint16 constant pV6 = 352; + uint16 constant pU = 384; + uint16 constant pPl = 416; + uint16 constant pEval_t = 448; + uint16 constant pA1 = 480; + uint16 constant pB1 = 544; + uint16 constant pZh = 608; + uint16 constant pZhInv = 640; + + uint16 constant pEval_l1 = 672; + + + + uint16 constant lastMem = 704; + + function verifyProof(bytes memory proof, uint[] memory pubSignals) public view returns (bool) { + assembly { + ///////// + // Computes the inverse using the extended euclidean algorithm + ///////// + function inverse(a, q) -> inv { + let t := 0 + let newt := 1 + let r := q + let newr := a + let quotient + let aux + + for { } newr { } { + quotient := sdiv(r, newr) + aux := sub(t, mul(quotient, newt)) + t:= newt + newt:= aux + + aux := sub(r,mul(quotient, newr)) + r := newr + newr := aux + } + + if gt(r, 1) { revert(0,0) } + if slt(t, 0) { t:= add(t, q) } + + inv := t + } + + /////// + // Computes the inverse of an array of values + // See https://vitalik.ca/general/2018/07/21/starks_part_3.html in section where explain fields operations + ////// + function inverseArray(pVals, n) { + + let pAux := mload(0x40) // Point to the next free position + let pIn := pVals + let lastPIn := add(pVals, mul(n, 32)) // Read n elemnts + let acc := mload(pIn) // Read the first element + pIn := add(pIn, 32) // Point to the second element + let inv + + + for { } lt(pIn, lastPIn) { + pAux := add(pAux, 32) + pIn := add(pIn, 32) + } + { + mstore(pAux, acc) + acc := mulmod(acc, mload(pIn), q) + } + acc := inverse(acc, q) + + // At this point pAux pint to the next free position we substract 1 to point to the last used + pAux := sub(pAux, 32) + // pIn points to the n+1 element, we substract to point to n + pIn := sub(pIn, 32) + lastPIn := pVals // We don't process the first element + for { } gt(pIn, lastPIn) { + pAux := sub(pAux, 32) + pIn := sub(pIn, 32) + } + { + inv := mulmod(acc, mload(pAux), q) + acc := mulmod(acc, mload(pIn), q) + mstore(pIn, inv) + } + // pIn points to first element, we just set it. + mstore(pIn, acc) + } + + function checkField(v) { + if iszero(lt(v, q)) { + mstore(0, 0) + return(0,0x20) + } + } + + function checkInput(pProof) { + if iszero(eq(mload(pProof), 800 )) { + mstore(0, 0) + return(0,0x20) + } + checkField(mload(add(pProof, pEval_a))) + checkField(mload(add(pProof, pEval_b))) + checkField(mload(add(pProof, pEval_c))) + checkField(mload(add(pProof, pEval_s1))) + checkField(mload(add(pProof, pEval_s2))) + checkField(mload(add(pProof, pEval_zw))) + checkField(mload(add(pProof, pEval_r))) + + // Points are checked in the point operations precompiled smart contracts + } + + function calculateChallanges(pProof, pMem, pPublic) { + + let a + let b + + + mstore( add(pMem, 704 ), mload( add( pPublic, 32))) + + mstore( add(pMem, 736 ), mload( add( pProof, pA))) + mstore( add(pMem, 768 ), mload( add( pProof, add(pA,32)))) + mstore( add(pMem, 800 ), mload( add( pProof, add(pA,64)))) + mstore( add(pMem, 832 ), mload( add( pProof, add(pA,96)))) + mstore( add(pMem, 864 ), mload( add( pProof, add(pA,128)))) + mstore( add(pMem, 896 ), mload( add( pProof, add(pA,160)))) + + b := mod(keccak256(add(pMem, lastMem), 224), q) + mstore( add(pMem, pBeta), b) + mstore( add(pMem, pGamma), mod(keccak256(add(pMem, pBeta), 32), q)) + mstore( add(pMem, pAlpha), mod(keccak256(add(pProof, pZ), 64), q)) + + a := mod(keccak256(add(pProof, pT1), 192), q) + mstore( add(pMem, pXi), a) + mstore( add(pMem, pBetaXi), mulmod(b, a, q)) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + mstore( add(pMem, pXin), a) + a:= mod(add(sub(a, 1),q), q) + mstore( add(pMem, pZh), a) + mstore( add(pMem, pZhInv), a) // We will invert later together with lagrange pols + + let v1 := mod(keccak256(add(pProof, pEval_a), 224), q) + mstore( add(pMem, pV1), v1) + a := mulmod(v1, v1, q) + mstore( add(pMem, pV2), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV3), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV4), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV5), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV6), a) + + mstore( add(pMem, pU), mod(keccak256(add(pProof, pWxi), 128), q)) + } + + function calculateLagrange(pMem) { + + let w := 1 + + mstore( + add(pMem, pEval_l1), + mulmod( + n, + mod( + add( + sub( + mload(add(pMem, pXi)), + w + ), + q + ), + q + ), + q + ) + ) + + + + inverseArray(add(pMem, pZhInv), 2 ) + + let zh := mload(add(pMem, pZh)) + w := 1 + + + mstore( + add(pMem, pEval_l1 ), + mulmod( + mload(add(pMem, pEval_l1 )), + zh, + q + ) + ) + + + + + + } + + function calculatePl(pMem, pPub) { + let pl := 0 + + + pl := mod( + add( + sub( + pl, + mulmod( + mload(add(pMem, pEval_l1)), + mload(add(pPub, 32)), + q + ) + ), + q + ), + q + ) + + + mstore(add(pMem, pPl), pl) + + + } + + function calculateT(pProof, pMem) { + let t + let t1 + let t2 + t := addmod( + mload(add(pProof, pEval_r)), + mload(add(pMem, pPl)), + q + ) + + t1 := mulmod( + mload(add(pProof, pEval_s1)), + mload(add(pMem, pBeta)), + q + ) + + t1 := addmod( + t1, + mload(add(pProof, pEval_a)), + q + ) + + t1 := addmod( + t1, + mload(add(pMem, pGamma)), + q + ) + + t2 := mulmod( + mload(add(pProof, pEval_s2)), + mload(add(pMem, pBeta)), + q + ) + + t2 := addmod( + t2, + mload(add(pProof, pEval_b)), + q + ) + + t2 := addmod( + t2, + mload(add(pMem, pGamma)), + q + ) + + t1 := mulmod(t1, t2, q) + + t2 := addmod( + mload(add(pProof, pEval_c)), + mload(add(pMem, pGamma)), + q + ) + + t1 := mulmod(t1, t2, q) + t1 := mulmod(t1, mload(add(pProof, pEval_zw)), q) + t1 := mulmod(t1, mload(add(pMem, pAlpha)), q) + + t2 := mulmod( + mload(add(pMem, pEval_l1)), + mload(add(pMem, pAlpha)), + q + ) + + t2 := mulmod( + t2, + mload(add(pMem, pAlpha)), + q + ) + + t1 := addmod(t1, t2, q) + + t := mod(sub(add(t, q), t1), q) + t := mulmod(t, mload(add(pMem, pZhInv)), q) + + mstore( add(pMem, pEval_t) , t) + + } + + function g1_set(pR, pP) { + mstore(pR, mload(pP)) + mstore(add(pR, 32), mload(add(pP,32))) + } + + function g1_acc(pR, pP) { + let mIn := mload(0x40) + mstore(mIn, mload(pR)) + mstore(add(mIn,32), mload(add(pR, 32))) + mstore(add(mIn,64), mload(pP)) + mstore(add(mIn,96), mload(add(pP, 32))) + + let success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + function g1_mulAcc(pR, pP, s) { + let success + let mIn := mload(0x40) + mstore(mIn, mload(pP)) + mstore(add(mIn,32), mload(add(pP, 32))) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + mstore(add(mIn,64), mload(pR)) + mstore(add(mIn,96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + } + + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn,32), y) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + mstore(add(mIn,64), mload(pR)) + mstore(add(mIn,96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + function g1_mulSetC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn,32), y) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + + function calculateA1(pProof, pMem) { + let p := add(pMem, pA1) + g1_set(p, add(pProof, pWxi)) + g1_mulAcc(p, add(pProof, pWxiw), mload(add(pMem, pU))) + } + + + function calculateB1(pProof, pMem) { + let s + let s1 + let p := add(pMem, pB1) + + // Calculate D + s := mulmod( mload(add(pProof, pEval_a)), mload(add(pMem, pV1)), q) + g1_mulSetC(p, Qlx, Qly, s) + + s := mulmod( s, mload(add(pProof, pEval_b)), q) + g1_mulAccC(p, Qmx, Qmy, s) + + s := mulmod( mload(add(pProof, pEval_b)), mload(add(pMem, pV1)), q) + g1_mulAccC(p, Qrx, Qry, s) + + s := mulmod( mload(add(pProof, pEval_c)), mload(add(pMem, pV1)), q) + g1_mulAccC(p, Qox, Qoy, s) + + s :=mload(add(pMem, pV1)) + g1_mulAccC(p, Qcx, Qcy, s) + + s := addmod(mload(add(pProof, pEval_a)), mload(add(pMem, pBetaXi)), q) + s := addmod(s, mload(add(pMem, pGamma)), q) + s1 := mulmod(k1, mload(add(pMem, pBetaXi)), q) + s1 := addmod(s1, mload(add(pProof, pEval_b)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s1 := mulmod(k2, mload(add(pMem, pBetaXi)), q) + s1 := addmod(s1, mload(add(pProof, pEval_c)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s := mulmod(s, mload(add(pMem, pAlpha)), q) + s := mulmod(s, mload(add(pMem, pV1)), q) + s1 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q) + s1 := mulmod(s1, mload(add(pMem, pAlpha)), q) + s1 := mulmod(s1, mload(add(pMem, pV1)), q) + s := addmod(s, s1, q) + s := addmod(s, mload(add(pMem, pU)), q) + g1_mulAcc(p, add(pProof, pZ), s) + + s := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s1)), q) + s := addmod(s, mload(add(pProof, pEval_a)), q) + s := addmod(s, mload(add(pMem, pGamma)), q) + s1 := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s2)), q) + s1 := addmod(s1, mload(add(pProof, pEval_b)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s := mulmod(s, mload(add(pMem, pAlpha)), q) + s := mulmod(s, mload(add(pMem, pV1)), q) + s := mulmod(s, mload(add(pMem, pBeta)), q) + s := mulmod(s, mload(add(pProof, pEval_zw)), q) + s := mod(sub(q, s), q) + g1_mulAccC(p, S3x, S3y, s) + + + // calculate F + g1_acc(p , add(pProof, pT1)) + + s := mload(add(pMem, pXin)) + g1_mulAcc(p, add(pProof, pT2), s) + + s := mulmod(s, s, q) + g1_mulAcc(p, add(pProof, pT3), s) + + g1_mulAcc(p, add(pProof, pA), mload(add(pMem, pV2))) + g1_mulAcc(p, add(pProof, pB), mload(add(pMem, pV3))) + g1_mulAcc(p, add(pProof, pC), mload(add(pMem, pV4))) + g1_mulAccC(p, S1x, S1y, mload(add(pMem, pV5))) + g1_mulAccC(p, S2x, S2y, mload(add(pMem, pV6))) + + // calculate E + s := mload(add(pMem, pEval_t)) + s := addmod(s, mulmod(mload(add(pProof, pEval_r)), mload(add(pMem, pV1)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV2)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV3)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV4)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pV5)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pV6)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_zw)), mload(add(pMem, pU)), q), q) + s := mod(sub(q, s), q) + g1_mulAccC(p, G1x, G1y, s) + + + // Last part of B + s := mload(add(pMem, pXi)) + g1_mulAcc(p, add(pProof, pWxi), s) + + s := mulmod(mload(add(pMem, pU)), mload(add(pMem, pXi)), q) + s := mulmod(s, w1, q) + g1_mulAcc(p, add(pProof, pWxiw), s) + + } + + function checkPairing(pMem) -> isOk { + let mIn := mload(0x40) + mstore(mIn, mload(add(pMem, pA1))) + mstore(add(mIn,32), mload(add(add(pMem, pA1), 32))) + mstore(add(mIn,64), X2x2) + mstore(add(mIn,96), X2x1) + mstore(add(mIn,128), X2y2) + mstore(add(mIn,160), X2y1) + mstore(add(mIn,192), mload(add(pMem, pB1))) + let s := mload(add(add(pMem, pB1), 32)) + s := mod(sub(qf, s), qf) + mstore(add(mIn,224), s) + mstore(add(mIn,256), G2x2) + mstore(add(mIn,288), G2x1) + mstore(add(mIn,320), G2y2) + mstore(add(mIn,352), G2y1) + + let success := staticcall(sub(gas(), 2000), 8, mIn, 384, mIn, 0x20) + + isOk := and(success, mload(mIn)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, lastMem)) + + checkInput(proof) + calculateChallanges(proof, pMem, pubSignals) + calculateLagrange(pMem) + calculatePl(pMem, pubSignals) + calculateT(proof, pMem) + calculateA1(proof, pMem) + calculateB1(proof, pMem) + let isValid := checkPairing(pMem) + + mstore(0x40, sub(pMem, lastMem)) + mstore(0, isValid) + return(0,0x20) + } + + } +} From c26ee0ef1f7cfff3ef1e4a5f678ec5acea4c4dec Mon Sep 17 00:00:00 2001 From: biscuitdey Date: Mon, 22 Jul 2024 17:49:47 +0530 Subject: [PATCH 3/6] Remove separate workstep verifier contracts --- .../ccsm/contracts/workstep1Verifier.sol | 652 ------------------ .../ccsm/contracts/workstep2Verifier.sol | 652 ------------------ .../ccsm/contracts/workstep3Verifier.sol | 652 ------------------ 3 files changed, 1956 deletions(-) delete mode 100644 examples/bri-3/ccsm/contracts/workstep1Verifier.sol delete mode 100644 examples/bri-3/ccsm/contracts/workstep2Verifier.sol delete mode 100644 examples/bri-3/ccsm/contracts/workstep3Verifier.sol diff --git a/examples/bri-3/ccsm/contracts/workstep1Verifier.sol b/examples/bri-3/ccsm/contracts/workstep1Verifier.sol deleted file mode 100644 index 1cfdb1768..000000000 --- a/examples/bri-3/ccsm/contracts/workstep1Verifier.sol +++ /dev/null @@ -1,652 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -/* - Copyright 2021 0KIMS association. - - This file is generated with [snarkJS](https://github.com/iden3/snarkjs). - - snarkJS is a free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - snarkJS is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. - - You should have received a copy of the GNU General Public License - along with snarkJS. If not, see . -*/ - - -pragma solidity >=0.7.0 <0.9.0; - -contract PlonkVerifier { - - uint32 constant n = 32768; - uint16 constant nPublic = 1; - uint16 constant nLagrange = 1; - - uint256 constant Qmx = 10194515970599655109282911583529565849380113195932357171927870801826137307774; - uint256 constant Qmy = 13140940011443490941222100702885231336933018003050133753669339785410949789318; - uint256 constant Qlx = 9075702821792504836345109031609121656336462373875253577566881197906035654776; - uint256 constant Qly = 18954037199706809918078978569604036271719091221321522515280996454686959634667; - uint256 constant Qrx = 14125739754959425112951448565023067073272356473857387194868146753139341737481; - uint256 constant Qry = 9211804802878452259667024877839323417493810024412294758516974036979308136919; - uint256 constant Qox = 13352593265832352698392334901719590216083652550510765281779096890792086115148; - uint256 constant Qoy = 21171212246999274828233761278619486390083267569257427931416020748289597739922; - uint256 constant Qcx = 5480056686458973564008058219103481932927511500969774465272533080708796456916; - uint256 constant Qcy = 18487662305128159302246915279383311188386526722958024410734396746249896900994; - uint256 constant S1x = 17437666502495807466379659324529146642963221649250738321282955596403801525575; - uint256 constant S1y = 18377485979133540239288926929244885650557281677382052473844064353786021038654; - uint256 constant S2x = 10333151760014968029254102863611638785552971938423162339326135439408834116154; - uint256 constant S2y = 6543452700579038735255020802571735600538633455576730189571594753630185539443; - uint256 constant S3x = 8285393960618857014807148089475294222094460765549151605952886640511103409207; - uint256 constant S3y = 11915398849747589245935203954132611261473678566697922313039161652306295887431; - uint256 constant k1 = 2; - uint256 constant k2 = 3; - uint256 constant X2x1 = 7550171141489642323345496683737244277083256424004707715998483409540040587466; - uint256 constant X2x2 = 13674327281456600895607819848682159502956608479735975762218411599033981559968; - uint256 constant X2y1 = 16329427655915944908484974060898761683974646318074639198003187154525254176520; - uint256 constant X2y2 = 19604631653040203911523494213678188005987622194545572529608835183936569820990; - - uint256 constant q = 21888242871839275222246405745257275088548364400416034343698204186575808495617; - uint256 constant qf = 21888242871839275222246405745257275088696311157297823662689037894645226208583; - uint256 constant w1 = 20402931748843538985151001264530049874871572933694634836567070693966133783803; - - uint256 constant G1x = 1; - uint256 constant G1y = 2; - uint256 constant G2x1 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; - uint256 constant G2x2 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; - uint256 constant G2y1 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant G2y2 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; - uint16 constant pA = 32; - uint16 constant pB = 96; - uint16 constant pC = 160; - uint16 constant pZ = 224; - uint16 constant pT1 = 288; - uint16 constant pT2 = 352; - uint16 constant pT3 = 416; - uint16 constant pWxi = 480; - uint16 constant pWxiw = 544; - uint16 constant pEval_a = 608; - uint16 constant pEval_b = 640; - uint16 constant pEval_c = 672; - uint16 constant pEval_s1 = 704; - uint16 constant pEval_s2 = 736; - uint16 constant pEval_zw = 768; - uint16 constant pEval_r = 800; - - uint16 constant pAlpha = 0; - uint16 constant pBeta = 32; - uint16 constant pGamma = 64; - uint16 constant pXi = 96; - uint16 constant pXin = 128; - uint16 constant pBetaXi = 160; - uint16 constant pV1 = 192; - uint16 constant pV2 = 224; - uint16 constant pV3 = 256; - uint16 constant pV4 = 288; - uint16 constant pV5 = 320; - uint16 constant pV6 = 352; - uint16 constant pU = 384; - uint16 constant pPl = 416; - uint16 constant pEval_t = 448; - uint16 constant pA1 = 480; - uint16 constant pB1 = 544; - uint16 constant pZh = 608; - uint16 constant pZhInv = 640; - - uint16 constant pEval_l1 = 672; - - - - uint16 constant lastMem = 704; - - function verifyProof(bytes memory proof, uint[] memory pubSignals) public view returns (bool) { - assembly { - ///////// - // Computes the inverse using the extended euclidean algorithm - ///////// - function inverse(a, q) -> inv { - let t := 0 - let newt := 1 - let r := q - let newr := a - let quotient - let aux - - for { } newr { } { - quotient := sdiv(r, newr) - aux := sub(t, mul(quotient, newt)) - t:= newt - newt:= aux - - aux := sub(r,mul(quotient, newr)) - r := newr - newr := aux - } - - if gt(r, 1) { revert(0,0) } - if slt(t, 0) { t:= add(t, q) } - - inv := t - } - - /////// - // Computes the inverse of an array of values - // See https://vitalik.ca/general/2018/07/21/starks_part_3.html in section where explain fields operations - ////// - function inverseArray(pVals, n) { - - let pAux := mload(0x40) // Point to the next free position - let pIn := pVals - let lastPIn := add(pVals, mul(n, 32)) // Read n elemnts - let acc := mload(pIn) // Read the first element - pIn := add(pIn, 32) // Point to the second element - let inv - - - for { } lt(pIn, lastPIn) { - pAux := add(pAux, 32) - pIn := add(pIn, 32) - } - { - mstore(pAux, acc) - acc := mulmod(acc, mload(pIn), q) - } - acc := inverse(acc, q) - - // At this point pAux pint to the next free position we substract 1 to point to the last used - pAux := sub(pAux, 32) - // pIn points to the n+1 element, we substract to point to n - pIn := sub(pIn, 32) - lastPIn := pVals // We don't process the first element - for { } gt(pIn, lastPIn) { - pAux := sub(pAux, 32) - pIn := sub(pIn, 32) - } - { - inv := mulmod(acc, mload(pAux), q) - acc := mulmod(acc, mload(pIn), q) - mstore(pIn, inv) - } - // pIn points to first element, we just set it. - mstore(pIn, acc) - } - - function checkField(v) { - if iszero(lt(v, q)) { - mstore(0, 0) - return(0,0x20) - } - } - - function checkInput(pProof) { - if iszero(eq(mload(pProof), 800 )) { - mstore(0, 0) - return(0,0x20) - } - checkField(mload(add(pProof, pEval_a))) - checkField(mload(add(pProof, pEval_b))) - checkField(mload(add(pProof, pEval_c))) - checkField(mload(add(pProof, pEval_s1))) - checkField(mload(add(pProof, pEval_s2))) - checkField(mload(add(pProof, pEval_zw))) - checkField(mload(add(pProof, pEval_r))) - - // Points are checked in the point operations precompiled smart contracts - } - - function calculateChallanges(pProof, pMem, pPublic) { - - let a - let b - - - mstore( add(pMem, 704 ), mload( add( pPublic, 32))) - - mstore( add(pMem, 736 ), mload( add( pProof, pA))) - mstore( add(pMem, 768 ), mload( add( pProof, add(pA,32)))) - mstore( add(pMem, 800 ), mload( add( pProof, add(pA,64)))) - mstore( add(pMem, 832 ), mload( add( pProof, add(pA,96)))) - mstore( add(pMem, 864 ), mload( add( pProof, add(pA,128)))) - mstore( add(pMem, 896 ), mload( add( pProof, add(pA,160)))) - - b := mod(keccak256(add(pMem, lastMem), 224), q) - mstore( add(pMem, pBeta), b) - mstore( add(pMem, pGamma), mod(keccak256(add(pMem, pBeta), 32), q)) - mstore( add(pMem, pAlpha), mod(keccak256(add(pProof, pZ), 64), q)) - - a := mod(keccak256(add(pProof, pT1), 192), q) - mstore( add(pMem, pXi), a) - mstore( add(pMem, pBetaXi), mulmod(b, a, q)) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - mstore( add(pMem, pXin), a) - a:= mod(add(sub(a, 1),q), q) - mstore( add(pMem, pZh), a) - mstore( add(pMem, pZhInv), a) // We will invert later together with lagrange pols - - let v1 := mod(keccak256(add(pProof, pEval_a), 224), q) - mstore( add(pMem, pV1), v1) - a := mulmod(v1, v1, q) - mstore( add(pMem, pV2), a) - a := mulmod(a, v1, q) - mstore( add(pMem, pV3), a) - a := mulmod(a, v1, q) - mstore( add(pMem, pV4), a) - a := mulmod(a, v1, q) - mstore( add(pMem, pV5), a) - a := mulmod(a, v1, q) - mstore( add(pMem, pV6), a) - - mstore( add(pMem, pU), mod(keccak256(add(pProof, pWxi), 128), q)) - } - - function calculateLagrange(pMem) { - - let w := 1 - - mstore( - add(pMem, pEval_l1), - mulmod( - n, - mod( - add( - sub( - mload(add(pMem, pXi)), - w - ), - q - ), - q - ), - q - ) - ) - - - - inverseArray(add(pMem, pZhInv), 2 ) - - let zh := mload(add(pMem, pZh)) - w := 1 - - - mstore( - add(pMem, pEval_l1 ), - mulmod( - mload(add(pMem, pEval_l1 )), - zh, - q - ) - ) - - - - - - } - - function calculatePl(pMem, pPub) { - let pl := 0 - - - pl := mod( - add( - sub( - pl, - mulmod( - mload(add(pMem, pEval_l1)), - mload(add(pPub, 32)), - q - ) - ), - q - ), - q - ) - - - mstore(add(pMem, pPl), pl) - - - } - - function calculateT(pProof, pMem) { - let t - let t1 - let t2 - t := addmod( - mload(add(pProof, pEval_r)), - mload(add(pMem, pPl)), - q - ) - - t1 := mulmod( - mload(add(pProof, pEval_s1)), - mload(add(pMem, pBeta)), - q - ) - - t1 := addmod( - t1, - mload(add(pProof, pEval_a)), - q - ) - - t1 := addmod( - t1, - mload(add(pMem, pGamma)), - q - ) - - t2 := mulmod( - mload(add(pProof, pEval_s2)), - mload(add(pMem, pBeta)), - q - ) - - t2 := addmod( - t2, - mload(add(pProof, pEval_b)), - q - ) - - t2 := addmod( - t2, - mload(add(pMem, pGamma)), - q - ) - - t1 := mulmod(t1, t2, q) - - t2 := addmod( - mload(add(pProof, pEval_c)), - mload(add(pMem, pGamma)), - q - ) - - t1 := mulmod(t1, t2, q) - t1 := mulmod(t1, mload(add(pProof, pEval_zw)), q) - t1 := mulmod(t1, mload(add(pMem, pAlpha)), q) - - t2 := mulmod( - mload(add(pMem, pEval_l1)), - mload(add(pMem, pAlpha)), - q - ) - - t2 := mulmod( - t2, - mload(add(pMem, pAlpha)), - q - ) - - t1 := addmod(t1, t2, q) - - t := mod(sub(add(t, q), t1), q) - t := mulmod(t, mload(add(pMem, pZhInv)), q) - - mstore( add(pMem, pEval_t) , t) - - } - - function g1_set(pR, pP) { - mstore(pR, mload(pP)) - mstore(add(pR, 32), mload(add(pP,32))) - } - - function g1_acc(pR, pP) { - let mIn := mload(0x40) - mstore(mIn, mload(pR)) - mstore(add(mIn,32), mload(add(pR, 32))) - mstore(add(mIn,64), mload(pP)) - mstore(add(mIn,96), mload(add(pP, 32))) - - let success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - } - - function g1_mulAcc(pR, pP, s) { - let success - let mIn := mload(0x40) - mstore(mIn, mload(pP)) - mstore(add(mIn,32), mload(add(pP, 32))) - mstore(add(mIn,64), s) - - success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - - mstore(add(mIn,64), mload(pR)) - mstore(add(mIn,96), mload(add(pR, 32))) - - success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - - } - - function g1_mulAccC(pR, x, y, s) { - let success - let mIn := mload(0x40) - mstore(mIn, x) - mstore(add(mIn,32), y) - mstore(add(mIn,64), s) - - success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - - mstore(add(mIn,64), mload(pR)) - mstore(add(mIn,96), mload(add(pR, 32))) - - success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - } - - function g1_mulSetC(pR, x, y, s) { - let success - let mIn := mload(0x40) - mstore(mIn, x) - mstore(add(mIn,32), y) - mstore(add(mIn,64), s) - - success := staticcall(sub(gas(), 2000), 7, mIn, 96, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - } - - - function calculateA1(pProof, pMem) { - let p := add(pMem, pA1) - g1_set(p, add(pProof, pWxi)) - g1_mulAcc(p, add(pProof, pWxiw), mload(add(pMem, pU))) - } - - - function calculateB1(pProof, pMem) { - let s - let s1 - let p := add(pMem, pB1) - - // Calculate D - s := mulmod( mload(add(pProof, pEval_a)), mload(add(pMem, pV1)), q) - g1_mulSetC(p, Qlx, Qly, s) - - s := mulmod( s, mload(add(pProof, pEval_b)), q) - g1_mulAccC(p, Qmx, Qmy, s) - - s := mulmod( mload(add(pProof, pEval_b)), mload(add(pMem, pV1)), q) - g1_mulAccC(p, Qrx, Qry, s) - - s := mulmod( mload(add(pProof, pEval_c)), mload(add(pMem, pV1)), q) - g1_mulAccC(p, Qox, Qoy, s) - - s :=mload(add(pMem, pV1)) - g1_mulAccC(p, Qcx, Qcy, s) - - s := addmod(mload(add(pProof, pEval_a)), mload(add(pMem, pBetaXi)), q) - s := addmod(s, mload(add(pMem, pGamma)), q) - s1 := mulmod(k1, mload(add(pMem, pBetaXi)), q) - s1 := addmod(s1, mload(add(pProof, pEval_b)), q) - s1 := addmod(s1, mload(add(pMem, pGamma)), q) - s := mulmod(s, s1, q) - s1 := mulmod(k2, mload(add(pMem, pBetaXi)), q) - s1 := addmod(s1, mload(add(pProof, pEval_c)), q) - s1 := addmod(s1, mload(add(pMem, pGamma)), q) - s := mulmod(s, s1, q) - s := mulmod(s, mload(add(pMem, pAlpha)), q) - s := mulmod(s, mload(add(pMem, pV1)), q) - s1 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q) - s1 := mulmod(s1, mload(add(pMem, pAlpha)), q) - s1 := mulmod(s1, mload(add(pMem, pV1)), q) - s := addmod(s, s1, q) - s := addmod(s, mload(add(pMem, pU)), q) - g1_mulAcc(p, add(pProof, pZ), s) - - s := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s1)), q) - s := addmod(s, mload(add(pProof, pEval_a)), q) - s := addmod(s, mload(add(pMem, pGamma)), q) - s1 := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s2)), q) - s1 := addmod(s1, mload(add(pProof, pEval_b)), q) - s1 := addmod(s1, mload(add(pMem, pGamma)), q) - s := mulmod(s, s1, q) - s := mulmod(s, mload(add(pMem, pAlpha)), q) - s := mulmod(s, mload(add(pMem, pV1)), q) - s := mulmod(s, mload(add(pMem, pBeta)), q) - s := mulmod(s, mload(add(pProof, pEval_zw)), q) - s := mod(sub(q, s), q) - g1_mulAccC(p, S3x, S3y, s) - - - // calculate F - g1_acc(p , add(pProof, pT1)) - - s := mload(add(pMem, pXin)) - g1_mulAcc(p, add(pProof, pT2), s) - - s := mulmod(s, s, q) - g1_mulAcc(p, add(pProof, pT3), s) - - g1_mulAcc(p, add(pProof, pA), mload(add(pMem, pV2))) - g1_mulAcc(p, add(pProof, pB), mload(add(pMem, pV3))) - g1_mulAcc(p, add(pProof, pC), mload(add(pMem, pV4))) - g1_mulAccC(p, S1x, S1y, mload(add(pMem, pV5))) - g1_mulAccC(p, S2x, S2y, mload(add(pMem, pV6))) - - // calculate E - s := mload(add(pMem, pEval_t)) - s := addmod(s, mulmod(mload(add(pProof, pEval_r)), mload(add(pMem, pV1)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV2)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV3)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV4)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pV5)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pV6)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_zw)), mload(add(pMem, pU)), q), q) - s := mod(sub(q, s), q) - g1_mulAccC(p, G1x, G1y, s) - - - // Last part of B - s := mload(add(pMem, pXi)) - g1_mulAcc(p, add(pProof, pWxi), s) - - s := mulmod(mload(add(pMem, pU)), mload(add(pMem, pXi)), q) - s := mulmod(s, w1, q) - g1_mulAcc(p, add(pProof, pWxiw), s) - - } - - function checkPairing(pMem) -> isOk { - let mIn := mload(0x40) - mstore(mIn, mload(add(pMem, pA1))) - mstore(add(mIn,32), mload(add(add(pMem, pA1), 32))) - mstore(add(mIn,64), X2x2) - mstore(add(mIn,96), X2x1) - mstore(add(mIn,128), X2y2) - mstore(add(mIn,160), X2y1) - mstore(add(mIn,192), mload(add(pMem, pB1))) - let s := mload(add(add(pMem, pB1), 32)) - s := mod(sub(qf, s), qf) - mstore(add(mIn,224), s) - mstore(add(mIn,256), G2x2) - mstore(add(mIn,288), G2x1) - mstore(add(mIn,320), G2y2) - mstore(add(mIn,352), G2y1) - - let success := staticcall(sub(gas(), 2000), 8, mIn, 384, mIn, 0x20) - - isOk := and(success, mload(mIn)) - } - - let pMem := mload(0x40) - mstore(0x40, add(pMem, lastMem)) - - checkInput(proof) - calculateChallanges(proof, pMem, pubSignals) - calculateLagrange(pMem) - calculatePl(pMem, pubSignals) - calculateT(proof, pMem) - calculateA1(proof, pMem) - calculateB1(proof, pMem) - let isValid := checkPairing(pMem) - - mstore(0x40, sub(pMem, lastMem)) - mstore(0, isValid) - return(0,0x20) - } - - } -} diff --git a/examples/bri-3/ccsm/contracts/workstep2Verifier.sol b/examples/bri-3/ccsm/contracts/workstep2Verifier.sol deleted file mode 100644 index 8aa99b873..000000000 --- a/examples/bri-3/ccsm/contracts/workstep2Verifier.sol +++ /dev/null @@ -1,652 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -/* - Copyright 2021 0KIMS association. - - This file is generated with [snarkJS](https://github.com/iden3/snarkjs). - - snarkJS is a free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - snarkJS is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. - - You should have received a copy of the GNU General Public License - along with snarkJS. If not, see . -*/ - - -pragma solidity >=0.7.0 <0.9.0; - -contract PlonkVerifier { - - uint32 constant n = 32768; - uint16 constant nPublic = 1; - uint16 constant nLagrange = 1; - - uint256 constant Qmx = 9031014201334786598437474819333373897984837472962630324851335361844058545780; - uint256 constant Qmy = 16607210786086921981367283815049778740600968770620223098147538097138430537595; - uint256 constant Qlx = 6808278280485306759745548891536191162342236099697633650996345740914224220305; - uint256 constant Qly = 3270170195800647956439730797339220040656917583598598133609260645618986123588; - uint256 constant Qrx = 6148500901704548782540313024093324774763190834353235759778239054380115761181; - uint256 constant Qry = 17496928704547418787249113629100332597587390388927992302390890724367334325226; - uint256 constant Qox = 21659278811951783556483125629272843184764885478213749993598444862278045884755; - uint256 constant Qoy = 16660597475205619545281468126006239987539267348200340592793952148487504874309; - uint256 constant Qcx = 5305510349838087338783547875566294471771494030996437605662252026376037082958; - uint256 constant Qcy = 19377334097772342373923876594211562277705091388899497313132675599004144975313; - uint256 constant S1x = 13511374588247167997414482771460319777500130147065290737814654512741747616346; - uint256 constant S1y = 9410442723228155800609023852081630300440285014469359549251506116352343840765; - uint256 constant S2x = 6234343642032529676304475840139856609542183618893282794848722265839404121608; - uint256 constant S2y = 198081256679397470117078185378786682134167977767481936106730933658216400205; - uint256 constant S3x = 15607364487714913306100446210105619358733676078036562302151585058643715232255; - uint256 constant S3y = 16418203895932101971661510317717759015568131982287223931136504811190200970422; - uint256 constant k1 = 2; - uint256 constant k2 = 3; - uint256 constant X2x1 = 7550171141489642323345496683737244277083256424004707715998483409540040587466; - uint256 constant X2x2 = 13674327281456600895607819848682159502956608479735975762218411599033981559968; - uint256 constant X2y1 = 16329427655915944908484974060898761683974646318074639198003187154525254176520; - uint256 constant X2y2 = 19604631653040203911523494213678188005987622194545572529608835183936569820990; - - uint256 constant q = 21888242871839275222246405745257275088548364400416034343698204186575808495617; - uint256 constant qf = 21888242871839275222246405745257275088696311157297823662689037894645226208583; - uint256 constant w1 = 20402931748843538985151001264530049874871572933694634836567070693966133783803; - - uint256 constant G1x = 1; - uint256 constant G1y = 2; - uint256 constant G2x1 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; - uint256 constant G2x2 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; - uint256 constant G2y1 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant G2y2 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; - uint16 constant pA = 32; - uint16 constant pB = 96; - uint16 constant pC = 160; - uint16 constant pZ = 224; - uint16 constant pT1 = 288; - uint16 constant pT2 = 352; - uint16 constant pT3 = 416; - uint16 constant pWxi = 480; - uint16 constant pWxiw = 544; - uint16 constant pEval_a = 608; - uint16 constant pEval_b = 640; - uint16 constant pEval_c = 672; - uint16 constant pEval_s1 = 704; - uint16 constant pEval_s2 = 736; - uint16 constant pEval_zw = 768; - uint16 constant pEval_r = 800; - - uint16 constant pAlpha = 0; - uint16 constant pBeta = 32; - uint16 constant pGamma = 64; - uint16 constant pXi = 96; - uint16 constant pXin = 128; - uint16 constant pBetaXi = 160; - uint16 constant pV1 = 192; - uint16 constant pV2 = 224; - uint16 constant pV3 = 256; - uint16 constant pV4 = 288; - uint16 constant pV5 = 320; - uint16 constant pV6 = 352; - uint16 constant pU = 384; - uint16 constant pPl = 416; - uint16 constant pEval_t = 448; - uint16 constant pA1 = 480; - uint16 constant pB1 = 544; - uint16 constant pZh = 608; - uint16 constant pZhInv = 640; - - uint16 constant pEval_l1 = 672; - - - - uint16 constant lastMem = 704; - - function verifyProof(bytes memory proof, uint[] memory pubSignals) public view returns (bool) { - assembly { - ///////// - // Computes the inverse using the extended euclidean algorithm - ///////// - function inverse(a, q) -> inv { - let t := 0 - let newt := 1 - let r := q - let newr := a - let quotient - let aux - - for { } newr { } { - quotient := sdiv(r, newr) - aux := sub(t, mul(quotient, newt)) - t:= newt - newt:= aux - - aux := sub(r,mul(quotient, newr)) - r := newr - newr := aux - } - - if gt(r, 1) { revert(0,0) } - if slt(t, 0) { t:= add(t, q) } - - inv := t - } - - /////// - // Computes the inverse of an array of values - // See https://vitalik.ca/general/2018/07/21/starks_part_3.html in section where explain fields operations - ////// - function inverseArray(pVals, n) { - - let pAux := mload(0x40) // Point to the next free position - let pIn := pVals - let lastPIn := add(pVals, mul(n, 32)) // Read n elemnts - let acc := mload(pIn) // Read the first element - pIn := add(pIn, 32) // Point to the second element - let inv - - - for { } lt(pIn, lastPIn) { - pAux := add(pAux, 32) - pIn := add(pIn, 32) - } - { - mstore(pAux, acc) - acc := mulmod(acc, mload(pIn), q) - } - acc := inverse(acc, q) - - // At this point pAux pint to the next free position we substract 1 to point to the last used - pAux := sub(pAux, 32) - // pIn points to the n+1 element, we substract to point to n - pIn := sub(pIn, 32) - lastPIn := pVals // We don't process the first element - for { } gt(pIn, lastPIn) { - pAux := sub(pAux, 32) - pIn := sub(pIn, 32) - } - { - inv := mulmod(acc, mload(pAux), q) - acc := mulmod(acc, mload(pIn), q) - mstore(pIn, inv) - } - // pIn points to first element, we just set it. - mstore(pIn, acc) - } - - function checkField(v) { - if iszero(lt(v, q)) { - mstore(0, 0) - return(0,0x20) - } - } - - function checkInput(pProof) { - if iszero(eq(mload(pProof), 800 )) { - mstore(0, 0) - return(0,0x20) - } - checkField(mload(add(pProof, pEval_a))) - checkField(mload(add(pProof, pEval_b))) - checkField(mload(add(pProof, pEval_c))) - checkField(mload(add(pProof, pEval_s1))) - checkField(mload(add(pProof, pEval_s2))) - checkField(mload(add(pProof, pEval_zw))) - checkField(mload(add(pProof, pEval_r))) - - // Points are checked in the point operations precompiled smart contracts - } - - function calculateChallanges(pProof, pMem, pPublic) { - - let a - let b - - - mstore( add(pMem, 704 ), mload( add( pPublic, 32))) - - mstore( add(pMem, 736 ), mload( add( pProof, pA))) - mstore( add(pMem, 768 ), mload( add( pProof, add(pA,32)))) - mstore( add(pMem, 800 ), mload( add( pProof, add(pA,64)))) - mstore( add(pMem, 832 ), mload( add( pProof, add(pA,96)))) - mstore( add(pMem, 864 ), mload( add( pProof, add(pA,128)))) - mstore( add(pMem, 896 ), mload( add( pProof, add(pA,160)))) - - b := mod(keccak256(add(pMem, lastMem), 224), q) - mstore( add(pMem, pBeta), b) - mstore( add(pMem, pGamma), mod(keccak256(add(pMem, pBeta), 32), q)) - mstore( add(pMem, pAlpha), mod(keccak256(add(pProof, pZ), 64), q)) - - a := mod(keccak256(add(pProof, pT1), 192), q) - mstore( add(pMem, pXi), a) - mstore( add(pMem, pBetaXi), mulmod(b, a, q)) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - mstore( add(pMem, pXin), a) - a:= mod(add(sub(a, 1),q), q) - mstore( add(pMem, pZh), a) - mstore( add(pMem, pZhInv), a) // We will invert later together with lagrange pols - - let v1 := mod(keccak256(add(pProof, pEval_a), 224), q) - mstore( add(pMem, pV1), v1) - a := mulmod(v1, v1, q) - mstore( add(pMem, pV2), a) - a := mulmod(a, v1, q) - mstore( add(pMem, pV3), a) - a := mulmod(a, v1, q) - mstore( add(pMem, pV4), a) - a := mulmod(a, v1, q) - mstore( add(pMem, pV5), a) - a := mulmod(a, v1, q) - mstore( add(pMem, pV6), a) - - mstore( add(pMem, pU), mod(keccak256(add(pProof, pWxi), 128), q)) - } - - function calculateLagrange(pMem) { - - let w := 1 - - mstore( - add(pMem, pEval_l1), - mulmod( - n, - mod( - add( - sub( - mload(add(pMem, pXi)), - w - ), - q - ), - q - ), - q - ) - ) - - - - inverseArray(add(pMem, pZhInv), 2 ) - - let zh := mload(add(pMem, pZh)) - w := 1 - - - mstore( - add(pMem, pEval_l1 ), - mulmod( - mload(add(pMem, pEval_l1 )), - zh, - q - ) - ) - - - - - - } - - function calculatePl(pMem, pPub) { - let pl := 0 - - - pl := mod( - add( - sub( - pl, - mulmod( - mload(add(pMem, pEval_l1)), - mload(add(pPub, 32)), - q - ) - ), - q - ), - q - ) - - - mstore(add(pMem, pPl), pl) - - - } - - function calculateT(pProof, pMem) { - let t - let t1 - let t2 - t := addmod( - mload(add(pProof, pEval_r)), - mload(add(pMem, pPl)), - q - ) - - t1 := mulmod( - mload(add(pProof, pEval_s1)), - mload(add(pMem, pBeta)), - q - ) - - t1 := addmod( - t1, - mload(add(pProof, pEval_a)), - q - ) - - t1 := addmod( - t1, - mload(add(pMem, pGamma)), - q - ) - - t2 := mulmod( - mload(add(pProof, pEval_s2)), - mload(add(pMem, pBeta)), - q - ) - - t2 := addmod( - t2, - mload(add(pProof, pEval_b)), - q - ) - - t2 := addmod( - t2, - mload(add(pMem, pGamma)), - q - ) - - t1 := mulmod(t1, t2, q) - - t2 := addmod( - mload(add(pProof, pEval_c)), - mload(add(pMem, pGamma)), - q - ) - - t1 := mulmod(t1, t2, q) - t1 := mulmod(t1, mload(add(pProof, pEval_zw)), q) - t1 := mulmod(t1, mload(add(pMem, pAlpha)), q) - - t2 := mulmod( - mload(add(pMem, pEval_l1)), - mload(add(pMem, pAlpha)), - q - ) - - t2 := mulmod( - t2, - mload(add(pMem, pAlpha)), - q - ) - - t1 := addmod(t1, t2, q) - - t := mod(sub(add(t, q), t1), q) - t := mulmod(t, mload(add(pMem, pZhInv)), q) - - mstore( add(pMem, pEval_t) , t) - - } - - function g1_set(pR, pP) { - mstore(pR, mload(pP)) - mstore(add(pR, 32), mload(add(pP,32))) - } - - function g1_acc(pR, pP) { - let mIn := mload(0x40) - mstore(mIn, mload(pR)) - mstore(add(mIn,32), mload(add(pR, 32))) - mstore(add(mIn,64), mload(pP)) - mstore(add(mIn,96), mload(add(pP, 32))) - - let success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - } - - function g1_mulAcc(pR, pP, s) { - let success - let mIn := mload(0x40) - mstore(mIn, mload(pP)) - mstore(add(mIn,32), mload(add(pP, 32))) - mstore(add(mIn,64), s) - - success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - - mstore(add(mIn,64), mload(pR)) - mstore(add(mIn,96), mload(add(pR, 32))) - - success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - - } - - function g1_mulAccC(pR, x, y, s) { - let success - let mIn := mload(0x40) - mstore(mIn, x) - mstore(add(mIn,32), y) - mstore(add(mIn,64), s) - - success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - - mstore(add(mIn,64), mload(pR)) - mstore(add(mIn,96), mload(add(pR, 32))) - - success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - } - - function g1_mulSetC(pR, x, y, s) { - let success - let mIn := mload(0x40) - mstore(mIn, x) - mstore(add(mIn,32), y) - mstore(add(mIn,64), s) - - success := staticcall(sub(gas(), 2000), 7, mIn, 96, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - } - - - function calculateA1(pProof, pMem) { - let p := add(pMem, pA1) - g1_set(p, add(pProof, pWxi)) - g1_mulAcc(p, add(pProof, pWxiw), mload(add(pMem, pU))) - } - - - function calculateB1(pProof, pMem) { - let s - let s1 - let p := add(pMem, pB1) - - // Calculate D - s := mulmod( mload(add(pProof, pEval_a)), mload(add(pMem, pV1)), q) - g1_mulSetC(p, Qlx, Qly, s) - - s := mulmod( s, mload(add(pProof, pEval_b)), q) - g1_mulAccC(p, Qmx, Qmy, s) - - s := mulmod( mload(add(pProof, pEval_b)), mload(add(pMem, pV1)), q) - g1_mulAccC(p, Qrx, Qry, s) - - s := mulmod( mload(add(pProof, pEval_c)), mload(add(pMem, pV1)), q) - g1_mulAccC(p, Qox, Qoy, s) - - s :=mload(add(pMem, pV1)) - g1_mulAccC(p, Qcx, Qcy, s) - - s := addmod(mload(add(pProof, pEval_a)), mload(add(pMem, pBetaXi)), q) - s := addmod(s, mload(add(pMem, pGamma)), q) - s1 := mulmod(k1, mload(add(pMem, pBetaXi)), q) - s1 := addmod(s1, mload(add(pProof, pEval_b)), q) - s1 := addmod(s1, mload(add(pMem, pGamma)), q) - s := mulmod(s, s1, q) - s1 := mulmod(k2, mload(add(pMem, pBetaXi)), q) - s1 := addmod(s1, mload(add(pProof, pEval_c)), q) - s1 := addmod(s1, mload(add(pMem, pGamma)), q) - s := mulmod(s, s1, q) - s := mulmod(s, mload(add(pMem, pAlpha)), q) - s := mulmod(s, mload(add(pMem, pV1)), q) - s1 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q) - s1 := mulmod(s1, mload(add(pMem, pAlpha)), q) - s1 := mulmod(s1, mload(add(pMem, pV1)), q) - s := addmod(s, s1, q) - s := addmod(s, mload(add(pMem, pU)), q) - g1_mulAcc(p, add(pProof, pZ), s) - - s := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s1)), q) - s := addmod(s, mload(add(pProof, pEval_a)), q) - s := addmod(s, mload(add(pMem, pGamma)), q) - s1 := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s2)), q) - s1 := addmod(s1, mload(add(pProof, pEval_b)), q) - s1 := addmod(s1, mload(add(pMem, pGamma)), q) - s := mulmod(s, s1, q) - s := mulmod(s, mload(add(pMem, pAlpha)), q) - s := mulmod(s, mload(add(pMem, pV1)), q) - s := mulmod(s, mload(add(pMem, pBeta)), q) - s := mulmod(s, mload(add(pProof, pEval_zw)), q) - s := mod(sub(q, s), q) - g1_mulAccC(p, S3x, S3y, s) - - - // calculate F - g1_acc(p , add(pProof, pT1)) - - s := mload(add(pMem, pXin)) - g1_mulAcc(p, add(pProof, pT2), s) - - s := mulmod(s, s, q) - g1_mulAcc(p, add(pProof, pT3), s) - - g1_mulAcc(p, add(pProof, pA), mload(add(pMem, pV2))) - g1_mulAcc(p, add(pProof, pB), mload(add(pMem, pV3))) - g1_mulAcc(p, add(pProof, pC), mload(add(pMem, pV4))) - g1_mulAccC(p, S1x, S1y, mload(add(pMem, pV5))) - g1_mulAccC(p, S2x, S2y, mload(add(pMem, pV6))) - - // calculate E - s := mload(add(pMem, pEval_t)) - s := addmod(s, mulmod(mload(add(pProof, pEval_r)), mload(add(pMem, pV1)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV2)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV3)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV4)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pV5)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pV6)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_zw)), mload(add(pMem, pU)), q), q) - s := mod(sub(q, s), q) - g1_mulAccC(p, G1x, G1y, s) - - - // Last part of B - s := mload(add(pMem, pXi)) - g1_mulAcc(p, add(pProof, pWxi), s) - - s := mulmod(mload(add(pMem, pU)), mload(add(pMem, pXi)), q) - s := mulmod(s, w1, q) - g1_mulAcc(p, add(pProof, pWxiw), s) - - } - - function checkPairing(pMem) -> isOk { - let mIn := mload(0x40) - mstore(mIn, mload(add(pMem, pA1))) - mstore(add(mIn,32), mload(add(add(pMem, pA1), 32))) - mstore(add(mIn,64), X2x2) - mstore(add(mIn,96), X2x1) - mstore(add(mIn,128), X2y2) - mstore(add(mIn,160), X2y1) - mstore(add(mIn,192), mload(add(pMem, pB1))) - let s := mload(add(add(pMem, pB1), 32)) - s := mod(sub(qf, s), qf) - mstore(add(mIn,224), s) - mstore(add(mIn,256), G2x2) - mstore(add(mIn,288), G2x1) - mstore(add(mIn,320), G2y2) - mstore(add(mIn,352), G2y1) - - let success := staticcall(sub(gas(), 2000), 8, mIn, 384, mIn, 0x20) - - isOk := and(success, mload(mIn)) - } - - let pMem := mload(0x40) - mstore(0x40, add(pMem, lastMem)) - - checkInput(proof) - calculateChallanges(proof, pMem, pubSignals) - calculateLagrange(pMem) - calculatePl(pMem, pubSignals) - calculateT(proof, pMem) - calculateA1(proof, pMem) - calculateB1(proof, pMem) - let isValid := checkPairing(pMem) - - mstore(0x40, sub(pMem, lastMem)) - mstore(0, isValid) - return(0,0x20) - } - - } -} diff --git a/examples/bri-3/ccsm/contracts/workstep3Verifier.sol b/examples/bri-3/ccsm/contracts/workstep3Verifier.sol deleted file mode 100644 index 8ac7379fd..000000000 --- a/examples/bri-3/ccsm/contracts/workstep3Verifier.sol +++ /dev/null @@ -1,652 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -/* - Copyright 2021 0KIMS association. - - This file is generated with [snarkJS](https://github.com/iden3/snarkjs). - - snarkJS is a free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - snarkJS is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. - - You should have received a copy of the GNU General Public License - along with snarkJS. If not, see . -*/ - - -pragma solidity >=0.7.0 <0.9.0; - -contract PlonkVerifier { - - uint32 constant n = 32768; - uint16 constant nPublic = 1; - uint16 constant nLagrange = 1; - - uint256 constant Qmx = 9031014201334786598437474819333373897984837472962630324851335361844058545780; - uint256 constant Qmy = 16607210786086921981367283815049778740600968770620223098147538097138430537595; - uint256 constant Qlx = 6808278280485306759745548891536191162342236099697633650996345740914224220305; - uint256 constant Qly = 3270170195800647956439730797339220040656917583598598133609260645618986123588; - uint256 constant Qrx = 19867659962940379415833721956196885812592831298524381980555731113220022045761; - uint256 constant Qry = 5839482012031765332886537848770371473868238809091147323904600653094947875345; - uint256 constant Qox = 21659278811951783556483125629272843184764885478213749993598444862278045884755; - uint256 constant Qoy = 16660597475205619545281468126006239987539267348200340592793952148487504874309; - uint256 constant Qcx = 5305510349838087338783547875566294471771494030996437605662252026376037082958; - uint256 constant Qcy = 19377334097772342373923876594211562277705091388899497313132675599004144975313; - uint256 constant S1x = 13511374588247167997414482771460319777500130147065290737814654512741747616346; - uint256 constant S1y = 9410442723228155800609023852081630300440285014469359549251506116352343840765; - uint256 constant S2x = 6234343642032529676304475840139856609542183618893282794848722265839404121608; - uint256 constant S2y = 198081256679397470117078185378786682134167977767481936106730933658216400205; - uint256 constant S3x = 15607364487714913306100446210105619358733676078036562302151585058643715232255; - uint256 constant S3y = 16418203895932101971661510317717759015568131982287223931136504811190200970422; - uint256 constant k1 = 2; - uint256 constant k2 = 3; - uint256 constant X2x1 = 7550171141489642323345496683737244277083256424004707715998483409540040587466; - uint256 constant X2x2 = 13674327281456600895607819848682159502956608479735975762218411599033981559968; - uint256 constant X2y1 = 16329427655915944908484974060898761683974646318074639198003187154525254176520; - uint256 constant X2y2 = 19604631653040203911523494213678188005987622194545572529608835183936569820990; - - uint256 constant q = 21888242871839275222246405745257275088548364400416034343698204186575808495617; - uint256 constant qf = 21888242871839275222246405745257275088696311157297823662689037894645226208583; - uint256 constant w1 = 20402931748843538985151001264530049874871572933694634836567070693966133783803; - - uint256 constant G1x = 1; - uint256 constant G1y = 2; - uint256 constant G2x1 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; - uint256 constant G2x2 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; - uint256 constant G2y1 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant G2y2 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; - uint16 constant pA = 32; - uint16 constant pB = 96; - uint16 constant pC = 160; - uint16 constant pZ = 224; - uint16 constant pT1 = 288; - uint16 constant pT2 = 352; - uint16 constant pT3 = 416; - uint16 constant pWxi = 480; - uint16 constant pWxiw = 544; - uint16 constant pEval_a = 608; - uint16 constant pEval_b = 640; - uint16 constant pEval_c = 672; - uint16 constant pEval_s1 = 704; - uint16 constant pEval_s2 = 736; - uint16 constant pEval_zw = 768; - uint16 constant pEval_r = 800; - - uint16 constant pAlpha = 0; - uint16 constant pBeta = 32; - uint16 constant pGamma = 64; - uint16 constant pXi = 96; - uint16 constant pXin = 128; - uint16 constant pBetaXi = 160; - uint16 constant pV1 = 192; - uint16 constant pV2 = 224; - uint16 constant pV3 = 256; - uint16 constant pV4 = 288; - uint16 constant pV5 = 320; - uint16 constant pV6 = 352; - uint16 constant pU = 384; - uint16 constant pPl = 416; - uint16 constant pEval_t = 448; - uint16 constant pA1 = 480; - uint16 constant pB1 = 544; - uint16 constant pZh = 608; - uint16 constant pZhInv = 640; - - uint16 constant pEval_l1 = 672; - - - - uint16 constant lastMem = 704; - - function verifyProof(bytes memory proof, uint[] memory pubSignals) public view returns (bool) { - assembly { - ///////// - // Computes the inverse using the extended euclidean algorithm - ///////// - function inverse(a, q) -> inv { - let t := 0 - let newt := 1 - let r := q - let newr := a - let quotient - let aux - - for { } newr { } { - quotient := sdiv(r, newr) - aux := sub(t, mul(quotient, newt)) - t:= newt - newt:= aux - - aux := sub(r,mul(quotient, newr)) - r := newr - newr := aux - } - - if gt(r, 1) { revert(0,0) } - if slt(t, 0) { t:= add(t, q) } - - inv := t - } - - /////// - // Computes the inverse of an array of values - // See https://vitalik.ca/general/2018/07/21/starks_part_3.html in section where explain fields operations - ////// - function inverseArray(pVals, n) { - - let pAux := mload(0x40) // Point to the next free position - let pIn := pVals - let lastPIn := add(pVals, mul(n, 32)) // Read n elemnts - let acc := mload(pIn) // Read the first element - pIn := add(pIn, 32) // Point to the second element - let inv - - - for { } lt(pIn, lastPIn) { - pAux := add(pAux, 32) - pIn := add(pIn, 32) - } - { - mstore(pAux, acc) - acc := mulmod(acc, mload(pIn), q) - } - acc := inverse(acc, q) - - // At this point pAux pint to the next free position we substract 1 to point to the last used - pAux := sub(pAux, 32) - // pIn points to the n+1 element, we substract to point to n - pIn := sub(pIn, 32) - lastPIn := pVals // We don't process the first element - for { } gt(pIn, lastPIn) { - pAux := sub(pAux, 32) - pIn := sub(pIn, 32) - } - { - inv := mulmod(acc, mload(pAux), q) - acc := mulmod(acc, mload(pIn), q) - mstore(pIn, inv) - } - // pIn points to first element, we just set it. - mstore(pIn, acc) - } - - function checkField(v) { - if iszero(lt(v, q)) { - mstore(0, 0) - return(0,0x20) - } - } - - function checkInput(pProof) { - if iszero(eq(mload(pProof), 800 )) { - mstore(0, 0) - return(0,0x20) - } - checkField(mload(add(pProof, pEval_a))) - checkField(mload(add(pProof, pEval_b))) - checkField(mload(add(pProof, pEval_c))) - checkField(mload(add(pProof, pEval_s1))) - checkField(mload(add(pProof, pEval_s2))) - checkField(mload(add(pProof, pEval_zw))) - checkField(mload(add(pProof, pEval_r))) - - // Points are checked in the point operations precompiled smart contracts - } - - function calculateChallanges(pProof, pMem, pPublic) { - - let a - let b - - - mstore( add(pMem, 704 ), mload( add( pPublic, 32))) - - mstore( add(pMem, 736 ), mload( add( pProof, pA))) - mstore( add(pMem, 768 ), mload( add( pProof, add(pA,32)))) - mstore( add(pMem, 800 ), mload( add( pProof, add(pA,64)))) - mstore( add(pMem, 832 ), mload( add( pProof, add(pA,96)))) - mstore( add(pMem, 864 ), mload( add( pProof, add(pA,128)))) - mstore( add(pMem, 896 ), mload( add( pProof, add(pA,160)))) - - b := mod(keccak256(add(pMem, lastMem), 224), q) - mstore( add(pMem, pBeta), b) - mstore( add(pMem, pGamma), mod(keccak256(add(pMem, pBeta), 32), q)) - mstore( add(pMem, pAlpha), mod(keccak256(add(pProof, pZ), 64), q)) - - a := mod(keccak256(add(pProof, pT1), 192), q) - mstore( add(pMem, pXi), a) - mstore( add(pMem, pBetaXi), mulmod(b, a, q)) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - a:= mulmod(a, a, q) - - mstore( add(pMem, pXin), a) - a:= mod(add(sub(a, 1),q), q) - mstore( add(pMem, pZh), a) - mstore( add(pMem, pZhInv), a) // We will invert later together with lagrange pols - - let v1 := mod(keccak256(add(pProof, pEval_a), 224), q) - mstore( add(pMem, pV1), v1) - a := mulmod(v1, v1, q) - mstore( add(pMem, pV2), a) - a := mulmod(a, v1, q) - mstore( add(pMem, pV3), a) - a := mulmod(a, v1, q) - mstore( add(pMem, pV4), a) - a := mulmod(a, v1, q) - mstore( add(pMem, pV5), a) - a := mulmod(a, v1, q) - mstore( add(pMem, pV6), a) - - mstore( add(pMem, pU), mod(keccak256(add(pProof, pWxi), 128), q)) - } - - function calculateLagrange(pMem) { - - let w := 1 - - mstore( - add(pMem, pEval_l1), - mulmod( - n, - mod( - add( - sub( - mload(add(pMem, pXi)), - w - ), - q - ), - q - ), - q - ) - ) - - - - inverseArray(add(pMem, pZhInv), 2 ) - - let zh := mload(add(pMem, pZh)) - w := 1 - - - mstore( - add(pMem, pEval_l1 ), - mulmod( - mload(add(pMem, pEval_l1 )), - zh, - q - ) - ) - - - - - - } - - function calculatePl(pMem, pPub) { - let pl := 0 - - - pl := mod( - add( - sub( - pl, - mulmod( - mload(add(pMem, pEval_l1)), - mload(add(pPub, 32)), - q - ) - ), - q - ), - q - ) - - - mstore(add(pMem, pPl), pl) - - - } - - function calculateT(pProof, pMem) { - let t - let t1 - let t2 - t := addmod( - mload(add(pProof, pEval_r)), - mload(add(pMem, pPl)), - q - ) - - t1 := mulmod( - mload(add(pProof, pEval_s1)), - mload(add(pMem, pBeta)), - q - ) - - t1 := addmod( - t1, - mload(add(pProof, pEval_a)), - q - ) - - t1 := addmod( - t1, - mload(add(pMem, pGamma)), - q - ) - - t2 := mulmod( - mload(add(pProof, pEval_s2)), - mload(add(pMem, pBeta)), - q - ) - - t2 := addmod( - t2, - mload(add(pProof, pEval_b)), - q - ) - - t2 := addmod( - t2, - mload(add(pMem, pGamma)), - q - ) - - t1 := mulmod(t1, t2, q) - - t2 := addmod( - mload(add(pProof, pEval_c)), - mload(add(pMem, pGamma)), - q - ) - - t1 := mulmod(t1, t2, q) - t1 := mulmod(t1, mload(add(pProof, pEval_zw)), q) - t1 := mulmod(t1, mload(add(pMem, pAlpha)), q) - - t2 := mulmod( - mload(add(pMem, pEval_l1)), - mload(add(pMem, pAlpha)), - q - ) - - t2 := mulmod( - t2, - mload(add(pMem, pAlpha)), - q - ) - - t1 := addmod(t1, t2, q) - - t := mod(sub(add(t, q), t1), q) - t := mulmod(t, mload(add(pMem, pZhInv)), q) - - mstore( add(pMem, pEval_t) , t) - - } - - function g1_set(pR, pP) { - mstore(pR, mload(pP)) - mstore(add(pR, 32), mload(add(pP,32))) - } - - function g1_acc(pR, pP) { - let mIn := mload(0x40) - mstore(mIn, mload(pR)) - mstore(add(mIn,32), mload(add(pR, 32))) - mstore(add(mIn,64), mload(pP)) - mstore(add(mIn,96), mload(add(pP, 32))) - - let success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - } - - function g1_mulAcc(pR, pP, s) { - let success - let mIn := mload(0x40) - mstore(mIn, mload(pP)) - mstore(add(mIn,32), mload(add(pP, 32))) - mstore(add(mIn,64), s) - - success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - - mstore(add(mIn,64), mload(pR)) - mstore(add(mIn,96), mload(add(pR, 32))) - - success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - - } - - function g1_mulAccC(pR, x, y, s) { - let success - let mIn := mload(0x40) - mstore(mIn, x) - mstore(add(mIn,32), y) - mstore(add(mIn,64), s) - - success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - - mstore(add(mIn,64), mload(pR)) - mstore(add(mIn,96), mload(add(pR, 32))) - - success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - } - - function g1_mulSetC(pR, x, y, s) { - let success - let mIn := mload(0x40) - mstore(mIn, x) - mstore(add(mIn,32), y) - mstore(add(mIn,64), s) - - success := staticcall(sub(gas(), 2000), 7, mIn, 96, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0,0x20) - } - } - - - function calculateA1(pProof, pMem) { - let p := add(pMem, pA1) - g1_set(p, add(pProof, pWxi)) - g1_mulAcc(p, add(pProof, pWxiw), mload(add(pMem, pU))) - } - - - function calculateB1(pProof, pMem) { - let s - let s1 - let p := add(pMem, pB1) - - // Calculate D - s := mulmod( mload(add(pProof, pEval_a)), mload(add(pMem, pV1)), q) - g1_mulSetC(p, Qlx, Qly, s) - - s := mulmod( s, mload(add(pProof, pEval_b)), q) - g1_mulAccC(p, Qmx, Qmy, s) - - s := mulmod( mload(add(pProof, pEval_b)), mload(add(pMem, pV1)), q) - g1_mulAccC(p, Qrx, Qry, s) - - s := mulmod( mload(add(pProof, pEval_c)), mload(add(pMem, pV1)), q) - g1_mulAccC(p, Qox, Qoy, s) - - s :=mload(add(pMem, pV1)) - g1_mulAccC(p, Qcx, Qcy, s) - - s := addmod(mload(add(pProof, pEval_a)), mload(add(pMem, pBetaXi)), q) - s := addmod(s, mload(add(pMem, pGamma)), q) - s1 := mulmod(k1, mload(add(pMem, pBetaXi)), q) - s1 := addmod(s1, mload(add(pProof, pEval_b)), q) - s1 := addmod(s1, mload(add(pMem, pGamma)), q) - s := mulmod(s, s1, q) - s1 := mulmod(k2, mload(add(pMem, pBetaXi)), q) - s1 := addmod(s1, mload(add(pProof, pEval_c)), q) - s1 := addmod(s1, mload(add(pMem, pGamma)), q) - s := mulmod(s, s1, q) - s := mulmod(s, mload(add(pMem, pAlpha)), q) - s := mulmod(s, mload(add(pMem, pV1)), q) - s1 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q) - s1 := mulmod(s1, mload(add(pMem, pAlpha)), q) - s1 := mulmod(s1, mload(add(pMem, pV1)), q) - s := addmod(s, s1, q) - s := addmod(s, mload(add(pMem, pU)), q) - g1_mulAcc(p, add(pProof, pZ), s) - - s := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s1)), q) - s := addmod(s, mload(add(pProof, pEval_a)), q) - s := addmod(s, mload(add(pMem, pGamma)), q) - s1 := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s2)), q) - s1 := addmod(s1, mload(add(pProof, pEval_b)), q) - s1 := addmod(s1, mload(add(pMem, pGamma)), q) - s := mulmod(s, s1, q) - s := mulmod(s, mload(add(pMem, pAlpha)), q) - s := mulmod(s, mload(add(pMem, pV1)), q) - s := mulmod(s, mload(add(pMem, pBeta)), q) - s := mulmod(s, mload(add(pProof, pEval_zw)), q) - s := mod(sub(q, s), q) - g1_mulAccC(p, S3x, S3y, s) - - - // calculate F - g1_acc(p , add(pProof, pT1)) - - s := mload(add(pMem, pXin)) - g1_mulAcc(p, add(pProof, pT2), s) - - s := mulmod(s, s, q) - g1_mulAcc(p, add(pProof, pT3), s) - - g1_mulAcc(p, add(pProof, pA), mload(add(pMem, pV2))) - g1_mulAcc(p, add(pProof, pB), mload(add(pMem, pV3))) - g1_mulAcc(p, add(pProof, pC), mload(add(pMem, pV4))) - g1_mulAccC(p, S1x, S1y, mload(add(pMem, pV5))) - g1_mulAccC(p, S2x, S2y, mload(add(pMem, pV6))) - - // calculate E - s := mload(add(pMem, pEval_t)) - s := addmod(s, mulmod(mload(add(pProof, pEval_r)), mload(add(pMem, pV1)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV2)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV3)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV4)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pV5)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pV6)), q), q) - s := addmod(s, mulmod(mload(add(pProof, pEval_zw)), mload(add(pMem, pU)), q), q) - s := mod(sub(q, s), q) - g1_mulAccC(p, G1x, G1y, s) - - - // Last part of B - s := mload(add(pMem, pXi)) - g1_mulAcc(p, add(pProof, pWxi), s) - - s := mulmod(mload(add(pMem, pU)), mload(add(pMem, pXi)), q) - s := mulmod(s, w1, q) - g1_mulAcc(p, add(pProof, pWxiw), s) - - } - - function checkPairing(pMem) -> isOk { - let mIn := mload(0x40) - mstore(mIn, mload(add(pMem, pA1))) - mstore(add(mIn,32), mload(add(add(pMem, pA1), 32))) - mstore(add(mIn,64), X2x2) - mstore(add(mIn,96), X2x1) - mstore(add(mIn,128), X2y2) - mstore(add(mIn,160), X2y1) - mstore(add(mIn,192), mload(add(pMem, pB1))) - let s := mload(add(add(pMem, pB1), 32)) - s := mod(sub(qf, s), qf) - mstore(add(mIn,224), s) - mstore(add(mIn,256), G2x2) - mstore(add(mIn,288), G2x1) - mstore(add(mIn,320), G2y2) - mstore(add(mIn,352), G2y1) - - let success := staticcall(sub(gas(), 2000), 8, mIn, 384, mIn, 0x20) - - isOk := and(success, mload(mIn)) - } - - let pMem := mload(0x40) - mstore(0x40, add(pMem, lastMem)) - - checkInput(proof) - calculateChallanges(proof, pMem, pubSignals) - calculateLagrange(pMem) - calculatePl(pMem, pubSignals) - calculateT(proof, pMem) - calculateA1(proof, pMem) - calculateB1(proof, pMem) - let isValid := checkPairing(pMem) - - mstore(0x40, sub(pMem, lastMem)) - mstore(0, isValid) - return(0,0x20) - } - - } -} From ae909ea21cc057dae8a9bf8a716781661f8dd809 Mon Sep 17 00:00:00 2001 From: biscuitdey Date: Mon, 22 Jul 2024 17:50:24 +0530 Subject: [PATCH 4/6] Add universal PlonkVerifier contract that accepts vk as param --- .../bri-3/ccsm/contracts/PlonkVerifier.sol | 611 ++++++++++++++++++ 1 file changed, 611 insertions(+) create mode 100644 examples/bri-3/ccsm/contracts/PlonkVerifier.sol diff --git a/examples/bri-3/ccsm/contracts/PlonkVerifier.sol b/examples/bri-3/ccsm/contracts/PlonkVerifier.sol new file mode 100644 index 000000000..fbe2a68b1 --- /dev/null +++ b/examples/bri-3/ccsm/contracts/PlonkVerifier.sol @@ -0,0 +1,611 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + +pragma solidity >=0.7.0 <0.9.0; + +contract PlonkVerifier { + uint32 constant n = 32768; + + uint16 constant nLagrange = 1; + + uint256 constant q = + 21888242871839275222246405745257275088548364400416034343698204186575808495617; + uint256 constant qf = + 21888242871839275222246405745257275088696311157297823662689037894645226208583; + + uint256 constant G1x = 1; + uint256 constant G1y = 2; + uint256 constant G2x1 = + 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant G2x2 = + 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant G2y1 = + 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant G2y2 = + 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint16 constant pA = 32; + uint16 constant pB = 96; + uint16 constant pC = 160; + uint16 constant pZ = 224; + uint16 constant pT1 = 288; + uint16 constant pT2 = 352; + uint16 constant pT3 = 416; + uint16 constant pWxi = 480; + uint16 constant pWxiw = 544; + uint16 constant pEval_a = 608; + uint16 constant pEval_b = 640; + uint16 constant pEval_c = 672; + uint16 constant pEval_s1 = 704; + uint16 constant pEval_s2 = 736; + uint16 constant pEval_zw = 768; + uint16 constant pEval_r = 800; + + uint16 constant pAlpha = 0; + uint16 constant pBeta = 32; + uint16 constant pGamma = 64; + uint16 constant pXi = 96; + uint16 constant pXin = 128; + uint16 constant pBetaXi = 160; + uint16 constant pV1 = 192; + uint16 constant pV2 = 224; + uint16 constant pV3 = 256; + uint16 constant pV4 = 288; + uint16 constant pV5 = 320; + uint16 constant pV6 = 352; + uint16 constant pU = 384; + uint16 constant pPl = 416; + uint16 constant pEval_t = 448; + uint16 constant pA1 = 480; + uint16 constant pB1 = 544; + uint16 constant pZh = 608; + uint16 constant pZhInv = 640; + + uint16 constant pEval_l1 = 672; + + uint16 constant lastMem = 704; + + function verifyProof( + bytes memory proof, + uint[] memory pubSignals, + uint[] memory vk + ) public view returns (bool) { + ////////// + /// Sets verification key values + ///////// + uint256 nPublic = vk[0]; + uint256 k1 = vk[1]; + uint256 k2 = vk[2]; + uint256 Qmx = vk[3]; + uint256 Qmy = vk[4]; + uint256 Qlx = vk[5]; + uint256 Qly = vk[6]; + uint256 Qrx = vk[7]; + uint256 Qry = vk[8]; + uint256 Qox = vk[9]; + uint256 Qoy = vk[10]; + uint256 Qcx = vk[11]; + uint256 Qcy = vk[12]; + uint256 S1x = vk[13]; + uint256 S1y = vk[14]; + uint256 S2x = vk[15]; + uint256 S2y = vk[16]; + uint256 S3x = vk[17]; + uint256 S3y = vk[18]; + uint256 X2x1 = vk[19]; + uint256 X2x2 = vk[20]; + uint256 X2y1 = vk[21]; + uint256 X2y2 = vk[22]; + uint256 w1 = vk[23]; + + assembly { + ///////// + // Computes the inverse using the extended euclidean algorithm + ///////// + function inverse(a, q) -> inv { + let t := 0 + let newt := 1 + let r := q + let newr := a + let quotient + let aux + + for { + + } newr { + + } { + quotient := sdiv(r, newr) + aux := sub(t, mul(quotient, newt)) + t := newt + newt := aux + + aux := sub(r, mul(quotient, newr)) + r := newr + newr := aux + } + + if gt(r, 1) { + revert(0, 0) + } + if slt(t, 0) { + t := add(t, q) + } + + inv := t + } + + /////// + // Computes the inverse of an array of values + // See https://vitalik.ca/general/2018/07/21/starks_part_3.html in section where explain fields operations + ////// + function inverseArray(pVals, n) { + let pAux := mload(0x40) // Point to the next free position + let pIn := pVals + let lastPIn := add(pVals, mul(n, 32)) // Read n elemnts + let acc := mload(pIn) // Read the first element + pIn := add(pIn, 32) // Point to the second element + let inv + + for { + + } lt(pIn, lastPIn) { + pAux := add(pAux, 32) + pIn := add(pIn, 32) + } { + mstore(pAux, acc) + acc := mulmod(acc, mload(pIn), q) + } + acc := inverse(acc, q) + + // At this point pAux pint to the next free position we substract 1 to point to the last used + pAux := sub(pAux, 32) + // pIn points to the n+1 element, we substract to point to n + pIn := sub(pIn, 32) + lastPIn := pVals // We don't process the first element + for { + + } gt(pIn, lastPIn) { + pAux := sub(pAux, 32) + pIn := sub(pIn, 32) + } { + inv := mulmod(acc, mload(pAux), q) + acc := mulmod(acc, mload(pIn), q) + mstore(pIn, inv) + } + // pIn points to first element, we just set it. + mstore(pIn, acc) + } + + function checkField(v) { + if iszero(lt(v, q)) { + mstore(0, 0) + return(0, 0x20) + } + } + + function checkInput(pProof) { + if iszero(eq(mload(pProof), 800)) { + mstore(0, 0) + return(0, 0x20) + } + checkField(mload(add(pProof, pEval_a))) + checkField(mload(add(pProof, pEval_b))) + checkField(mload(add(pProof, pEval_c))) + checkField(mload(add(pProof, pEval_s1))) + checkField(mload(add(pProof, pEval_s2))) + checkField(mload(add(pProof, pEval_zw))) + checkField(mload(add(pProof, pEval_r))) + + // Points are checked in the point operations precompiled smart contracts + } + + function calculateChallanges(pProof, pMem, pPublic) { + let a + let b + + mstore(add(pMem, 704), mload(add(pPublic, 32))) + + mstore(add(pMem, 736), mload(add(pProof, pA))) + mstore(add(pMem, 768), mload(add(pProof, add(pA, 32)))) + mstore(add(pMem, 800), mload(add(pProof, add(pA, 64)))) + mstore(add(pMem, 832), mload(add(pProof, add(pA, 96)))) + mstore(add(pMem, 864), mload(add(pProof, add(pA, 128)))) + mstore(add(pMem, 896), mload(add(pProof, add(pA, 160)))) + + b := mod(keccak256(add(pMem, lastMem), 224), q) + mstore(add(pMem, pBeta), b) + mstore(add(pMem, pGamma), mod(keccak256(add(pMem, pBeta), 32), q)) + mstore(add(pMem, pAlpha), mod(keccak256(add(pProof, pZ), 64), q)) + + a := mod(keccak256(add(pProof, pT1), 192), q) + mstore(add(pMem, pXi), a) + mstore(add(pMem, pBetaXi), mulmod(b, a, q)) + + a := mulmod(a, a, q) + + a := mulmod(a, a, q) + + a := mulmod(a, a, q) + + a := mulmod(a, a, q) + + a := mulmod(a, a, q) + + a := mulmod(a, a, q) + + a := mulmod(a, a, q) + + a := mulmod(a, a, q) + + a := mulmod(a, a, q) + + a := mulmod(a, a, q) + + a := mulmod(a, a, q) + + a := mulmod(a, a, q) + + a := mulmod(a, a, q) + + a := mulmod(a, a, q) + + a := mulmod(a, a, q) + + mstore(add(pMem, pXin), a) + a := mod(add(sub(a, 1), q), q) + mstore(add(pMem, pZh), a) + mstore(add(pMem, pZhInv), a) // We will invert later together with lagrange pols + + let v1 := mod(keccak256(add(pProof, pEval_a), 224), q) + mstore(add(pMem, pV1), v1) + a := mulmod(v1, v1, q) + mstore(add(pMem, pV2), a) + a := mulmod(a, v1, q) + mstore(add(pMem, pV3), a) + a := mulmod(a, v1, q) + mstore(add(pMem, pV4), a) + a := mulmod(a, v1, q) + mstore(add(pMem, pV5), a) + a := mulmod(a, v1, q) + mstore(add(pMem, pV6), a) + + mstore(add(pMem, pU), mod(keccak256(add(pProof, pWxi), 128), q)) + } + + function calculateLagrange(pMem) { + let w := 1 + + mstore( + add(pMem, pEval_l1), + mulmod(n, mod(add(sub(mload(add(pMem, pXi)), w), q), q), q) + ) + + inverseArray(add(pMem, pZhInv), 2) + + let zh := mload(add(pMem, pZh)) + w := 1 + + mstore(add(pMem, pEval_l1), mulmod(mload(add(pMem, pEval_l1)), zh, q)) + } + + function calculatePl(pMem, pPub) { + let pl := 0 + + pl := mod( + add( + sub( + pl, + mulmod(mload(add(pMem, pEval_l1)), mload(add(pPub, 32)), q) + ), + q + ), + q + ) + + mstore(add(pMem, pPl), pl) + } + + function calculateT(pProof, pMem) { + let t + let t1 + let t2 + t := addmod(mload(add(pProof, pEval_r)), mload(add(pMem, pPl)), q) + + t1 := mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pBeta)), q) + + t1 := addmod(t1, mload(add(pProof, pEval_a)), q) + + t1 := addmod(t1, mload(add(pMem, pGamma)), q) + + t2 := mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pBeta)), q) + + t2 := addmod(t2, mload(add(pProof, pEval_b)), q) + + t2 := addmod(t2, mload(add(pMem, pGamma)), q) + + t1 := mulmod(t1, t2, q) + + t2 := addmod(mload(add(pProof, pEval_c)), mload(add(pMem, pGamma)), q) + + t1 := mulmod(t1, t2, q) + t1 := mulmod(t1, mload(add(pProof, pEval_zw)), q) + t1 := mulmod(t1, mload(add(pMem, pAlpha)), q) + + t2 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q) + + t2 := mulmod(t2, mload(add(pMem, pAlpha)), q) + + t1 := addmod(t1, t2, q) + + t := mod(sub(add(t, q), t1), q) + t := mulmod(t, mload(add(pMem, pZhInv)), q) + + mstore(add(pMem, pEval_t), t) + } + + function g1_set(pR, pP) { + mstore(pR, mload(pP)) + mstore(add(pR, 32), mload(add(pP, 32))) + } + + function g1_acc(pR, pP) { + let mIn := mload(0x40) + mstore(mIn, mload(pR)) + mstore(add(mIn, 32), mload(add(pR, 32))) + mstore(add(mIn, 64), mload(pP)) + mstore(add(mIn, 96), mload(add(pP, 32))) + + let success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function g1_mulAcc(pR, pP, s) { + let success + let mIn := mload(0x40) + mstore(mIn, mload(pP)) + mstore(add(mIn, 32), mload(add(pP, 32))) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + + mstore(add(mIn, 64), mload(pR)) + mstore(add(mIn, 96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn, 32), y) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + + mstore(add(mIn, 64), mload(pR)) + mstore(add(mIn, 96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function g1_mulSetC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn, 32), y) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function calculateA1(pProof, pMem) { + let p := add(pMem, pA1) + g1_set(p, add(pProof, pWxi)) + g1_mulAcc(p, add(pProof, pWxiw), mload(add(pMem, pU))) + } + + function calculateB1(pProof, pMem) { + let s + let s1 + let p := add(pMem, pB1) + + // Calculate D + s := mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV1)), q) + g1_mulSetC(p, Qlx, Qly, s) + + s := mulmod(s, mload(add(pProof, pEval_b)), q) + g1_mulAccC(p, Qmx, Qmy, s) + + s := mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV1)), q) + g1_mulAccC(p, Qrx, Qry, s) + + s := mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV1)), q) + g1_mulAccC(p, Qox, Qoy, s) + + s := mload(add(pMem, pV1)) + g1_mulAccC(p, Qcx, Qcy, s) + + s := addmod(mload(add(pProof, pEval_a)), mload(add(pMem, pBetaXi)), q) + s := addmod(s, mload(add(pMem, pGamma)), q) + s1 := mulmod(k1, mload(add(pMem, pBetaXi)), q) + s1 := addmod(s1, mload(add(pProof, pEval_b)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s1 := mulmod(k2, mload(add(pMem, pBetaXi)), q) + s1 := addmod(s1, mload(add(pProof, pEval_c)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s := mulmod(s, mload(add(pMem, pAlpha)), q) + s := mulmod(s, mload(add(pMem, pV1)), q) + s1 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q) + s1 := mulmod(s1, mload(add(pMem, pAlpha)), q) + s1 := mulmod(s1, mload(add(pMem, pV1)), q) + s := addmod(s, s1, q) + s := addmod(s, mload(add(pMem, pU)), q) + g1_mulAcc(p, add(pProof, pZ), s) + + s := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s1)), q) + s := addmod(s, mload(add(pProof, pEval_a)), q) + s := addmod(s, mload(add(pMem, pGamma)), q) + s1 := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s2)), q) + s1 := addmod(s1, mload(add(pProof, pEval_b)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s := mulmod(s, mload(add(pMem, pAlpha)), q) + s := mulmod(s, mload(add(pMem, pV1)), q) + s := mulmod(s, mload(add(pMem, pBeta)), q) + s := mulmod(s, mload(add(pProof, pEval_zw)), q) + s := mod(sub(q, s), q) + g1_mulAccC(p, S3x, S3y, s) + + // calculate F + g1_acc(p, add(pProof, pT1)) + + s := mload(add(pMem, pXin)) + g1_mulAcc(p, add(pProof, pT2), s) + + s := mulmod(s, s, q) + g1_mulAcc(p, add(pProof, pT3), s) + + g1_mulAcc(p, add(pProof, pA), mload(add(pMem, pV2))) + g1_mulAcc(p, add(pProof, pB), mload(add(pMem, pV3))) + g1_mulAcc(p, add(pProof, pC), mload(add(pMem, pV4))) + g1_mulAccC(p, S1x, S1y, mload(add(pMem, pV5))) + g1_mulAccC(p, S2x, S2y, mload(add(pMem, pV6))) + + // calculate E + s := mload(add(pMem, pEval_t)) + s := addmod( + s, + mulmod(mload(add(pProof, pEval_r)), mload(add(pMem, pV1)), q), + q + ) + s := addmod( + s, + mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV2)), q), + q + ) + s := addmod( + s, + mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV3)), q), + q + ) + s := addmod( + s, + mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV4)), q), + q + ) + s := addmod( + s, + mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pV5)), q), + q + ) + s := addmod( + s, + mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pV6)), q), + q + ) + s := addmod( + s, + mulmod(mload(add(pProof, pEval_zw)), mload(add(pMem, pU)), q), + q + ) + s := mod(sub(q, s), q) + g1_mulAccC(p, G1x, G1y, s) + + // Last part of B + s := mload(add(pMem, pXi)) + g1_mulAcc(p, add(pProof, pWxi), s) + + s := mulmod(mload(add(pMem, pU)), mload(add(pMem, pXi)), q) + s := mulmod(s, w1, q) + g1_mulAcc(p, add(pProof, pWxiw), s) + } + + function checkPairing(pMem) -> isOk { + let mIn := mload(0x40) + mstore(mIn, mload(add(pMem, pA1))) + mstore(add(mIn, 32), mload(add(add(pMem, pA1), 32))) + mstore(add(mIn, 64), X2x2) + mstore(add(mIn, 96), X2x1) + mstore(add(mIn, 128), X2y2) + mstore(add(mIn, 160), X2y1) + mstore(add(mIn, 192), mload(add(pMem, pB1))) + let s := mload(add(add(pMem, pB1), 32)) + s := mod(sub(qf, s), qf) + mstore(add(mIn, 224), s) + mstore(add(mIn, 256), G2x2) + mstore(add(mIn, 288), G2x1) + mstore(add(mIn, 320), G2y2) + mstore(add(mIn, 352), G2y1) + + let success := staticcall(sub(gas(), 2000), 8, mIn, 384, mIn, 0x20) + + isOk := and(success, mload(mIn)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, lastMem)) + + checkInput(proof) + calculateChallanges(proof, pMem, pubSignals) + calculateLagrange(pMem) + calculatePl(pMem, pubSignals) + calculateT(proof, pMem) + calculateA1(proof, pMem) + calculateB1(proof, pMem) + let isValid := checkPairing(pMem) + + mstore(0x40, sub(pMem, lastMem)) + mstore(0, isValid) + return(0, 0x20) + } + } +} From a8192f016430b382038b6a66bce3a16f568484d4 Mon Sep 17 00:00:00 2001 From: biscuitdey Date: Mon, 22 Jul 2024 17:53:12 +0530 Subject: [PATCH 5/6] Comment out shell command for creating plonk verifier contract --- examples/bri-3/zeroKnowledgeArtifacts/scripts/circuits/plonk.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/bri-3/zeroKnowledgeArtifacts/scripts/circuits/plonk.sh b/examples/bri-3/zeroKnowledgeArtifacts/scripts/circuits/plonk.sh index 1d16e180d..ecc5f19e3 100755 --- a/examples/bri-3/zeroKnowledgeArtifacts/scripts/circuits/plonk.sh +++ b/examples/bri-3/zeroKnowledgeArtifacts/scripts/circuits/plonk.sh @@ -19,6 +19,6 @@ snarkjs plonk setup zeroKnowledgeArtifacts/circuits/$1/$1.r1cs zeroKnowledgeArti snarkjs zkey export verificationkey zeroKnowledgeArtifacts/circuits/$1/$1_final.zkey zeroKnowledgeArtifacts/circuits/$1/$1_verification_key.json # Export circuit verifier with updated name and solidity version -snarkjs zkey export solidityverifier zeroKnowledgeArtifacts/circuits/$1/$1_final.zkey ccsm/contracts/$1Verifier.sol +## snarkjs zkey export solidityverifier zeroKnowledgeArtifacts/circuits/$1/$1_final.zkey ccsm/contracts/$1Verifier.sol echo "------------------Phase 2 complete-------------------------" \ No newline at end of file From 83b6b8220547c49ca480e380d1c9d921475b0d8f Mon Sep 17 00:00:00 2001 From: biscuitdey Date: Mon, 22 Jul 2024 22:15:44 +0530 Subject: [PATCH 6/6] ccsmArtifacts for verifier contracts --- .../bri-3/ccsm/contracts/PlonkVerifier.sol | 611 - .../ccsm/contracts/workstep1Verifier.sol | 652 + .../ccsm/contracts/workstep2Verifier.sol | 652 + .../ccsm/contracts/workstep3Verifier.sol | 652 + examples/bri-3/ccsm/hardhat.config.ts | 18 +- .../bri-3/ccsm/test/CcsmBpiStateAnchor.ts | 232 +- .../AccessControl.sol/AccessControl.dbg.json | 4 + .../AccessControl.sol/AccessControl.json | 236 + .../IAccessControl.dbg.json | 4 + .../IAccessControl.sol/IAccessControl.json | 204 + .../utils/Context.sol/Context.dbg.json | 4 + .../contracts/utils/Context.sol/Context.json | 10 + .../introspection/ERC165.sol/ERC165.dbg.json | 4 + .../introspection/ERC165.sol/ERC165.json | 30 + .../IERC165.sol/IERC165.dbg.json | 4 + .../introspection/IERC165.sol/IERC165.json | 30 + .../ccsmArtifacts/CcsmBpiStateAnchor.dbg.json | 4 - .../a7326b529c767f8dc53ea81689820584.json | 1 + .../CcsmBpiStateAnchor.dbg.json | 4 + .../CcsmBpiStateAnchor.json | 6 +- .../PlonkVerifier.dbg.json | 4 + .../workstep1Verifier.sol/PlonkVerifier.json | 35 + .../PlonkVerifier.dbg.json | 4 + .../workstep2Verifier.sol/PlonkVerifier.json | 35 + .../PlonkVerifier.dbg.json | 4 + .../workstep3Verifier.sol/PlonkVerifier.json | 35 + examples/bri-3/package-lock.json | 10188 +++++++++++----- examples/bri-3/package.json | 2 + .../src/bri/ccsm/services/ethereum.service.ts | 2 +- .../scripts/circuits/plonk.sh | 2 +- 30 files changed, 9765 insertions(+), 3908 deletions(-) delete mode 100644 examples/bri-3/ccsm/contracts/PlonkVerifier.sol create mode 100644 examples/bri-3/ccsm/contracts/workstep1Verifier.sol create mode 100644 examples/bri-3/ccsm/contracts/workstep2Verifier.sol create mode 100644 examples/bri-3/ccsm/contracts/workstep3Verifier.sol create mode 100644 examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json create mode 100644 examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json create mode 100644 examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json create mode 100644 examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json create mode 100644 examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json create mode 100644 examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/Context.sol/Context.json create mode 100644 examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json create mode 100644 examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json create mode 100644 examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json create mode 100644 examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json delete mode 100644 examples/bri-3/ccsmArtifacts/CcsmBpiStateAnchor.dbg.json create mode 100644 examples/bri-3/ccsmArtifacts/build-info/a7326b529c767f8dc53ea81689820584.json create mode 100644 examples/bri-3/ccsmArtifacts/contracts/CcsmBpiStateAnchor.sol/CcsmBpiStateAnchor.dbg.json rename examples/bri-3/ccsmArtifacts/{ => contracts/CcsmBpiStateAnchor.sol}/CcsmBpiStateAnchor.json (57%) create mode 100644 examples/bri-3/ccsmArtifacts/contracts/workstep1Verifier.sol/PlonkVerifier.dbg.json create mode 100644 examples/bri-3/ccsmArtifacts/contracts/workstep1Verifier.sol/PlonkVerifier.json create mode 100644 examples/bri-3/ccsmArtifacts/contracts/workstep2Verifier.sol/PlonkVerifier.dbg.json create mode 100644 examples/bri-3/ccsmArtifacts/contracts/workstep2Verifier.sol/PlonkVerifier.json create mode 100644 examples/bri-3/ccsmArtifacts/contracts/workstep3Verifier.sol/PlonkVerifier.dbg.json create mode 100644 examples/bri-3/ccsmArtifacts/contracts/workstep3Verifier.sol/PlonkVerifier.json diff --git a/examples/bri-3/ccsm/contracts/PlonkVerifier.sol b/examples/bri-3/ccsm/contracts/PlonkVerifier.sol deleted file mode 100644 index fbe2a68b1..000000000 --- a/examples/bri-3/ccsm/contracts/PlonkVerifier.sol +++ /dev/null @@ -1,611 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 -/* - Copyright 2021 0KIMS association. - - This file is generated with [snarkJS](https://github.com/iden3/snarkjs). - - snarkJS is a free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - snarkJS is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. - - You should have received a copy of the GNU General Public License - along with snarkJS. If not, see . -*/ - -pragma solidity >=0.7.0 <0.9.0; - -contract PlonkVerifier { - uint32 constant n = 32768; - - uint16 constant nLagrange = 1; - - uint256 constant q = - 21888242871839275222246405745257275088548364400416034343698204186575808495617; - uint256 constant qf = - 21888242871839275222246405745257275088696311157297823662689037894645226208583; - - uint256 constant G1x = 1; - uint256 constant G1y = 2; - uint256 constant G2x1 = - 10857046999023057135944570762232829481370756359578518086990519993285655852781; - uint256 constant G2x2 = - 11559732032986387107991004021392285783925812861821192530917403151452391805634; - uint256 constant G2y1 = - 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant G2y2 = - 4082367875863433681332203403145435568316851327593401208105741076214120093531; - uint16 constant pA = 32; - uint16 constant pB = 96; - uint16 constant pC = 160; - uint16 constant pZ = 224; - uint16 constant pT1 = 288; - uint16 constant pT2 = 352; - uint16 constant pT3 = 416; - uint16 constant pWxi = 480; - uint16 constant pWxiw = 544; - uint16 constant pEval_a = 608; - uint16 constant pEval_b = 640; - uint16 constant pEval_c = 672; - uint16 constant pEval_s1 = 704; - uint16 constant pEval_s2 = 736; - uint16 constant pEval_zw = 768; - uint16 constant pEval_r = 800; - - uint16 constant pAlpha = 0; - uint16 constant pBeta = 32; - uint16 constant pGamma = 64; - uint16 constant pXi = 96; - uint16 constant pXin = 128; - uint16 constant pBetaXi = 160; - uint16 constant pV1 = 192; - uint16 constant pV2 = 224; - uint16 constant pV3 = 256; - uint16 constant pV4 = 288; - uint16 constant pV5 = 320; - uint16 constant pV6 = 352; - uint16 constant pU = 384; - uint16 constant pPl = 416; - uint16 constant pEval_t = 448; - uint16 constant pA1 = 480; - uint16 constant pB1 = 544; - uint16 constant pZh = 608; - uint16 constant pZhInv = 640; - - uint16 constant pEval_l1 = 672; - - uint16 constant lastMem = 704; - - function verifyProof( - bytes memory proof, - uint[] memory pubSignals, - uint[] memory vk - ) public view returns (bool) { - ////////// - /// Sets verification key values - ///////// - uint256 nPublic = vk[0]; - uint256 k1 = vk[1]; - uint256 k2 = vk[2]; - uint256 Qmx = vk[3]; - uint256 Qmy = vk[4]; - uint256 Qlx = vk[5]; - uint256 Qly = vk[6]; - uint256 Qrx = vk[7]; - uint256 Qry = vk[8]; - uint256 Qox = vk[9]; - uint256 Qoy = vk[10]; - uint256 Qcx = vk[11]; - uint256 Qcy = vk[12]; - uint256 S1x = vk[13]; - uint256 S1y = vk[14]; - uint256 S2x = vk[15]; - uint256 S2y = vk[16]; - uint256 S3x = vk[17]; - uint256 S3y = vk[18]; - uint256 X2x1 = vk[19]; - uint256 X2x2 = vk[20]; - uint256 X2y1 = vk[21]; - uint256 X2y2 = vk[22]; - uint256 w1 = vk[23]; - - assembly { - ///////// - // Computes the inverse using the extended euclidean algorithm - ///////// - function inverse(a, q) -> inv { - let t := 0 - let newt := 1 - let r := q - let newr := a - let quotient - let aux - - for { - - } newr { - - } { - quotient := sdiv(r, newr) - aux := sub(t, mul(quotient, newt)) - t := newt - newt := aux - - aux := sub(r, mul(quotient, newr)) - r := newr - newr := aux - } - - if gt(r, 1) { - revert(0, 0) - } - if slt(t, 0) { - t := add(t, q) - } - - inv := t - } - - /////// - // Computes the inverse of an array of values - // See https://vitalik.ca/general/2018/07/21/starks_part_3.html in section where explain fields operations - ////// - function inverseArray(pVals, n) { - let pAux := mload(0x40) // Point to the next free position - let pIn := pVals - let lastPIn := add(pVals, mul(n, 32)) // Read n elemnts - let acc := mload(pIn) // Read the first element - pIn := add(pIn, 32) // Point to the second element - let inv - - for { - - } lt(pIn, lastPIn) { - pAux := add(pAux, 32) - pIn := add(pIn, 32) - } { - mstore(pAux, acc) - acc := mulmod(acc, mload(pIn), q) - } - acc := inverse(acc, q) - - // At this point pAux pint to the next free position we substract 1 to point to the last used - pAux := sub(pAux, 32) - // pIn points to the n+1 element, we substract to point to n - pIn := sub(pIn, 32) - lastPIn := pVals // We don't process the first element - for { - - } gt(pIn, lastPIn) { - pAux := sub(pAux, 32) - pIn := sub(pIn, 32) - } { - inv := mulmod(acc, mload(pAux), q) - acc := mulmod(acc, mload(pIn), q) - mstore(pIn, inv) - } - // pIn points to first element, we just set it. - mstore(pIn, acc) - } - - function checkField(v) { - if iszero(lt(v, q)) { - mstore(0, 0) - return(0, 0x20) - } - } - - function checkInput(pProof) { - if iszero(eq(mload(pProof), 800)) { - mstore(0, 0) - return(0, 0x20) - } - checkField(mload(add(pProof, pEval_a))) - checkField(mload(add(pProof, pEval_b))) - checkField(mload(add(pProof, pEval_c))) - checkField(mload(add(pProof, pEval_s1))) - checkField(mload(add(pProof, pEval_s2))) - checkField(mload(add(pProof, pEval_zw))) - checkField(mload(add(pProof, pEval_r))) - - // Points are checked in the point operations precompiled smart contracts - } - - function calculateChallanges(pProof, pMem, pPublic) { - let a - let b - - mstore(add(pMem, 704), mload(add(pPublic, 32))) - - mstore(add(pMem, 736), mload(add(pProof, pA))) - mstore(add(pMem, 768), mload(add(pProof, add(pA, 32)))) - mstore(add(pMem, 800), mload(add(pProof, add(pA, 64)))) - mstore(add(pMem, 832), mload(add(pProof, add(pA, 96)))) - mstore(add(pMem, 864), mload(add(pProof, add(pA, 128)))) - mstore(add(pMem, 896), mload(add(pProof, add(pA, 160)))) - - b := mod(keccak256(add(pMem, lastMem), 224), q) - mstore(add(pMem, pBeta), b) - mstore(add(pMem, pGamma), mod(keccak256(add(pMem, pBeta), 32), q)) - mstore(add(pMem, pAlpha), mod(keccak256(add(pProof, pZ), 64), q)) - - a := mod(keccak256(add(pProof, pT1), 192), q) - mstore(add(pMem, pXi), a) - mstore(add(pMem, pBetaXi), mulmod(b, a, q)) - - a := mulmod(a, a, q) - - a := mulmod(a, a, q) - - a := mulmod(a, a, q) - - a := mulmod(a, a, q) - - a := mulmod(a, a, q) - - a := mulmod(a, a, q) - - a := mulmod(a, a, q) - - a := mulmod(a, a, q) - - a := mulmod(a, a, q) - - a := mulmod(a, a, q) - - a := mulmod(a, a, q) - - a := mulmod(a, a, q) - - a := mulmod(a, a, q) - - a := mulmod(a, a, q) - - a := mulmod(a, a, q) - - mstore(add(pMem, pXin), a) - a := mod(add(sub(a, 1), q), q) - mstore(add(pMem, pZh), a) - mstore(add(pMem, pZhInv), a) // We will invert later together with lagrange pols - - let v1 := mod(keccak256(add(pProof, pEval_a), 224), q) - mstore(add(pMem, pV1), v1) - a := mulmod(v1, v1, q) - mstore(add(pMem, pV2), a) - a := mulmod(a, v1, q) - mstore(add(pMem, pV3), a) - a := mulmod(a, v1, q) - mstore(add(pMem, pV4), a) - a := mulmod(a, v1, q) - mstore(add(pMem, pV5), a) - a := mulmod(a, v1, q) - mstore(add(pMem, pV6), a) - - mstore(add(pMem, pU), mod(keccak256(add(pProof, pWxi), 128), q)) - } - - function calculateLagrange(pMem) { - let w := 1 - - mstore( - add(pMem, pEval_l1), - mulmod(n, mod(add(sub(mload(add(pMem, pXi)), w), q), q), q) - ) - - inverseArray(add(pMem, pZhInv), 2) - - let zh := mload(add(pMem, pZh)) - w := 1 - - mstore(add(pMem, pEval_l1), mulmod(mload(add(pMem, pEval_l1)), zh, q)) - } - - function calculatePl(pMem, pPub) { - let pl := 0 - - pl := mod( - add( - sub( - pl, - mulmod(mload(add(pMem, pEval_l1)), mload(add(pPub, 32)), q) - ), - q - ), - q - ) - - mstore(add(pMem, pPl), pl) - } - - function calculateT(pProof, pMem) { - let t - let t1 - let t2 - t := addmod(mload(add(pProof, pEval_r)), mload(add(pMem, pPl)), q) - - t1 := mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pBeta)), q) - - t1 := addmod(t1, mload(add(pProof, pEval_a)), q) - - t1 := addmod(t1, mload(add(pMem, pGamma)), q) - - t2 := mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pBeta)), q) - - t2 := addmod(t2, mload(add(pProof, pEval_b)), q) - - t2 := addmod(t2, mload(add(pMem, pGamma)), q) - - t1 := mulmod(t1, t2, q) - - t2 := addmod(mload(add(pProof, pEval_c)), mload(add(pMem, pGamma)), q) - - t1 := mulmod(t1, t2, q) - t1 := mulmod(t1, mload(add(pProof, pEval_zw)), q) - t1 := mulmod(t1, mload(add(pMem, pAlpha)), q) - - t2 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q) - - t2 := mulmod(t2, mload(add(pMem, pAlpha)), q) - - t1 := addmod(t1, t2, q) - - t := mod(sub(add(t, q), t1), q) - t := mulmod(t, mload(add(pMem, pZhInv)), q) - - mstore(add(pMem, pEval_t), t) - } - - function g1_set(pR, pP) { - mstore(pR, mload(pP)) - mstore(add(pR, 32), mload(add(pP, 32))) - } - - function g1_acc(pR, pP) { - let mIn := mload(0x40) - mstore(mIn, mload(pR)) - mstore(add(mIn, 32), mload(add(pR, 32))) - mstore(add(mIn, 64), mload(pP)) - mstore(add(mIn, 96), mload(add(pP, 32))) - - let success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0, 0x20) - } - } - - function g1_mulAcc(pR, pP, s) { - let success - let mIn := mload(0x40) - mstore(mIn, mload(pP)) - mstore(add(mIn, 32), mload(add(pP, 32))) - mstore(add(mIn, 64), s) - - success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) - - if iszero(success) { - mstore(0, 0) - return(0, 0x20) - } - - mstore(add(mIn, 64), mload(pR)) - mstore(add(mIn, 96), mload(add(pR, 32))) - - success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0, 0x20) - } - } - - function g1_mulAccC(pR, x, y, s) { - let success - let mIn := mload(0x40) - mstore(mIn, x) - mstore(add(mIn, 32), y) - mstore(add(mIn, 64), s) - - success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) - - if iszero(success) { - mstore(0, 0) - return(0, 0x20) - } - - mstore(add(mIn, 64), mload(pR)) - mstore(add(mIn, 96), mload(add(pR, 32))) - - success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0, 0x20) - } - } - - function g1_mulSetC(pR, x, y, s) { - let success - let mIn := mload(0x40) - mstore(mIn, x) - mstore(add(mIn, 32), y) - mstore(add(mIn, 64), s) - - success := staticcall(sub(gas(), 2000), 7, mIn, 96, pR, 64) - - if iszero(success) { - mstore(0, 0) - return(0, 0x20) - } - } - - function calculateA1(pProof, pMem) { - let p := add(pMem, pA1) - g1_set(p, add(pProof, pWxi)) - g1_mulAcc(p, add(pProof, pWxiw), mload(add(pMem, pU))) - } - - function calculateB1(pProof, pMem) { - let s - let s1 - let p := add(pMem, pB1) - - // Calculate D - s := mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV1)), q) - g1_mulSetC(p, Qlx, Qly, s) - - s := mulmod(s, mload(add(pProof, pEval_b)), q) - g1_mulAccC(p, Qmx, Qmy, s) - - s := mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV1)), q) - g1_mulAccC(p, Qrx, Qry, s) - - s := mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV1)), q) - g1_mulAccC(p, Qox, Qoy, s) - - s := mload(add(pMem, pV1)) - g1_mulAccC(p, Qcx, Qcy, s) - - s := addmod(mload(add(pProof, pEval_a)), mload(add(pMem, pBetaXi)), q) - s := addmod(s, mload(add(pMem, pGamma)), q) - s1 := mulmod(k1, mload(add(pMem, pBetaXi)), q) - s1 := addmod(s1, mload(add(pProof, pEval_b)), q) - s1 := addmod(s1, mload(add(pMem, pGamma)), q) - s := mulmod(s, s1, q) - s1 := mulmod(k2, mload(add(pMem, pBetaXi)), q) - s1 := addmod(s1, mload(add(pProof, pEval_c)), q) - s1 := addmod(s1, mload(add(pMem, pGamma)), q) - s := mulmod(s, s1, q) - s := mulmod(s, mload(add(pMem, pAlpha)), q) - s := mulmod(s, mload(add(pMem, pV1)), q) - s1 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q) - s1 := mulmod(s1, mload(add(pMem, pAlpha)), q) - s1 := mulmod(s1, mload(add(pMem, pV1)), q) - s := addmod(s, s1, q) - s := addmod(s, mload(add(pMem, pU)), q) - g1_mulAcc(p, add(pProof, pZ), s) - - s := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s1)), q) - s := addmod(s, mload(add(pProof, pEval_a)), q) - s := addmod(s, mload(add(pMem, pGamma)), q) - s1 := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s2)), q) - s1 := addmod(s1, mload(add(pProof, pEval_b)), q) - s1 := addmod(s1, mload(add(pMem, pGamma)), q) - s := mulmod(s, s1, q) - s := mulmod(s, mload(add(pMem, pAlpha)), q) - s := mulmod(s, mload(add(pMem, pV1)), q) - s := mulmod(s, mload(add(pMem, pBeta)), q) - s := mulmod(s, mload(add(pProof, pEval_zw)), q) - s := mod(sub(q, s), q) - g1_mulAccC(p, S3x, S3y, s) - - // calculate F - g1_acc(p, add(pProof, pT1)) - - s := mload(add(pMem, pXin)) - g1_mulAcc(p, add(pProof, pT2), s) - - s := mulmod(s, s, q) - g1_mulAcc(p, add(pProof, pT3), s) - - g1_mulAcc(p, add(pProof, pA), mload(add(pMem, pV2))) - g1_mulAcc(p, add(pProof, pB), mload(add(pMem, pV3))) - g1_mulAcc(p, add(pProof, pC), mload(add(pMem, pV4))) - g1_mulAccC(p, S1x, S1y, mload(add(pMem, pV5))) - g1_mulAccC(p, S2x, S2y, mload(add(pMem, pV6))) - - // calculate E - s := mload(add(pMem, pEval_t)) - s := addmod( - s, - mulmod(mload(add(pProof, pEval_r)), mload(add(pMem, pV1)), q), - q - ) - s := addmod( - s, - mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV2)), q), - q - ) - s := addmod( - s, - mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV3)), q), - q - ) - s := addmod( - s, - mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV4)), q), - q - ) - s := addmod( - s, - mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pV5)), q), - q - ) - s := addmod( - s, - mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pV6)), q), - q - ) - s := addmod( - s, - mulmod(mload(add(pProof, pEval_zw)), mload(add(pMem, pU)), q), - q - ) - s := mod(sub(q, s), q) - g1_mulAccC(p, G1x, G1y, s) - - // Last part of B - s := mload(add(pMem, pXi)) - g1_mulAcc(p, add(pProof, pWxi), s) - - s := mulmod(mload(add(pMem, pU)), mload(add(pMem, pXi)), q) - s := mulmod(s, w1, q) - g1_mulAcc(p, add(pProof, pWxiw), s) - } - - function checkPairing(pMem) -> isOk { - let mIn := mload(0x40) - mstore(mIn, mload(add(pMem, pA1))) - mstore(add(mIn, 32), mload(add(add(pMem, pA1), 32))) - mstore(add(mIn, 64), X2x2) - mstore(add(mIn, 96), X2x1) - mstore(add(mIn, 128), X2y2) - mstore(add(mIn, 160), X2y1) - mstore(add(mIn, 192), mload(add(pMem, pB1))) - let s := mload(add(add(pMem, pB1), 32)) - s := mod(sub(qf, s), qf) - mstore(add(mIn, 224), s) - mstore(add(mIn, 256), G2x2) - mstore(add(mIn, 288), G2x1) - mstore(add(mIn, 320), G2y2) - mstore(add(mIn, 352), G2y1) - - let success := staticcall(sub(gas(), 2000), 8, mIn, 384, mIn, 0x20) - - isOk := and(success, mload(mIn)) - } - - let pMem := mload(0x40) - mstore(0x40, add(pMem, lastMem)) - - checkInput(proof) - calculateChallanges(proof, pMem, pubSignals) - calculateLagrange(pMem) - calculatePl(pMem, pubSignals) - calculateT(proof, pMem) - calculateA1(proof, pMem) - calculateB1(proof, pMem) - let isValid := checkPairing(pMem) - - mstore(0x40, sub(pMem, lastMem)) - mstore(0, isValid) - return(0, 0x20) - } - } -} diff --git a/examples/bri-3/ccsm/contracts/workstep1Verifier.sol b/examples/bri-3/ccsm/contracts/workstep1Verifier.sol new file mode 100644 index 000000000..1cfdb1768 --- /dev/null +++ b/examples/bri-3/ccsm/contracts/workstep1Verifier.sol @@ -0,0 +1,652 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + + +pragma solidity >=0.7.0 <0.9.0; + +contract PlonkVerifier { + + uint32 constant n = 32768; + uint16 constant nPublic = 1; + uint16 constant nLagrange = 1; + + uint256 constant Qmx = 10194515970599655109282911583529565849380113195932357171927870801826137307774; + uint256 constant Qmy = 13140940011443490941222100702885231336933018003050133753669339785410949789318; + uint256 constant Qlx = 9075702821792504836345109031609121656336462373875253577566881197906035654776; + uint256 constant Qly = 18954037199706809918078978569604036271719091221321522515280996454686959634667; + uint256 constant Qrx = 14125739754959425112951448565023067073272356473857387194868146753139341737481; + uint256 constant Qry = 9211804802878452259667024877839323417493810024412294758516974036979308136919; + uint256 constant Qox = 13352593265832352698392334901719590216083652550510765281779096890792086115148; + uint256 constant Qoy = 21171212246999274828233761278619486390083267569257427931416020748289597739922; + uint256 constant Qcx = 5480056686458973564008058219103481932927511500969774465272533080708796456916; + uint256 constant Qcy = 18487662305128159302246915279383311188386526722958024410734396746249896900994; + uint256 constant S1x = 17437666502495807466379659324529146642963221649250738321282955596403801525575; + uint256 constant S1y = 18377485979133540239288926929244885650557281677382052473844064353786021038654; + uint256 constant S2x = 10333151760014968029254102863611638785552971938423162339326135439408834116154; + uint256 constant S2y = 6543452700579038735255020802571735600538633455576730189571594753630185539443; + uint256 constant S3x = 8285393960618857014807148089475294222094460765549151605952886640511103409207; + uint256 constant S3y = 11915398849747589245935203954132611261473678566697922313039161652306295887431; + uint256 constant k1 = 2; + uint256 constant k2 = 3; + uint256 constant X2x1 = 7550171141489642323345496683737244277083256424004707715998483409540040587466; + uint256 constant X2x2 = 13674327281456600895607819848682159502956608479735975762218411599033981559968; + uint256 constant X2y1 = 16329427655915944908484974060898761683974646318074639198003187154525254176520; + uint256 constant X2y2 = 19604631653040203911523494213678188005987622194545572529608835183936569820990; + + uint256 constant q = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + uint256 constant qf = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + uint256 constant w1 = 20402931748843538985151001264530049874871572933694634836567070693966133783803; + + uint256 constant G1x = 1; + uint256 constant G1y = 2; + uint256 constant G2x1 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant G2x2 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant G2y1 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant G2y2 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint16 constant pA = 32; + uint16 constant pB = 96; + uint16 constant pC = 160; + uint16 constant pZ = 224; + uint16 constant pT1 = 288; + uint16 constant pT2 = 352; + uint16 constant pT3 = 416; + uint16 constant pWxi = 480; + uint16 constant pWxiw = 544; + uint16 constant pEval_a = 608; + uint16 constant pEval_b = 640; + uint16 constant pEval_c = 672; + uint16 constant pEval_s1 = 704; + uint16 constant pEval_s2 = 736; + uint16 constant pEval_zw = 768; + uint16 constant pEval_r = 800; + + uint16 constant pAlpha = 0; + uint16 constant pBeta = 32; + uint16 constant pGamma = 64; + uint16 constant pXi = 96; + uint16 constant pXin = 128; + uint16 constant pBetaXi = 160; + uint16 constant pV1 = 192; + uint16 constant pV2 = 224; + uint16 constant pV3 = 256; + uint16 constant pV4 = 288; + uint16 constant pV5 = 320; + uint16 constant pV6 = 352; + uint16 constant pU = 384; + uint16 constant pPl = 416; + uint16 constant pEval_t = 448; + uint16 constant pA1 = 480; + uint16 constant pB1 = 544; + uint16 constant pZh = 608; + uint16 constant pZhInv = 640; + + uint16 constant pEval_l1 = 672; + + + + uint16 constant lastMem = 704; + + function verifyProof(bytes memory proof, uint[] memory pubSignals) public view returns (bool) { + assembly { + ///////// + // Computes the inverse using the extended euclidean algorithm + ///////// + function inverse(a, q) -> inv { + let t := 0 + let newt := 1 + let r := q + let newr := a + let quotient + let aux + + for { } newr { } { + quotient := sdiv(r, newr) + aux := sub(t, mul(quotient, newt)) + t:= newt + newt:= aux + + aux := sub(r,mul(quotient, newr)) + r := newr + newr := aux + } + + if gt(r, 1) { revert(0,0) } + if slt(t, 0) { t:= add(t, q) } + + inv := t + } + + /////// + // Computes the inverse of an array of values + // See https://vitalik.ca/general/2018/07/21/starks_part_3.html in section where explain fields operations + ////// + function inverseArray(pVals, n) { + + let pAux := mload(0x40) // Point to the next free position + let pIn := pVals + let lastPIn := add(pVals, mul(n, 32)) // Read n elemnts + let acc := mload(pIn) // Read the first element + pIn := add(pIn, 32) // Point to the second element + let inv + + + for { } lt(pIn, lastPIn) { + pAux := add(pAux, 32) + pIn := add(pIn, 32) + } + { + mstore(pAux, acc) + acc := mulmod(acc, mload(pIn), q) + } + acc := inverse(acc, q) + + // At this point pAux pint to the next free position we substract 1 to point to the last used + pAux := sub(pAux, 32) + // pIn points to the n+1 element, we substract to point to n + pIn := sub(pIn, 32) + lastPIn := pVals // We don't process the first element + for { } gt(pIn, lastPIn) { + pAux := sub(pAux, 32) + pIn := sub(pIn, 32) + } + { + inv := mulmod(acc, mload(pAux), q) + acc := mulmod(acc, mload(pIn), q) + mstore(pIn, inv) + } + // pIn points to first element, we just set it. + mstore(pIn, acc) + } + + function checkField(v) { + if iszero(lt(v, q)) { + mstore(0, 0) + return(0,0x20) + } + } + + function checkInput(pProof) { + if iszero(eq(mload(pProof), 800 )) { + mstore(0, 0) + return(0,0x20) + } + checkField(mload(add(pProof, pEval_a))) + checkField(mload(add(pProof, pEval_b))) + checkField(mload(add(pProof, pEval_c))) + checkField(mload(add(pProof, pEval_s1))) + checkField(mload(add(pProof, pEval_s2))) + checkField(mload(add(pProof, pEval_zw))) + checkField(mload(add(pProof, pEval_r))) + + // Points are checked in the point operations precompiled smart contracts + } + + function calculateChallanges(pProof, pMem, pPublic) { + + let a + let b + + + mstore( add(pMem, 704 ), mload( add( pPublic, 32))) + + mstore( add(pMem, 736 ), mload( add( pProof, pA))) + mstore( add(pMem, 768 ), mload( add( pProof, add(pA,32)))) + mstore( add(pMem, 800 ), mload( add( pProof, add(pA,64)))) + mstore( add(pMem, 832 ), mload( add( pProof, add(pA,96)))) + mstore( add(pMem, 864 ), mload( add( pProof, add(pA,128)))) + mstore( add(pMem, 896 ), mload( add( pProof, add(pA,160)))) + + b := mod(keccak256(add(pMem, lastMem), 224), q) + mstore( add(pMem, pBeta), b) + mstore( add(pMem, pGamma), mod(keccak256(add(pMem, pBeta), 32), q)) + mstore( add(pMem, pAlpha), mod(keccak256(add(pProof, pZ), 64), q)) + + a := mod(keccak256(add(pProof, pT1), 192), q) + mstore( add(pMem, pXi), a) + mstore( add(pMem, pBetaXi), mulmod(b, a, q)) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + mstore( add(pMem, pXin), a) + a:= mod(add(sub(a, 1),q), q) + mstore( add(pMem, pZh), a) + mstore( add(pMem, pZhInv), a) // We will invert later together with lagrange pols + + let v1 := mod(keccak256(add(pProof, pEval_a), 224), q) + mstore( add(pMem, pV1), v1) + a := mulmod(v1, v1, q) + mstore( add(pMem, pV2), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV3), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV4), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV5), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV6), a) + + mstore( add(pMem, pU), mod(keccak256(add(pProof, pWxi), 128), q)) + } + + function calculateLagrange(pMem) { + + let w := 1 + + mstore( + add(pMem, pEval_l1), + mulmod( + n, + mod( + add( + sub( + mload(add(pMem, pXi)), + w + ), + q + ), + q + ), + q + ) + ) + + + + inverseArray(add(pMem, pZhInv), 2 ) + + let zh := mload(add(pMem, pZh)) + w := 1 + + + mstore( + add(pMem, pEval_l1 ), + mulmod( + mload(add(pMem, pEval_l1 )), + zh, + q + ) + ) + + + + + + } + + function calculatePl(pMem, pPub) { + let pl := 0 + + + pl := mod( + add( + sub( + pl, + mulmod( + mload(add(pMem, pEval_l1)), + mload(add(pPub, 32)), + q + ) + ), + q + ), + q + ) + + + mstore(add(pMem, pPl), pl) + + + } + + function calculateT(pProof, pMem) { + let t + let t1 + let t2 + t := addmod( + mload(add(pProof, pEval_r)), + mload(add(pMem, pPl)), + q + ) + + t1 := mulmod( + mload(add(pProof, pEval_s1)), + mload(add(pMem, pBeta)), + q + ) + + t1 := addmod( + t1, + mload(add(pProof, pEval_a)), + q + ) + + t1 := addmod( + t1, + mload(add(pMem, pGamma)), + q + ) + + t2 := mulmod( + mload(add(pProof, pEval_s2)), + mload(add(pMem, pBeta)), + q + ) + + t2 := addmod( + t2, + mload(add(pProof, pEval_b)), + q + ) + + t2 := addmod( + t2, + mload(add(pMem, pGamma)), + q + ) + + t1 := mulmod(t1, t2, q) + + t2 := addmod( + mload(add(pProof, pEval_c)), + mload(add(pMem, pGamma)), + q + ) + + t1 := mulmod(t1, t2, q) + t1 := mulmod(t1, mload(add(pProof, pEval_zw)), q) + t1 := mulmod(t1, mload(add(pMem, pAlpha)), q) + + t2 := mulmod( + mload(add(pMem, pEval_l1)), + mload(add(pMem, pAlpha)), + q + ) + + t2 := mulmod( + t2, + mload(add(pMem, pAlpha)), + q + ) + + t1 := addmod(t1, t2, q) + + t := mod(sub(add(t, q), t1), q) + t := mulmod(t, mload(add(pMem, pZhInv)), q) + + mstore( add(pMem, pEval_t) , t) + + } + + function g1_set(pR, pP) { + mstore(pR, mload(pP)) + mstore(add(pR, 32), mload(add(pP,32))) + } + + function g1_acc(pR, pP) { + let mIn := mload(0x40) + mstore(mIn, mload(pR)) + mstore(add(mIn,32), mload(add(pR, 32))) + mstore(add(mIn,64), mload(pP)) + mstore(add(mIn,96), mload(add(pP, 32))) + + let success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + function g1_mulAcc(pR, pP, s) { + let success + let mIn := mload(0x40) + mstore(mIn, mload(pP)) + mstore(add(mIn,32), mload(add(pP, 32))) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + mstore(add(mIn,64), mload(pR)) + mstore(add(mIn,96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + } + + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn,32), y) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + mstore(add(mIn,64), mload(pR)) + mstore(add(mIn,96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + function g1_mulSetC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn,32), y) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + + function calculateA1(pProof, pMem) { + let p := add(pMem, pA1) + g1_set(p, add(pProof, pWxi)) + g1_mulAcc(p, add(pProof, pWxiw), mload(add(pMem, pU))) + } + + + function calculateB1(pProof, pMem) { + let s + let s1 + let p := add(pMem, pB1) + + // Calculate D + s := mulmod( mload(add(pProof, pEval_a)), mload(add(pMem, pV1)), q) + g1_mulSetC(p, Qlx, Qly, s) + + s := mulmod( s, mload(add(pProof, pEval_b)), q) + g1_mulAccC(p, Qmx, Qmy, s) + + s := mulmod( mload(add(pProof, pEval_b)), mload(add(pMem, pV1)), q) + g1_mulAccC(p, Qrx, Qry, s) + + s := mulmod( mload(add(pProof, pEval_c)), mload(add(pMem, pV1)), q) + g1_mulAccC(p, Qox, Qoy, s) + + s :=mload(add(pMem, pV1)) + g1_mulAccC(p, Qcx, Qcy, s) + + s := addmod(mload(add(pProof, pEval_a)), mload(add(pMem, pBetaXi)), q) + s := addmod(s, mload(add(pMem, pGamma)), q) + s1 := mulmod(k1, mload(add(pMem, pBetaXi)), q) + s1 := addmod(s1, mload(add(pProof, pEval_b)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s1 := mulmod(k2, mload(add(pMem, pBetaXi)), q) + s1 := addmod(s1, mload(add(pProof, pEval_c)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s := mulmod(s, mload(add(pMem, pAlpha)), q) + s := mulmod(s, mload(add(pMem, pV1)), q) + s1 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q) + s1 := mulmod(s1, mload(add(pMem, pAlpha)), q) + s1 := mulmod(s1, mload(add(pMem, pV1)), q) + s := addmod(s, s1, q) + s := addmod(s, mload(add(pMem, pU)), q) + g1_mulAcc(p, add(pProof, pZ), s) + + s := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s1)), q) + s := addmod(s, mload(add(pProof, pEval_a)), q) + s := addmod(s, mload(add(pMem, pGamma)), q) + s1 := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s2)), q) + s1 := addmod(s1, mload(add(pProof, pEval_b)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s := mulmod(s, mload(add(pMem, pAlpha)), q) + s := mulmod(s, mload(add(pMem, pV1)), q) + s := mulmod(s, mload(add(pMem, pBeta)), q) + s := mulmod(s, mload(add(pProof, pEval_zw)), q) + s := mod(sub(q, s), q) + g1_mulAccC(p, S3x, S3y, s) + + + // calculate F + g1_acc(p , add(pProof, pT1)) + + s := mload(add(pMem, pXin)) + g1_mulAcc(p, add(pProof, pT2), s) + + s := mulmod(s, s, q) + g1_mulAcc(p, add(pProof, pT3), s) + + g1_mulAcc(p, add(pProof, pA), mload(add(pMem, pV2))) + g1_mulAcc(p, add(pProof, pB), mload(add(pMem, pV3))) + g1_mulAcc(p, add(pProof, pC), mload(add(pMem, pV4))) + g1_mulAccC(p, S1x, S1y, mload(add(pMem, pV5))) + g1_mulAccC(p, S2x, S2y, mload(add(pMem, pV6))) + + // calculate E + s := mload(add(pMem, pEval_t)) + s := addmod(s, mulmod(mload(add(pProof, pEval_r)), mload(add(pMem, pV1)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV2)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV3)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV4)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pV5)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pV6)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_zw)), mload(add(pMem, pU)), q), q) + s := mod(sub(q, s), q) + g1_mulAccC(p, G1x, G1y, s) + + + // Last part of B + s := mload(add(pMem, pXi)) + g1_mulAcc(p, add(pProof, pWxi), s) + + s := mulmod(mload(add(pMem, pU)), mload(add(pMem, pXi)), q) + s := mulmod(s, w1, q) + g1_mulAcc(p, add(pProof, pWxiw), s) + + } + + function checkPairing(pMem) -> isOk { + let mIn := mload(0x40) + mstore(mIn, mload(add(pMem, pA1))) + mstore(add(mIn,32), mload(add(add(pMem, pA1), 32))) + mstore(add(mIn,64), X2x2) + mstore(add(mIn,96), X2x1) + mstore(add(mIn,128), X2y2) + mstore(add(mIn,160), X2y1) + mstore(add(mIn,192), mload(add(pMem, pB1))) + let s := mload(add(add(pMem, pB1), 32)) + s := mod(sub(qf, s), qf) + mstore(add(mIn,224), s) + mstore(add(mIn,256), G2x2) + mstore(add(mIn,288), G2x1) + mstore(add(mIn,320), G2y2) + mstore(add(mIn,352), G2y1) + + let success := staticcall(sub(gas(), 2000), 8, mIn, 384, mIn, 0x20) + + isOk := and(success, mload(mIn)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, lastMem)) + + checkInput(proof) + calculateChallanges(proof, pMem, pubSignals) + calculateLagrange(pMem) + calculatePl(pMem, pubSignals) + calculateT(proof, pMem) + calculateA1(proof, pMem) + calculateB1(proof, pMem) + let isValid := checkPairing(pMem) + + mstore(0x40, sub(pMem, lastMem)) + mstore(0, isValid) + return(0,0x20) + } + + } +} diff --git a/examples/bri-3/ccsm/contracts/workstep2Verifier.sol b/examples/bri-3/ccsm/contracts/workstep2Verifier.sol new file mode 100644 index 000000000..8aa99b873 --- /dev/null +++ b/examples/bri-3/ccsm/contracts/workstep2Verifier.sol @@ -0,0 +1,652 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + + +pragma solidity >=0.7.0 <0.9.0; + +contract PlonkVerifier { + + uint32 constant n = 32768; + uint16 constant nPublic = 1; + uint16 constant nLagrange = 1; + + uint256 constant Qmx = 9031014201334786598437474819333373897984837472962630324851335361844058545780; + uint256 constant Qmy = 16607210786086921981367283815049778740600968770620223098147538097138430537595; + uint256 constant Qlx = 6808278280485306759745548891536191162342236099697633650996345740914224220305; + uint256 constant Qly = 3270170195800647956439730797339220040656917583598598133609260645618986123588; + uint256 constant Qrx = 6148500901704548782540313024093324774763190834353235759778239054380115761181; + uint256 constant Qry = 17496928704547418787249113629100332597587390388927992302390890724367334325226; + uint256 constant Qox = 21659278811951783556483125629272843184764885478213749993598444862278045884755; + uint256 constant Qoy = 16660597475205619545281468126006239987539267348200340592793952148487504874309; + uint256 constant Qcx = 5305510349838087338783547875566294471771494030996437605662252026376037082958; + uint256 constant Qcy = 19377334097772342373923876594211562277705091388899497313132675599004144975313; + uint256 constant S1x = 13511374588247167997414482771460319777500130147065290737814654512741747616346; + uint256 constant S1y = 9410442723228155800609023852081630300440285014469359549251506116352343840765; + uint256 constant S2x = 6234343642032529676304475840139856609542183618893282794848722265839404121608; + uint256 constant S2y = 198081256679397470117078185378786682134167977767481936106730933658216400205; + uint256 constant S3x = 15607364487714913306100446210105619358733676078036562302151585058643715232255; + uint256 constant S3y = 16418203895932101971661510317717759015568131982287223931136504811190200970422; + uint256 constant k1 = 2; + uint256 constant k2 = 3; + uint256 constant X2x1 = 7550171141489642323345496683737244277083256424004707715998483409540040587466; + uint256 constant X2x2 = 13674327281456600895607819848682159502956608479735975762218411599033981559968; + uint256 constant X2y1 = 16329427655915944908484974060898761683974646318074639198003187154525254176520; + uint256 constant X2y2 = 19604631653040203911523494213678188005987622194545572529608835183936569820990; + + uint256 constant q = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + uint256 constant qf = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + uint256 constant w1 = 20402931748843538985151001264530049874871572933694634836567070693966133783803; + + uint256 constant G1x = 1; + uint256 constant G1y = 2; + uint256 constant G2x1 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant G2x2 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant G2y1 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant G2y2 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint16 constant pA = 32; + uint16 constant pB = 96; + uint16 constant pC = 160; + uint16 constant pZ = 224; + uint16 constant pT1 = 288; + uint16 constant pT2 = 352; + uint16 constant pT3 = 416; + uint16 constant pWxi = 480; + uint16 constant pWxiw = 544; + uint16 constant pEval_a = 608; + uint16 constant pEval_b = 640; + uint16 constant pEval_c = 672; + uint16 constant pEval_s1 = 704; + uint16 constant pEval_s2 = 736; + uint16 constant pEval_zw = 768; + uint16 constant pEval_r = 800; + + uint16 constant pAlpha = 0; + uint16 constant pBeta = 32; + uint16 constant pGamma = 64; + uint16 constant pXi = 96; + uint16 constant pXin = 128; + uint16 constant pBetaXi = 160; + uint16 constant pV1 = 192; + uint16 constant pV2 = 224; + uint16 constant pV3 = 256; + uint16 constant pV4 = 288; + uint16 constant pV5 = 320; + uint16 constant pV6 = 352; + uint16 constant pU = 384; + uint16 constant pPl = 416; + uint16 constant pEval_t = 448; + uint16 constant pA1 = 480; + uint16 constant pB1 = 544; + uint16 constant pZh = 608; + uint16 constant pZhInv = 640; + + uint16 constant pEval_l1 = 672; + + + + uint16 constant lastMem = 704; + + function verifyProof(bytes memory proof, uint[] memory pubSignals) public view returns (bool) { + assembly { + ///////// + // Computes the inverse using the extended euclidean algorithm + ///////// + function inverse(a, q) -> inv { + let t := 0 + let newt := 1 + let r := q + let newr := a + let quotient + let aux + + for { } newr { } { + quotient := sdiv(r, newr) + aux := sub(t, mul(quotient, newt)) + t:= newt + newt:= aux + + aux := sub(r,mul(quotient, newr)) + r := newr + newr := aux + } + + if gt(r, 1) { revert(0,0) } + if slt(t, 0) { t:= add(t, q) } + + inv := t + } + + /////// + // Computes the inverse of an array of values + // See https://vitalik.ca/general/2018/07/21/starks_part_3.html in section where explain fields operations + ////// + function inverseArray(pVals, n) { + + let pAux := mload(0x40) // Point to the next free position + let pIn := pVals + let lastPIn := add(pVals, mul(n, 32)) // Read n elemnts + let acc := mload(pIn) // Read the first element + pIn := add(pIn, 32) // Point to the second element + let inv + + + for { } lt(pIn, lastPIn) { + pAux := add(pAux, 32) + pIn := add(pIn, 32) + } + { + mstore(pAux, acc) + acc := mulmod(acc, mload(pIn), q) + } + acc := inverse(acc, q) + + // At this point pAux pint to the next free position we substract 1 to point to the last used + pAux := sub(pAux, 32) + // pIn points to the n+1 element, we substract to point to n + pIn := sub(pIn, 32) + lastPIn := pVals // We don't process the first element + for { } gt(pIn, lastPIn) { + pAux := sub(pAux, 32) + pIn := sub(pIn, 32) + } + { + inv := mulmod(acc, mload(pAux), q) + acc := mulmod(acc, mload(pIn), q) + mstore(pIn, inv) + } + // pIn points to first element, we just set it. + mstore(pIn, acc) + } + + function checkField(v) { + if iszero(lt(v, q)) { + mstore(0, 0) + return(0,0x20) + } + } + + function checkInput(pProof) { + if iszero(eq(mload(pProof), 800 )) { + mstore(0, 0) + return(0,0x20) + } + checkField(mload(add(pProof, pEval_a))) + checkField(mload(add(pProof, pEval_b))) + checkField(mload(add(pProof, pEval_c))) + checkField(mload(add(pProof, pEval_s1))) + checkField(mload(add(pProof, pEval_s2))) + checkField(mload(add(pProof, pEval_zw))) + checkField(mload(add(pProof, pEval_r))) + + // Points are checked in the point operations precompiled smart contracts + } + + function calculateChallanges(pProof, pMem, pPublic) { + + let a + let b + + + mstore( add(pMem, 704 ), mload( add( pPublic, 32))) + + mstore( add(pMem, 736 ), mload( add( pProof, pA))) + mstore( add(pMem, 768 ), mload( add( pProof, add(pA,32)))) + mstore( add(pMem, 800 ), mload( add( pProof, add(pA,64)))) + mstore( add(pMem, 832 ), mload( add( pProof, add(pA,96)))) + mstore( add(pMem, 864 ), mload( add( pProof, add(pA,128)))) + mstore( add(pMem, 896 ), mload( add( pProof, add(pA,160)))) + + b := mod(keccak256(add(pMem, lastMem), 224), q) + mstore( add(pMem, pBeta), b) + mstore( add(pMem, pGamma), mod(keccak256(add(pMem, pBeta), 32), q)) + mstore( add(pMem, pAlpha), mod(keccak256(add(pProof, pZ), 64), q)) + + a := mod(keccak256(add(pProof, pT1), 192), q) + mstore( add(pMem, pXi), a) + mstore( add(pMem, pBetaXi), mulmod(b, a, q)) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + mstore( add(pMem, pXin), a) + a:= mod(add(sub(a, 1),q), q) + mstore( add(pMem, pZh), a) + mstore( add(pMem, pZhInv), a) // We will invert later together with lagrange pols + + let v1 := mod(keccak256(add(pProof, pEval_a), 224), q) + mstore( add(pMem, pV1), v1) + a := mulmod(v1, v1, q) + mstore( add(pMem, pV2), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV3), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV4), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV5), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV6), a) + + mstore( add(pMem, pU), mod(keccak256(add(pProof, pWxi), 128), q)) + } + + function calculateLagrange(pMem) { + + let w := 1 + + mstore( + add(pMem, pEval_l1), + mulmod( + n, + mod( + add( + sub( + mload(add(pMem, pXi)), + w + ), + q + ), + q + ), + q + ) + ) + + + + inverseArray(add(pMem, pZhInv), 2 ) + + let zh := mload(add(pMem, pZh)) + w := 1 + + + mstore( + add(pMem, pEval_l1 ), + mulmod( + mload(add(pMem, pEval_l1 )), + zh, + q + ) + ) + + + + + + } + + function calculatePl(pMem, pPub) { + let pl := 0 + + + pl := mod( + add( + sub( + pl, + mulmod( + mload(add(pMem, pEval_l1)), + mload(add(pPub, 32)), + q + ) + ), + q + ), + q + ) + + + mstore(add(pMem, pPl), pl) + + + } + + function calculateT(pProof, pMem) { + let t + let t1 + let t2 + t := addmod( + mload(add(pProof, pEval_r)), + mload(add(pMem, pPl)), + q + ) + + t1 := mulmod( + mload(add(pProof, pEval_s1)), + mload(add(pMem, pBeta)), + q + ) + + t1 := addmod( + t1, + mload(add(pProof, pEval_a)), + q + ) + + t1 := addmod( + t1, + mload(add(pMem, pGamma)), + q + ) + + t2 := mulmod( + mload(add(pProof, pEval_s2)), + mload(add(pMem, pBeta)), + q + ) + + t2 := addmod( + t2, + mload(add(pProof, pEval_b)), + q + ) + + t2 := addmod( + t2, + mload(add(pMem, pGamma)), + q + ) + + t1 := mulmod(t1, t2, q) + + t2 := addmod( + mload(add(pProof, pEval_c)), + mload(add(pMem, pGamma)), + q + ) + + t1 := mulmod(t1, t2, q) + t1 := mulmod(t1, mload(add(pProof, pEval_zw)), q) + t1 := mulmod(t1, mload(add(pMem, pAlpha)), q) + + t2 := mulmod( + mload(add(pMem, pEval_l1)), + mload(add(pMem, pAlpha)), + q + ) + + t2 := mulmod( + t2, + mload(add(pMem, pAlpha)), + q + ) + + t1 := addmod(t1, t2, q) + + t := mod(sub(add(t, q), t1), q) + t := mulmod(t, mload(add(pMem, pZhInv)), q) + + mstore( add(pMem, pEval_t) , t) + + } + + function g1_set(pR, pP) { + mstore(pR, mload(pP)) + mstore(add(pR, 32), mload(add(pP,32))) + } + + function g1_acc(pR, pP) { + let mIn := mload(0x40) + mstore(mIn, mload(pR)) + mstore(add(mIn,32), mload(add(pR, 32))) + mstore(add(mIn,64), mload(pP)) + mstore(add(mIn,96), mload(add(pP, 32))) + + let success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + function g1_mulAcc(pR, pP, s) { + let success + let mIn := mload(0x40) + mstore(mIn, mload(pP)) + mstore(add(mIn,32), mload(add(pP, 32))) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + mstore(add(mIn,64), mload(pR)) + mstore(add(mIn,96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + } + + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn,32), y) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + mstore(add(mIn,64), mload(pR)) + mstore(add(mIn,96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + function g1_mulSetC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn,32), y) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + + function calculateA1(pProof, pMem) { + let p := add(pMem, pA1) + g1_set(p, add(pProof, pWxi)) + g1_mulAcc(p, add(pProof, pWxiw), mload(add(pMem, pU))) + } + + + function calculateB1(pProof, pMem) { + let s + let s1 + let p := add(pMem, pB1) + + // Calculate D + s := mulmod( mload(add(pProof, pEval_a)), mload(add(pMem, pV1)), q) + g1_mulSetC(p, Qlx, Qly, s) + + s := mulmod( s, mload(add(pProof, pEval_b)), q) + g1_mulAccC(p, Qmx, Qmy, s) + + s := mulmod( mload(add(pProof, pEval_b)), mload(add(pMem, pV1)), q) + g1_mulAccC(p, Qrx, Qry, s) + + s := mulmod( mload(add(pProof, pEval_c)), mload(add(pMem, pV1)), q) + g1_mulAccC(p, Qox, Qoy, s) + + s :=mload(add(pMem, pV1)) + g1_mulAccC(p, Qcx, Qcy, s) + + s := addmod(mload(add(pProof, pEval_a)), mload(add(pMem, pBetaXi)), q) + s := addmod(s, mload(add(pMem, pGamma)), q) + s1 := mulmod(k1, mload(add(pMem, pBetaXi)), q) + s1 := addmod(s1, mload(add(pProof, pEval_b)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s1 := mulmod(k2, mload(add(pMem, pBetaXi)), q) + s1 := addmod(s1, mload(add(pProof, pEval_c)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s := mulmod(s, mload(add(pMem, pAlpha)), q) + s := mulmod(s, mload(add(pMem, pV1)), q) + s1 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q) + s1 := mulmod(s1, mload(add(pMem, pAlpha)), q) + s1 := mulmod(s1, mload(add(pMem, pV1)), q) + s := addmod(s, s1, q) + s := addmod(s, mload(add(pMem, pU)), q) + g1_mulAcc(p, add(pProof, pZ), s) + + s := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s1)), q) + s := addmod(s, mload(add(pProof, pEval_a)), q) + s := addmod(s, mload(add(pMem, pGamma)), q) + s1 := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s2)), q) + s1 := addmod(s1, mload(add(pProof, pEval_b)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s := mulmod(s, mload(add(pMem, pAlpha)), q) + s := mulmod(s, mload(add(pMem, pV1)), q) + s := mulmod(s, mload(add(pMem, pBeta)), q) + s := mulmod(s, mload(add(pProof, pEval_zw)), q) + s := mod(sub(q, s), q) + g1_mulAccC(p, S3x, S3y, s) + + + // calculate F + g1_acc(p , add(pProof, pT1)) + + s := mload(add(pMem, pXin)) + g1_mulAcc(p, add(pProof, pT2), s) + + s := mulmod(s, s, q) + g1_mulAcc(p, add(pProof, pT3), s) + + g1_mulAcc(p, add(pProof, pA), mload(add(pMem, pV2))) + g1_mulAcc(p, add(pProof, pB), mload(add(pMem, pV3))) + g1_mulAcc(p, add(pProof, pC), mload(add(pMem, pV4))) + g1_mulAccC(p, S1x, S1y, mload(add(pMem, pV5))) + g1_mulAccC(p, S2x, S2y, mload(add(pMem, pV6))) + + // calculate E + s := mload(add(pMem, pEval_t)) + s := addmod(s, mulmod(mload(add(pProof, pEval_r)), mload(add(pMem, pV1)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV2)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV3)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV4)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pV5)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pV6)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_zw)), mload(add(pMem, pU)), q), q) + s := mod(sub(q, s), q) + g1_mulAccC(p, G1x, G1y, s) + + + // Last part of B + s := mload(add(pMem, pXi)) + g1_mulAcc(p, add(pProof, pWxi), s) + + s := mulmod(mload(add(pMem, pU)), mload(add(pMem, pXi)), q) + s := mulmod(s, w1, q) + g1_mulAcc(p, add(pProof, pWxiw), s) + + } + + function checkPairing(pMem) -> isOk { + let mIn := mload(0x40) + mstore(mIn, mload(add(pMem, pA1))) + mstore(add(mIn,32), mload(add(add(pMem, pA1), 32))) + mstore(add(mIn,64), X2x2) + mstore(add(mIn,96), X2x1) + mstore(add(mIn,128), X2y2) + mstore(add(mIn,160), X2y1) + mstore(add(mIn,192), mload(add(pMem, pB1))) + let s := mload(add(add(pMem, pB1), 32)) + s := mod(sub(qf, s), qf) + mstore(add(mIn,224), s) + mstore(add(mIn,256), G2x2) + mstore(add(mIn,288), G2x1) + mstore(add(mIn,320), G2y2) + mstore(add(mIn,352), G2y1) + + let success := staticcall(sub(gas(), 2000), 8, mIn, 384, mIn, 0x20) + + isOk := and(success, mload(mIn)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, lastMem)) + + checkInput(proof) + calculateChallanges(proof, pMem, pubSignals) + calculateLagrange(pMem) + calculatePl(pMem, pubSignals) + calculateT(proof, pMem) + calculateA1(proof, pMem) + calculateB1(proof, pMem) + let isValid := checkPairing(pMem) + + mstore(0x40, sub(pMem, lastMem)) + mstore(0, isValid) + return(0,0x20) + } + + } +} diff --git a/examples/bri-3/ccsm/contracts/workstep3Verifier.sol b/examples/bri-3/ccsm/contracts/workstep3Verifier.sol new file mode 100644 index 000000000..8ac7379fd --- /dev/null +++ b/examples/bri-3/ccsm/contracts/workstep3Verifier.sol @@ -0,0 +1,652 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + + +pragma solidity >=0.7.0 <0.9.0; + +contract PlonkVerifier { + + uint32 constant n = 32768; + uint16 constant nPublic = 1; + uint16 constant nLagrange = 1; + + uint256 constant Qmx = 9031014201334786598437474819333373897984837472962630324851335361844058545780; + uint256 constant Qmy = 16607210786086921981367283815049778740600968770620223098147538097138430537595; + uint256 constant Qlx = 6808278280485306759745548891536191162342236099697633650996345740914224220305; + uint256 constant Qly = 3270170195800647956439730797339220040656917583598598133609260645618986123588; + uint256 constant Qrx = 19867659962940379415833721956196885812592831298524381980555731113220022045761; + uint256 constant Qry = 5839482012031765332886537848770371473868238809091147323904600653094947875345; + uint256 constant Qox = 21659278811951783556483125629272843184764885478213749993598444862278045884755; + uint256 constant Qoy = 16660597475205619545281468126006239987539267348200340592793952148487504874309; + uint256 constant Qcx = 5305510349838087338783547875566294471771494030996437605662252026376037082958; + uint256 constant Qcy = 19377334097772342373923876594211562277705091388899497313132675599004144975313; + uint256 constant S1x = 13511374588247167997414482771460319777500130147065290737814654512741747616346; + uint256 constant S1y = 9410442723228155800609023852081630300440285014469359549251506116352343840765; + uint256 constant S2x = 6234343642032529676304475840139856609542183618893282794848722265839404121608; + uint256 constant S2y = 198081256679397470117078185378786682134167977767481936106730933658216400205; + uint256 constant S3x = 15607364487714913306100446210105619358733676078036562302151585058643715232255; + uint256 constant S3y = 16418203895932101971661510317717759015568131982287223931136504811190200970422; + uint256 constant k1 = 2; + uint256 constant k2 = 3; + uint256 constant X2x1 = 7550171141489642323345496683737244277083256424004707715998483409540040587466; + uint256 constant X2x2 = 13674327281456600895607819848682159502956608479735975762218411599033981559968; + uint256 constant X2y1 = 16329427655915944908484974060898761683974646318074639198003187154525254176520; + uint256 constant X2y2 = 19604631653040203911523494213678188005987622194545572529608835183936569820990; + + uint256 constant q = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + uint256 constant qf = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + uint256 constant w1 = 20402931748843538985151001264530049874871572933694634836567070693966133783803; + + uint256 constant G1x = 1; + uint256 constant G1y = 2; + uint256 constant G2x1 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant G2x2 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant G2y1 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant G2y2 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint16 constant pA = 32; + uint16 constant pB = 96; + uint16 constant pC = 160; + uint16 constant pZ = 224; + uint16 constant pT1 = 288; + uint16 constant pT2 = 352; + uint16 constant pT3 = 416; + uint16 constant pWxi = 480; + uint16 constant pWxiw = 544; + uint16 constant pEval_a = 608; + uint16 constant pEval_b = 640; + uint16 constant pEval_c = 672; + uint16 constant pEval_s1 = 704; + uint16 constant pEval_s2 = 736; + uint16 constant pEval_zw = 768; + uint16 constant pEval_r = 800; + + uint16 constant pAlpha = 0; + uint16 constant pBeta = 32; + uint16 constant pGamma = 64; + uint16 constant pXi = 96; + uint16 constant pXin = 128; + uint16 constant pBetaXi = 160; + uint16 constant pV1 = 192; + uint16 constant pV2 = 224; + uint16 constant pV3 = 256; + uint16 constant pV4 = 288; + uint16 constant pV5 = 320; + uint16 constant pV6 = 352; + uint16 constant pU = 384; + uint16 constant pPl = 416; + uint16 constant pEval_t = 448; + uint16 constant pA1 = 480; + uint16 constant pB1 = 544; + uint16 constant pZh = 608; + uint16 constant pZhInv = 640; + + uint16 constant pEval_l1 = 672; + + + + uint16 constant lastMem = 704; + + function verifyProof(bytes memory proof, uint[] memory pubSignals) public view returns (bool) { + assembly { + ///////// + // Computes the inverse using the extended euclidean algorithm + ///////// + function inverse(a, q) -> inv { + let t := 0 + let newt := 1 + let r := q + let newr := a + let quotient + let aux + + for { } newr { } { + quotient := sdiv(r, newr) + aux := sub(t, mul(quotient, newt)) + t:= newt + newt:= aux + + aux := sub(r,mul(quotient, newr)) + r := newr + newr := aux + } + + if gt(r, 1) { revert(0,0) } + if slt(t, 0) { t:= add(t, q) } + + inv := t + } + + /////// + // Computes the inverse of an array of values + // See https://vitalik.ca/general/2018/07/21/starks_part_3.html in section where explain fields operations + ////// + function inverseArray(pVals, n) { + + let pAux := mload(0x40) // Point to the next free position + let pIn := pVals + let lastPIn := add(pVals, mul(n, 32)) // Read n elemnts + let acc := mload(pIn) // Read the first element + pIn := add(pIn, 32) // Point to the second element + let inv + + + for { } lt(pIn, lastPIn) { + pAux := add(pAux, 32) + pIn := add(pIn, 32) + } + { + mstore(pAux, acc) + acc := mulmod(acc, mload(pIn), q) + } + acc := inverse(acc, q) + + // At this point pAux pint to the next free position we substract 1 to point to the last used + pAux := sub(pAux, 32) + // pIn points to the n+1 element, we substract to point to n + pIn := sub(pIn, 32) + lastPIn := pVals // We don't process the first element + for { } gt(pIn, lastPIn) { + pAux := sub(pAux, 32) + pIn := sub(pIn, 32) + } + { + inv := mulmod(acc, mload(pAux), q) + acc := mulmod(acc, mload(pIn), q) + mstore(pIn, inv) + } + // pIn points to first element, we just set it. + mstore(pIn, acc) + } + + function checkField(v) { + if iszero(lt(v, q)) { + mstore(0, 0) + return(0,0x20) + } + } + + function checkInput(pProof) { + if iszero(eq(mload(pProof), 800 )) { + mstore(0, 0) + return(0,0x20) + } + checkField(mload(add(pProof, pEval_a))) + checkField(mload(add(pProof, pEval_b))) + checkField(mload(add(pProof, pEval_c))) + checkField(mload(add(pProof, pEval_s1))) + checkField(mload(add(pProof, pEval_s2))) + checkField(mload(add(pProof, pEval_zw))) + checkField(mload(add(pProof, pEval_r))) + + // Points are checked in the point operations precompiled smart contracts + } + + function calculateChallanges(pProof, pMem, pPublic) { + + let a + let b + + + mstore( add(pMem, 704 ), mload( add( pPublic, 32))) + + mstore( add(pMem, 736 ), mload( add( pProof, pA))) + mstore( add(pMem, 768 ), mload( add( pProof, add(pA,32)))) + mstore( add(pMem, 800 ), mload( add( pProof, add(pA,64)))) + mstore( add(pMem, 832 ), mload( add( pProof, add(pA,96)))) + mstore( add(pMem, 864 ), mload( add( pProof, add(pA,128)))) + mstore( add(pMem, 896 ), mload( add( pProof, add(pA,160)))) + + b := mod(keccak256(add(pMem, lastMem), 224), q) + mstore( add(pMem, pBeta), b) + mstore( add(pMem, pGamma), mod(keccak256(add(pMem, pBeta), 32), q)) + mstore( add(pMem, pAlpha), mod(keccak256(add(pProof, pZ), 64), q)) + + a := mod(keccak256(add(pProof, pT1), 192), q) + mstore( add(pMem, pXi), a) + mstore( add(pMem, pBetaXi), mulmod(b, a, q)) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + a:= mulmod(a, a, q) + + mstore( add(pMem, pXin), a) + a:= mod(add(sub(a, 1),q), q) + mstore( add(pMem, pZh), a) + mstore( add(pMem, pZhInv), a) // We will invert later together with lagrange pols + + let v1 := mod(keccak256(add(pProof, pEval_a), 224), q) + mstore( add(pMem, pV1), v1) + a := mulmod(v1, v1, q) + mstore( add(pMem, pV2), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV3), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV4), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV5), a) + a := mulmod(a, v1, q) + mstore( add(pMem, pV6), a) + + mstore( add(pMem, pU), mod(keccak256(add(pProof, pWxi), 128), q)) + } + + function calculateLagrange(pMem) { + + let w := 1 + + mstore( + add(pMem, pEval_l1), + mulmod( + n, + mod( + add( + sub( + mload(add(pMem, pXi)), + w + ), + q + ), + q + ), + q + ) + ) + + + + inverseArray(add(pMem, pZhInv), 2 ) + + let zh := mload(add(pMem, pZh)) + w := 1 + + + mstore( + add(pMem, pEval_l1 ), + mulmod( + mload(add(pMem, pEval_l1 )), + zh, + q + ) + ) + + + + + + } + + function calculatePl(pMem, pPub) { + let pl := 0 + + + pl := mod( + add( + sub( + pl, + mulmod( + mload(add(pMem, pEval_l1)), + mload(add(pPub, 32)), + q + ) + ), + q + ), + q + ) + + + mstore(add(pMem, pPl), pl) + + + } + + function calculateT(pProof, pMem) { + let t + let t1 + let t2 + t := addmod( + mload(add(pProof, pEval_r)), + mload(add(pMem, pPl)), + q + ) + + t1 := mulmod( + mload(add(pProof, pEval_s1)), + mload(add(pMem, pBeta)), + q + ) + + t1 := addmod( + t1, + mload(add(pProof, pEval_a)), + q + ) + + t1 := addmod( + t1, + mload(add(pMem, pGamma)), + q + ) + + t2 := mulmod( + mload(add(pProof, pEval_s2)), + mload(add(pMem, pBeta)), + q + ) + + t2 := addmod( + t2, + mload(add(pProof, pEval_b)), + q + ) + + t2 := addmod( + t2, + mload(add(pMem, pGamma)), + q + ) + + t1 := mulmod(t1, t2, q) + + t2 := addmod( + mload(add(pProof, pEval_c)), + mload(add(pMem, pGamma)), + q + ) + + t1 := mulmod(t1, t2, q) + t1 := mulmod(t1, mload(add(pProof, pEval_zw)), q) + t1 := mulmod(t1, mload(add(pMem, pAlpha)), q) + + t2 := mulmod( + mload(add(pMem, pEval_l1)), + mload(add(pMem, pAlpha)), + q + ) + + t2 := mulmod( + t2, + mload(add(pMem, pAlpha)), + q + ) + + t1 := addmod(t1, t2, q) + + t := mod(sub(add(t, q), t1), q) + t := mulmod(t, mload(add(pMem, pZhInv)), q) + + mstore( add(pMem, pEval_t) , t) + + } + + function g1_set(pR, pP) { + mstore(pR, mload(pP)) + mstore(add(pR, 32), mload(add(pP,32))) + } + + function g1_acc(pR, pP) { + let mIn := mload(0x40) + mstore(mIn, mload(pR)) + mstore(add(mIn,32), mload(add(pR, 32))) + mstore(add(mIn,64), mload(pP)) + mstore(add(mIn,96), mload(add(pP, 32))) + + let success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + function g1_mulAcc(pR, pP, s) { + let success + let mIn := mload(0x40) + mstore(mIn, mload(pP)) + mstore(add(mIn,32), mload(add(pP, 32))) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + mstore(add(mIn,64), mload(pR)) + mstore(add(mIn,96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + } + + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn,32), y) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + + mstore(add(mIn,64), mload(pR)) + mstore(add(mIn,96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + function g1_mulSetC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn,32), y) + mstore(add(mIn,64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0,0x20) + } + } + + + function calculateA1(pProof, pMem) { + let p := add(pMem, pA1) + g1_set(p, add(pProof, pWxi)) + g1_mulAcc(p, add(pProof, pWxiw), mload(add(pMem, pU))) + } + + + function calculateB1(pProof, pMem) { + let s + let s1 + let p := add(pMem, pB1) + + // Calculate D + s := mulmod( mload(add(pProof, pEval_a)), mload(add(pMem, pV1)), q) + g1_mulSetC(p, Qlx, Qly, s) + + s := mulmod( s, mload(add(pProof, pEval_b)), q) + g1_mulAccC(p, Qmx, Qmy, s) + + s := mulmod( mload(add(pProof, pEval_b)), mload(add(pMem, pV1)), q) + g1_mulAccC(p, Qrx, Qry, s) + + s := mulmod( mload(add(pProof, pEval_c)), mload(add(pMem, pV1)), q) + g1_mulAccC(p, Qox, Qoy, s) + + s :=mload(add(pMem, pV1)) + g1_mulAccC(p, Qcx, Qcy, s) + + s := addmod(mload(add(pProof, pEval_a)), mload(add(pMem, pBetaXi)), q) + s := addmod(s, mload(add(pMem, pGamma)), q) + s1 := mulmod(k1, mload(add(pMem, pBetaXi)), q) + s1 := addmod(s1, mload(add(pProof, pEval_b)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s1 := mulmod(k2, mload(add(pMem, pBetaXi)), q) + s1 := addmod(s1, mload(add(pProof, pEval_c)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s := mulmod(s, mload(add(pMem, pAlpha)), q) + s := mulmod(s, mload(add(pMem, pV1)), q) + s1 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q) + s1 := mulmod(s1, mload(add(pMem, pAlpha)), q) + s1 := mulmod(s1, mload(add(pMem, pV1)), q) + s := addmod(s, s1, q) + s := addmod(s, mload(add(pMem, pU)), q) + g1_mulAcc(p, add(pProof, pZ), s) + + s := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s1)), q) + s := addmod(s, mload(add(pProof, pEval_a)), q) + s := addmod(s, mload(add(pMem, pGamma)), q) + s1 := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s2)), q) + s1 := addmod(s1, mload(add(pProof, pEval_b)), q) + s1 := addmod(s1, mload(add(pMem, pGamma)), q) + s := mulmod(s, s1, q) + s := mulmod(s, mload(add(pMem, pAlpha)), q) + s := mulmod(s, mload(add(pMem, pV1)), q) + s := mulmod(s, mload(add(pMem, pBeta)), q) + s := mulmod(s, mload(add(pProof, pEval_zw)), q) + s := mod(sub(q, s), q) + g1_mulAccC(p, S3x, S3y, s) + + + // calculate F + g1_acc(p , add(pProof, pT1)) + + s := mload(add(pMem, pXin)) + g1_mulAcc(p, add(pProof, pT2), s) + + s := mulmod(s, s, q) + g1_mulAcc(p, add(pProof, pT3), s) + + g1_mulAcc(p, add(pProof, pA), mload(add(pMem, pV2))) + g1_mulAcc(p, add(pProof, pB), mload(add(pMem, pV3))) + g1_mulAcc(p, add(pProof, pC), mload(add(pMem, pV4))) + g1_mulAccC(p, S1x, S1y, mload(add(pMem, pV5))) + g1_mulAccC(p, S2x, S2y, mload(add(pMem, pV6))) + + // calculate E + s := mload(add(pMem, pEval_t)) + s := addmod(s, mulmod(mload(add(pProof, pEval_r)), mload(add(pMem, pV1)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV2)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV3)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV4)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pV5)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pV6)), q), q) + s := addmod(s, mulmod(mload(add(pProof, pEval_zw)), mload(add(pMem, pU)), q), q) + s := mod(sub(q, s), q) + g1_mulAccC(p, G1x, G1y, s) + + + // Last part of B + s := mload(add(pMem, pXi)) + g1_mulAcc(p, add(pProof, pWxi), s) + + s := mulmod(mload(add(pMem, pU)), mload(add(pMem, pXi)), q) + s := mulmod(s, w1, q) + g1_mulAcc(p, add(pProof, pWxiw), s) + + } + + function checkPairing(pMem) -> isOk { + let mIn := mload(0x40) + mstore(mIn, mload(add(pMem, pA1))) + mstore(add(mIn,32), mload(add(add(pMem, pA1), 32))) + mstore(add(mIn,64), X2x2) + mstore(add(mIn,96), X2x1) + mstore(add(mIn,128), X2y2) + mstore(add(mIn,160), X2y1) + mstore(add(mIn,192), mload(add(pMem, pB1))) + let s := mload(add(add(pMem, pB1), 32)) + s := mod(sub(qf, s), qf) + mstore(add(mIn,224), s) + mstore(add(mIn,256), G2x2) + mstore(add(mIn,288), G2x1) + mstore(add(mIn,320), G2y2) + mstore(add(mIn,352), G2y1) + + let success := staticcall(sub(gas(), 2000), 8, mIn, 384, mIn, 0x20) + + isOk := and(success, mload(mIn)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, lastMem)) + + checkInput(proof) + calculateChallanges(proof, pMem, pubSignals) + calculateLagrange(pMem) + calculatePl(pMem, pubSignals) + calculateT(proof, pMem) + calculateA1(proof, pMem) + calculateB1(proof, pMem) + let isValid := checkPairing(pMem) + + mstore(0x40, sub(pMem, lastMem)) + mstore(0, isValid) + return(0,0x20) + } + + } +} diff --git a/examples/bri-3/ccsm/hardhat.config.ts b/examples/bri-3/ccsm/hardhat.config.ts index d42525204..a3bacc505 100644 --- a/examples/bri-3/ccsm/hardhat.config.ts +++ b/examples/bri-3/ccsm/hardhat.config.ts @@ -1,16 +1,20 @@ -import { HardhatUserConfig } from "hardhat/config"; -import "@nomicfoundation/hardhat-toolbox"; +import { HardhatUserConfig } from 'hardhat/config'; +import '@nomicfoundation/hardhat-toolbox'; const config: HardhatUserConfig = { - solidity: "0.8.24", - defaultNetwork: "hardhat", + solidity: '0.8.24', + defaultNetwork: 'hardhat', networks: { sepolia: { - url: "https://sepolia.infura.io/v3/" + process.env.INFURA_PROVIDER_API_KEY, + url: + 'https://sepolia.infura.io/v3/' + process.env.INFURA_PROVIDER_API_KEY, accounts: process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], // TODO: Add test account for sepolia - } - } + }, + }, + paths: { + artifacts: '../ccsmArtifacts', + }, }; export default config; diff --git a/examples/bri-3/ccsm/test/CcsmBpiStateAnchor.ts b/examples/bri-3/ccsm/test/CcsmBpiStateAnchor.ts index 5d24c5af6..8f7c74b36 100644 --- a/examples/bri-3/ccsm/test/CcsmBpiStateAnchor.ts +++ b/examples/bri-3/ccsm/test/CcsmBpiStateAnchor.ts @@ -1,127 +1,187 @@ -import { - loadFixture, -} from "@nomicfoundation/hardhat-toolbox/network-helpers"; -import { expect } from "chai"; -import hre from "hardhat"; +import { loadFixture } from '@nomicfoundation/hardhat-toolbox/network-helpers'; +import { expect } from 'chai'; +import hre from 'hardhat'; -describe("CcsmBpiStateAnchor", function () { +describe('CcsmBpiStateAnchor', function () { async function deployCcsmBpiStateAnchor() { const [owner, otherAccount, adminAccount] = await hre.ethers.getSigners(); - const CcsmBpiStateAnchor = await hre.ethers.getContractFactory("CcsmBpiStateAnchor"); - const ccsmBpiStateAnchor = await CcsmBpiStateAnchor.deploy([await owner.getAddress(), await adminAccount.getAddress()]); + const CcsmBpiStateAnchor = await hre.ethers.getContractFactory( + 'CcsmBpiStateAnchor', + ); + const ccsmBpiStateAnchor = await CcsmBpiStateAnchor.deploy([ + await owner.getAddress(), + await adminAccount.getAddress(), + ]); return { ccsmBpiStateAnchor, owner, otherAccount, adminAccount }; } - describe("Deployment", function () { - it("Should deploy the contract", async function () { - const { ccsmBpiStateAnchor } = await loadFixture(deployCcsmBpiStateAnchor); + describe('Deployment', function () { + it('Should deploy the contract', async function () { + const { ccsmBpiStateAnchor } = await loadFixture( + deployCcsmBpiStateAnchor, + ); expect(await ccsmBpiStateAnchor.getAddress()).to.be.properAddress; }); - it("Should set the correct admin roles", async function () { - const { ccsmBpiStateAnchor, owner, adminAccount } = await loadFixture(deployCcsmBpiStateAnchor); + it('Should set the correct admin roles', async function () { + const { ccsmBpiStateAnchor, owner, adminAccount } = await loadFixture( + deployCcsmBpiStateAnchor, + ); const adminRole = await ccsmBpiStateAnchor.ADMIN_ROLE(); - expect(await ccsmBpiStateAnchor.hasRole(adminRole, owner.address)).to.be.true; - expect(await ccsmBpiStateAnchor.hasRole(adminRole, adminAccount.address)).to.be.true; + expect(await ccsmBpiStateAnchor.hasRole(adminRole, owner.address)).to.be + .true; + expect(await ccsmBpiStateAnchor.hasRole(adminRole, adminAccount.address)) + .to.be.true; }); }); - describe("setAnchorHash", function () { - it("Should allow an admin to set an anchor hash", async function () { - const { ccsmBpiStateAnchor, owner } = await loadFixture(deployCcsmBpiStateAnchor); - const workgroupId = "testWorkgroup"; - const anchorHash = "0x1234567890abcdef"; - - await expect(ccsmBpiStateAnchor.connect(owner).setAnchorHash(workgroupId, anchorHash)) - .to.emit(ccsmBpiStateAnchor, "AnchorHashSet") + describe('setAnchorHash', function () { + it('Should allow an admin to set an anchor hash', async function () { + const { ccsmBpiStateAnchor, owner } = await loadFixture( + deployCcsmBpiStateAnchor, + ); + const workgroupId = 'testWorkgroup'; + const anchorHash = '0x1234567890abcdef'; + + await expect( + ccsmBpiStateAnchor + .connect(owner) + .setAnchorHash(workgroupId, anchorHash), + ) + .to.emit(ccsmBpiStateAnchor, 'AnchorHashSet') .withArgs(workgroupId, anchorHash); - - expect(await ccsmBpiStateAnchor.anchorHashStore(workgroupId)).to.equal(anchorHash); + + expect(await ccsmBpiStateAnchor.anchorHashStore(workgroupId)).to.equal( + anchorHash, + ); }); - it("Should not allow a non-admin to set an anchor hash", async function () { - const { ccsmBpiStateAnchor, otherAccount } = await loadFixture(deployCcsmBpiStateAnchor); - const workgroupId = "testWorkgroup"; - const anchorHash = "0x1234567890abcdef"; - - await expect(ccsmBpiStateAnchor.connect(otherAccount).setAnchorHash(workgroupId, anchorHash)) - .to.be.revertedWith("Only admin can call this function"); + it('Should not allow a non-admin to set an anchor hash', async function () { + const { ccsmBpiStateAnchor, otherAccount } = await loadFixture( + deployCcsmBpiStateAnchor, + ); + const workgroupId = 'testWorkgroup'; + const anchorHash = '0x1234567890abcdef'; + + await expect( + ccsmBpiStateAnchor + .connect(otherAccount) + .setAnchorHash(workgroupId, anchorHash), + ).to.be.revertedWith('Only admin can call this function'); }); - it("Should revert when workgroupId is empty", async function () { - const { ccsmBpiStateAnchor, owner } = await loadFixture(deployCcsmBpiStateAnchor); - const anchorHash = "0x1234567890abcdef"; - - await expect(ccsmBpiStateAnchor.connect(owner).setAnchorHash("", anchorHash)) - .to.be.revertedWith("WorkgroupId cannot be empty"); + it('Should revert when workgroupId is empty', async function () { + const { ccsmBpiStateAnchor, owner } = await loadFixture( + deployCcsmBpiStateAnchor, + ); + const anchorHash = '0x1234567890abcdef'; + + await expect( + ccsmBpiStateAnchor.connect(owner).setAnchorHash('', anchorHash), + ).to.be.revertedWith('WorkgroupId cannot be empty'); }); - it("Should revert when workgroupId exceeds 36 bytes", async function () { - const { ccsmBpiStateAnchor, owner } = await loadFixture(deployCcsmBpiStateAnchor); - const longWorkgroupId = "a".repeat(37); - const anchorHash = "0x1234567890abcdef"; - - await expect(ccsmBpiStateAnchor.connect(owner).setAnchorHash(longWorkgroupId, anchorHash)) - .to.be.revertedWith("WorkgroupId cannot exceed 36 bytes"); + it('Should revert when workgroupId exceeds 36 bytes', async function () { + const { ccsmBpiStateAnchor, owner } = await loadFixture( + deployCcsmBpiStateAnchor, + ); + const longWorkgroupId = 'a'.repeat(37); + const anchorHash = '0x1234567890abcdef'; + + await expect( + ccsmBpiStateAnchor + .connect(owner) + .setAnchorHash(longWorkgroupId, anchorHash), + ).to.be.revertedWith('WorkgroupId cannot exceed 36 bytes'); }); - it("Should revert when anchorHash is empty", async function () { - const { ccsmBpiStateAnchor, owner } = await loadFixture(deployCcsmBpiStateAnchor); - const workgroupId = "testWorkgroup"; - - await expect(ccsmBpiStateAnchor.connect(owner).setAnchorHash(workgroupId, "")) - .to.be.revertedWith("AnchorHash cannot be empty"); + it('Should revert when anchorHash is empty', async function () { + const { ccsmBpiStateAnchor, owner } = await loadFixture( + deployCcsmBpiStateAnchor, + ); + const workgroupId = 'testWorkgroup'; + + await expect( + ccsmBpiStateAnchor.connect(owner).setAnchorHash(workgroupId, ''), + ).to.be.revertedWith('AnchorHash cannot be empty'); }); - it("Should revert when anchorHash exceeds 256 bytes", async function () { - const { ccsmBpiStateAnchor, owner } = await loadFixture(deployCcsmBpiStateAnchor); - const workgroupId = "testWorkgroup"; - const longAnchorHash = "0x" + "a".repeat(257); - - await expect(ccsmBpiStateAnchor.connect(owner).setAnchorHash(workgroupId, longAnchorHash)) - .to.be.revertedWith("AnchorHash cannot exceed 256 bytes"); + it('Should revert when anchorHash exceeds 256 bytes', async function () { + const { ccsmBpiStateAnchor, owner } = await loadFixture( + deployCcsmBpiStateAnchor, + ); + const workgroupId = 'testWorkgroup'; + const longAnchorHash = '0x' + 'a'.repeat(257); + + await expect( + ccsmBpiStateAnchor + .connect(owner) + .setAnchorHash(workgroupId, longAnchorHash), + ).to.be.revertedWith('AnchorHash cannot exceed 256 bytes'); }); }); - describe("getAnchorHash", function () { - it("Should return the correct anchor hash for a given workgroupId", async function () { - const { ccsmBpiStateAnchor, owner } = await loadFixture(deployCcsmBpiStateAnchor); - const workgroupId = "testWorkgroup"; - const anchorHash = "0x1234567890abcdef"; - - await ccsmBpiStateAnchor.connect(owner).setAnchorHash(workgroupId, anchorHash); - expect(await ccsmBpiStateAnchor.getAnchorHash(workgroupId)).to.equal(anchorHash); + describe('getAnchorHash', function () { + it('Should return the correct anchor hash for a given workgroupId', async function () { + const { ccsmBpiStateAnchor, owner } = await loadFixture( + deployCcsmBpiStateAnchor, + ); + const workgroupId = 'testWorkgroup'; + const anchorHash = '0x1234567890abcdef'; + + await ccsmBpiStateAnchor + .connect(owner) + .setAnchorHash(workgroupId, anchorHash); + expect(await ccsmBpiStateAnchor.getAnchorHash(workgroupId)).to.equal( + anchorHash, + ); }); - it("Should return an empty string for a non-existent workgroupId", async function () { - const { ccsmBpiStateAnchor } = await loadFixture(deployCcsmBpiStateAnchor); - const nonExistentWorkgroupId = "nonExistent"; - - expect(await ccsmBpiStateAnchor.getAnchorHash(nonExistentWorkgroupId)).to.equal(""); + it('Should return an empty string for a non-existent workgroupId', async function () { + const { ccsmBpiStateAnchor } = await loadFixture( + deployCcsmBpiStateAnchor, + ); + const nonExistentWorkgroupId = 'nonExistent'; + + expect( + await ccsmBpiStateAnchor.getAnchorHash(nonExistentWorkgroupId), + ).to.equal(''); }); }); - describe("AccessControl", function () { - it("Should allow the owner to grant admin role", async function () { - const { ccsmBpiStateAnchor, owner, otherAccount } = await loadFixture(deployCcsmBpiStateAnchor); + describe('AccessControl', function () { + it('Should allow the owner to grant admin role', async function () { + const { ccsmBpiStateAnchor, owner, otherAccount } = await loadFixture( + deployCcsmBpiStateAnchor, + ); const adminRole = await ccsmBpiStateAnchor.ADMIN_ROLE(); - - await expect(ccsmBpiStateAnchor.connect(owner).grantRole(adminRole, otherAccount.address)) - .to.not.be.reverted; - - expect(await ccsmBpiStateAnchor.hasRole(adminRole, otherAccount.address)).to.be.true; + + await expect( + ccsmBpiStateAnchor + .connect(owner) + .grantRole(adminRole, otherAccount.address), + ).to.not.be.reverted; + + expect(await ccsmBpiStateAnchor.hasRole(adminRole, otherAccount.address)) + .to.be.true; }); - it("Should allow the owner to revoke admin role", async function () { - const { ccsmBpiStateAnchor, owner, adminAccount } = await loadFixture(deployCcsmBpiStateAnchor); + it('Should allow the owner to revoke admin role', async function () { + const { ccsmBpiStateAnchor, owner, adminAccount } = await loadFixture( + deployCcsmBpiStateAnchor, + ); const adminRole = await ccsmBpiStateAnchor.ADMIN_ROLE(); - - await expect(ccsmBpiStateAnchor.connect(owner).revokeRole(adminRole, adminAccount.address)) - .to.not.be.reverted; - - expect(await ccsmBpiStateAnchor.hasRole(adminRole, adminAccount.address)).to.be.false; + + await expect( + ccsmBpiStateAnchor + .connect(owner) + .revokeRole(adminRole, adminAccount.address), + ).to.not.be.reverted; + + expect(await ccsmBpiStateAnchor.hasRole(adminRole, adminAccount.address)) + .to.be.false; }); }); }); diff --git a/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json new file mode 100644 index 000000000..9813f7632 --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/a7326b529c767f8dc53ea81689820584.json" +} diff --git a/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json new file mode 100644 index 000000000..68fb7833e --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json @@ -0,0 +1,236 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "AccessControl", + "sourceName": "@openzeppelin/contracts/access/AccessControl.sol", + "abi": [ + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json new file mode 100644 index 000000000..9813f7632 --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/a7326b529c767f8dc53ea81689820584.json" +} diff --git a/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json new file mode 100644 index 000000000..cdd4cba9d --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json @@ -0,0 +1,204 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IAccessControl", + "sourceName": "@openzeppelin/contracts/access/IAccessControl.sol", + "abi": [ + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json new file mode 100644 index 000000000..9813f7632 --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/a7326b529c767f8dc53ea81689820584.json" +} diff --git a/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/Context.sol/Context.json b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/Context.sol/Context.json new file mode 100644 index 000000000..8fe86fc78 --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/Context.sol/Context.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Context", + "sourceName": "@openzeppelin/contracts/utils/Context.sol", + "abi": [], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json new file mode 100644 index 000000000..fc15b38f2 --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/a7326b529c767f8dc53ea81689820584.json" +} diff --git a/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json new file mode 100644 index 000000000..1304472c7 --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json @@ -0,0 +1,30 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC165", + "sourceName": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json new file mode 100644 index 000000000..fc15b38f2 --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/a7326b529c767f8dc53ea81689820584.json" +} diff --git a/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json new file mode 100644 index 000000000..ff87f91ee --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json @@ -0,0 +1,30 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC165", + "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/bri-3/ccsmArtifacts/CcsmBpiStateAnchor.dbg.json b/examples/bri-3/ccsmArtifacts/CcsmBpiStateAnchor.dbg.json deleted file mode 100644 index e1fe82f61..000000000 --- a/examples/bri-3/ccsmArtifacts/CcsmBpiStateAnchor.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/5a6ec668fd45d880d97961ca08c5c65e.json" -} diff --git a/examples/bri-3/ccsmArtifacts/build-info/a7326b529c767f8dc53ea81689820584.json b/examples/bri-3/ccsmArtifacts/build-info/a7326b529c767f8dc53ea81689820584.json new file mode 100644 index 000000000..08e580807 --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/build-info/a7326b529c767f8dc53ea81689820584.json @@ -0,0 +1 @@ +{"id":"a7326b529c767f8dc53ea81689820584","_format":"hh-sol-build-info-1","solcVersion":"0.8.24","solcLongVersion":"0.8.24+commit.e11b9ed9","input":{"language":"Solidity","sources":{"@openzeppelin/contracts/access/AccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.20;\n\nimport {IAccessControl} from \"./IAccessControl.sol\";\nimport {Context} from \"../utils/Context.sol\";\nimport {ERC165} from \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```solidity\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```solidity\n * function foo() public {\n * require(hasRole(MY_ROLE, msg.sender));\n * ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n * to enforce additional security measures for this role.\n */\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\n struct RoleData {\n mapping(address account => bool) hasRole;\n bytes32 adminRole;\n }\n\n mapping(bytes32 role => RoleData) private _roles;\n\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n /**\n * @dev Modifier that checks that an account has a specific role. Reverts\n * with an {AccessControlUnauthorizedAccount} error including the required role.\n */\n modifier onlyRole(bytes32 role) {\n _checkRole(role);\n _;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) public view virtual returns (bool) {\n return _roles[role].hasRole[account];\n }\n\n /**\n * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n * is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier.\n */\n function _checkRole(bytes32 role) internal view virtual {\n _checkRole(role, _msgSender());\n }\n\n /**\n * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n * is missing `role`.\n */\n function _checkRole(bytes32 role, address account) internal view virtual {\n if (!hasRole(role, account)) {\n revert AccessControlUnauthorizedAccount(account, role);\n }\n }\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) public view virtual returns (bytes32) {\n return _roles[role].adminRole;\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleGranted} event.\n */\n function grantRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n _grantRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleRevoked} event.\n */\n function revokeRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n _revokeRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been revoked `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `callerConfirmation`.\n *\n * May emit a {RoleRevoked} event.\n */\n function renounceRole(bytes32 role, address callerConfirmation) public virtual {\n if (callerConfirmation != _msgSender()) {\n revert AccessControlBadConfirmation();\n }\n\n _revokeRole(role, callerConfirmation);\n }\n\n /**\n * @dev Sets `adminRole` as ``role``'s admin role.\n *\n * Emits a {RoleAdminChanged} event.\n */\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n bytes32 previousAdminRole = getRoleAdmin(role);\n _roles[role].adminRole = adminRole;\n emit RoleAdminChanged(role, previousAdminRole, adminRole);\n }\n\n /**\n * @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleGranted} event.\n */\n function _grantRole(bytes32 role, address account) internal virtual returns (bool) {\n if (!hasRole(role, account)) {\n _roles[role].hasRole[account] = true;\n emit RoleGranted(role, account, _msgSender());\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleRevoked} event.\n */\n function _revokeRole(bytes32 role, address account) internal virtual returns (bool) {\n if (hasRole(role, account)) {\n _roles[role].hasRole[account] = false;\n emit RoleRevoked(role, account, _msgSender());\n return true;\n } else {\n return false;\n }\n }\n}\n"},"@openzeppelin/contracts/access/IAccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/IAccessControl.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n /**\n * @dev The `account` is missing a role.\n */\n error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);\n\n /**\n * @dev The caller of a function is not the expected one.\n *\n * NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\n */\n error AccessControlBadConfirmation();\n\n /**\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n *\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n * {RoleAdminChanged} not being emitted signaling this.\n */\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n /**\n * @dev Emitted when `account` is granted `role`.\n *\n * `sender` is the account that originated the contract call, an admin role\n * bearer except when using {AccessControl-_setupRole}.\n */\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Emitted when `account` is revoked `role`.\n *\n * `sender` is the account that originated the contract call:\n * - if using `revokeRole`, it is the admin role bearer\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\n */\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) external view returns (bool);\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been granted `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `callerConfirmation`.\n */\n function renounceRole(bytes32 role, address callerConfirmation) external;\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"contracts/CcsmBpiStateAnchor.sol":{"content":"//SPDX-License-Identifier: UNLICENSED\npragma solidity 0.8.24;\n\nimport '@openzeppelin/contracts/access/AccessControl.sol';\n\ncontract CcsmBpiStateAnchor is AccessControl {\n mapping(string => string) public anchorHashStore;\n event AnchorHashSet(string indexed workgroupId, string anchorHash);\n\n bytes32 public constant ADMIN_ROLE = keccak256('ADMIN_ROLE');\n\n constructor(address[] memory admins) {\n _grantRole(DEFAULT_ADMIN_ROLE, msg.sender); // Grant deployer the default admin role\n\n for (uint i = 0; i < admins.length; i++) {\n _grantRole(ADMIN_ROLE, admins[i]); // Grant admin role to each address\n }\n }\n\n function setAnchorHash(\n string calldata _workgroupId,\n string calldata _anchorHash\n ) external onlyAdmin {\n require(bytes(_workgroupId).length > 0, 'WorkgroupId cannot be empty');\n require(\n bytes(_workgroupId).length < 36,\n 'WorkgroupId cannot exceed 36 bytes'\n );\n require(bytes(_anchorHash).length > 0, 'AnchorHash cannot be empty');\n require(\n bytes(_anchorHash).length <= 256,\n 'AnchorHash cannot exceed 256 bytes'\n );\n\n anchorHashStore[_workgroupId] = _anchorHash;\n\n emit AnchorHashSet(_workgroupId, _anchorHash);\n }\n\n function getAnchorHash(\n string calldata _workgroupId\n ) external view returns (string memory) {\n return anchorHashStore[_workgroupId];\n }\n\n modifier onlyAdmin() {\n require(\n hasRole(ADMIN_ROLE, msg.sender),\n 'Only admin can call this function'\n );\n _;\n }\n}\n"},"contracts/workstep1Verifier.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\n/*\n Copyright 2021 0KIMS association.\n\n This file is generated with [snarkJS](https://github.com/iden3/snarkjs).\n\n snarkJS is a free software: you can redistribute it and/or modify it\n under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n snarkJS is distributed in the hope that it will be useful, but WITHOUT\n ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n License for more details.\n\n You should have received a copy of the GNU General Public License\n along with snarkJS. If not, see .\n*/\n\n\npragma solidity >=0.7.0 <0.9.0;\n\ncontract PlonkVerifier {\n \n uint32 constant n = 32768;\n uint16 constant nPublic = 1;\n uint16 constant nLagrange = 1;\n \n uint256 constant Qmx = 10194515970599655109282911583529565849380113195932357171927870801826137307774;\n uint256 constant Qmy = 13140940011443490941222100702885231336933018003050133753669339785410949789318;\n uint256 constant Qlx = 9075702821792504836345109031609121656336462373875253577566881197906035654776;\n uint256 constant Qly = 18954037199706809918078978569604036271719091221321522515280996454686959634667;\n uint256 constant Qrx = 14125739754959425112951448565023067073272356473857387194868146753139341737481;\n uint256 constant Qry = 9211804802878452259667024877839323417493810024412294758516974036979308136919;\n uint256 constant Qox = 13352593265832352698392334901719590216083652550510765281779096890792086115148;\n uint256 constant Qoy = 21171212246999274828233761278619486390083267569257427931416020748289597739922;\n uint256 constant Qcx = 5480056686458973564008058219103481932927511500969774465272533080708796456916;\n uint256 constant Qcy = 18487662305128159302246915279383311188386526722958024410734396746249896900994;\n uint256 constant S1x = 17437666502495807466379659324529146642963221649250738321282955596403801525575;\n uint256 constant S1y = 18377485979133540239288926929244885650557281677382052473844064353786021038654;\n uint256 constant S2x = 10333151760014968029254102863611638785552971938423162339326135439408834116154;\n uint256 constant S2y = 6543452700579038735255020802571735600538633455576730189571594753630185539443;\n uint256 constant S3x = 8285393960618857014807148089475294222094460765549151605952886640511103409207;\n uint256 constant S3y = 11915398849747589245935203954132611261473678566697922313039161652306295887431;\n uint256 constant k1 = 2;\n uint256 constant k2 = 3;\n uint256 constant X2x1 = 7550171141489642323345496683737244277083256424004707715998483409540040587466;\n uint256 constant X2x2 = 13674327281456600895607819848682159502956608479735975762218411599033981559968;\n uint256 constant X2y1 = 16329427655915944908484974060898761683974646318074639198003187154525254176520;\n uint256 constant X2y2 = 19604631653040203911523494213678188005987622194545572529608835183936569820990;\n \n uint256 constant q = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n uint256 constant qf = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n uint256 constant w1 = 20402931748843538985151001264530049874871572933694634836567070693966133783803; \n \n uint256 constant G1x = 1;\n uint256 constant G1y = 2;\n uint256 constant G2x1 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;\n uint256 constant G2x2 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;\n uint256 constant G2y1 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;\n uint256 constant G2y2 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;\n uint16 constant pA = 32;\n uint16 constant pB = 96;\n uint16 constant pC = 160;\n uint16 constant pZ = 224;\n uint16 constant pT1 = 288;\n uint16 constant pT2 = 352;\n uint16 constant pT3 = 416;\n uint16 constant pWxi = 480;\n uint16 constant pWxiw = 544;\n uint16 constant pEval_a = 608;\n uint16 constant pEval_b = 640;\n uint16 constant pEval_c = 672;\n uint16 constant pEval_s1 = 704;\n uint16 constant pEval_s2 = 736;\n uint16 constant pEval_zw = 768;\n uint16 constant pEval_r = 800;\n \n uint16 constant pAlpha = 0;\n uint16 constant pBeta = 32;\n uint16 constant pGamma = 64;\n uint16 constant pXi = 96;\n uint16 constant pXin = 128;\n uint16 constant pBetaXi = 160;\n uint16 constant pV1 = 192;\n uint16 constant pV2 = 224;\n uint16 constant pV3 = 256;\n uint16 constant pV4 = 288;\n uint16 constant pV5 = 320;\n uint16 constant pV6 = 352;\n uint16 constant pU = 384;\n uint16 constant pPl = 416;\n uint16 constant pEval_t = 448;\n uint16 constant pA1 = 480;\n uint16 constant pB1 = 544;\n uint16 constant pZh = 608;\n uint16 constant pZhInv = 640;\n \n uint16 constant pEval_l1 = 672;\n \n \n \n uint16 constant lastMem = 704;\n\n function verifyProof(bytes memory proof, uint[] memory pubSignals) public view returns (bool) {\n assembly {\n /////////\n // Computes the inverse using the extended euclidean algorithm\n /////////\n function inverse(a, q) -> inv {\n let t := 0 \n let newt := 1\n let r := q \n let newr := a\n let quotient\n let aux\n \n for { } newr { } {\n quotient := sdiv(r, newr)\n aux := sub(t, mul(quotient, newt))\n t:= newt\n newt:= aux\n \n aux := sub(r,mul(quotient, newr))\n r := newr\n newr := aux\n }\n \n if gt(r, 1) { revert(0,0) }\n if slt(t, 0) { t:= add(t, q) }\n\n inv := t\n }\n \n ///////\n // Computes the inverse of an array of values\n // See https://vitalik.ca/general/2018/07/21/starks_part_3.html in section where explain fields operations\n //////\n function inverseArray(pVals, n) {\n \n let pAux := mload(0x40) // Point to the next free position\n let pIn := pVals\n let lastPIn := add(pVals, mul(n, 32)) // Read n elemnts\n let acc := mload(pIn) // Read the first element\n pIn := add(pIn, 32) // Point to the second element\n let inv\n \n \n for { } lt(pIn, lastPIn) { \n pAux := add(pAux, 32) \n pIn := add(pIn, 32)\n } \n {\n mstore(pAux, acc)\n acc := mulmod(acc, mload(pIn), q)\n }\n acc := inverse(acc, q)\n \n // At this point pAux pint to the next free position we substract 1 to point to the last used\n pAux := sub(pAux, 32)\n // pIn points to the n+1 element, we substract to point to n\n pIn := sub(pIn, 32)\n lastPIn := pVals // We don't process the first element \n for { } gt(pIn, lastPIn) { \n pAux := sub(pAux, 32) \n pIn := sub(pIn, 32)\n } \n {\n inv := mulmod(acc, mload(pAux), q)\n acc := mulmod(acc, mload(pIn), q)\n mstore(pIn, inv)\n }\n // pIn points to first element, we just set it.\n mstore(pIn, acc)\n }\n \n function checkField(v) {\n if iszero(lt(v, q)) {\n mstore(0, 0)\n return(0,0x20)\n }\n }\n \n function checkInput(pProof) {\n if iszero(eq(mload(pProof), 800 )) {\n mstore(0, 0)\n return(0,0x20)\n }\n checkField(mload(add(pProof, pEval_a)))\n checkField(mload(add(pProof, pEval_b)))\n checkField(mload(add(pProof, pEval_c)))\n checkField(mload(add(pProof, pEval_s1)))\n checkField(mload(add(pProof, pEval_s2)))\n checkField(mload(add(pProof, pEval_zw)))\n checkField(mload(add(pProof, pEval_r)))\n\n // Points are checked in the point operations precompiled smart contracts\n }\n \n function calculateChallanges(pProof, pMem, pPublic) {\n \n let a\n let b\n\n \n mstore( add(pMem, 704 ), mload( add( pPublic, 32)))\n \n mstore( add(pMem, 736 ), mload( add( pProof, pA)))\n mstore( add(pMem, 768 ), mload( add( pProof, add(pA,32))))\n mstore( add(pMem, 800 ), mload( add( pProof, add(pA,64))))\n mstore( add(pMem, 832 ), mload( add( pProof, add(pA,96))))\n mstore( add(pMem, 864 ), mload( add( pProof, add(pA,128))))\n mstore( add(pMem, 896 ), mload( add( pProof, add(pA,160))))\n \n b := mod(keccak256(add(pMem, lastMem), 224), q) \n mstore( add(pMem, pBeta), b)\n mstore( add(pMem, pGamma), mod(keccak256(add(pMem, pBeta), 32), q))\n mstore( add(pMem, pAlpha), mod(keccak256(add(pProof, pZ), 64), q))\n \n a := mod(keccak256(add(pProof, pT1), 192), q)\n mstore( add(pMem, pXi), a)\n mstore( add(pMem, pBetaXi), mulmod(b, a, q))\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n mstore( add(pMem, pXin), a)\n a:= mod(add(sub(a, 1),q), q)\n mstore( add(pMem, pZh), a)\n mstore( add(pMem, pZhInv), a) // We will invert later together with lagrange pols\n \n let v1 := mod(keccak256(add(pProof, pEval_a), 224), q)\n mstore( add(pMem, pV1), v1)\n a := mulmod(v1, v1, q)\n mstore( add(pMem, pV2), a)\n a := mulmod(a, v1, q)\n mstore( add(pMem, pV3), a)\n a := mulmod(a, v1, q)\n mstore( add(pMem, pV4), a)\n a := mulmod(a, v1, q)\n mstore( add(pMem, pV5), a)\n a := mulmod(a, v1, q)\n mstore( add(pMem, pV6), a)\n \n mstore( add(pMem, pU), mod(keccak256(add(pProof, pWxi), 128), q))\n }\n \n function calculateLagrange(pMem) {\n\n let w := 1 \n \n mstore(\n add(pMem, pEval_l1), \n mulmod(\n n, \n mod(\n add(\n sub(\n mload(add(pMem, pXi)), \n w\n ), \n q\n ),\n q\n ), \n q\n )\n )\n \n \n \n inverseArray(add(pMem, pZhInv), 2 )\n \n let zh := mload(add(pMem, pZh))\n w := 1\n \n \n mstore(\n add(pMem, pEval_l1 ), \n mulmod(\n mload(add(pMem, pEval_l1 )),\n zh,\n q\n )\n )\n \n \n \n\n\n }\n \n function calculatePl(pMem, pPub) {\n let pl := 0\n \n \n pl := mod(\n add(\n sub(\n pl, \n mulmod(\n mload(add(pMem, pEval_l1)),\n mload(add(pPub, 32)),\n q\n )\n ),\n q\n ),\n q\n )\n \n \n mstore(add(pMem, pPl), pl)\n \n\n }\n\n function calculateT(pProof, pMem) {\n let t\n let t1\n let t2\n t := addmod(\n mload(add(pProof, pEval_r)), \n mload(add(pMem, pPl)), \n q\n )\n \n t1 := mulmod(\n mload(add(pProof, pEval_s1)),\n mload(add(pMem, pBeta)),\n q\n )\n\n t1 := addmod(\n t1,\n mload(add(pProof, pEval_a)),\n q\n )\n \n t1 := addmod(\n t1,\n mload(add(pMem, pGamma)),\n q\n )\n\n t2 := mulmod(\n mload(add(pProof, pEval_s2)),\n mload(add(pMem, pBeta)),\n q\n )\n\n t2 := addmod(\n t2,\n mload(add(pProof, pEval_b)),\n q\n )\n \n t2 := addmod(\n t2,\n mload(add(pMem, pGamma)),\n q\n )\n \n t1 := mulmod(t1, t2, q)\n \n t2 := addmod(\n mload(add(pProof, pEval_c)),\n mload(add(pMem, pGamma)),\n q\n )\n\n t1 := mulmod(t1, t2, q)\n t1 := mulmod(t1, mload(add(pProof, pEval_zw)), q)\n t1 := mulmod(t1, mload(add(pMem, pAlpha)), q)\n \n t2 := mulmod(\n mload(add(pMem, pEval_l1)), \n mload(add(pMem, pAlpha)), \n q\n )\n\n t2 := mulmod(\n t2, \n mload(add(pMem, pAlpha)), \n q\n )\n\n t1 := addmod(t1, t2, q)\n \n t := mod(sub(add(t, q), t1), q)\n t := mulmod(t, mload(add(pMem, pZhInv)), q)\n \n mstore( add(pMem, pEval_t) , t)\n\n }\n \n function g1_set(pR, pP) {\n mstore(pR, mload(pP))\n mstore(add(pR, 32), mload(add(pP,32)))\n }\n\n function g1_acc(pR, pP) {\n let mIn := mload(0x40)\n mstore(mIn, mload(pR))\n mstore(add(mIn,32), mload(add(pR, 32)))\n mstore(add(mIn,64), mload(pP))\n mstore(add(mIn,96), mload(add(pP, 32)))\n\n let success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n }\n\n function g1_mulAcc(pR, pP, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, mload(pP))\n mstore(add(mIn,32), mload(add(pP, 32)))\n mstore(add(mIn,64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n \n mstore(add(mIn,64), mload(pR))\n mstore(add(mIn,96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n \n }\n\n function g1_mulAccC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn,32), y)\n mstore(add(mIn,64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n \n mstore(add(mIn,64), mload(pR))\n mstore(add(mIn,96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n }\n\n function g1_mulSetC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn,32), y)\n mstore(add(mIn,64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, pR, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n }\n\n\n function calculateA1(pProof, pMem) {\n let p := add(pMem, pA1)\n g1_set(p, add(pProof, pWxi))\n g1_mulAcc(p, add(pProof, pWxiw), mload(add(pMem, pU)))\n }\n \n \n function calculateB1(pProof, pMem) {\n let s\n let s1\n let p := add(pMem, pB1)\n \n // Calculate D\n s := mulmod( mload(add(pProof, pEval_a)), mload(add(pMem, pV1)), q)\n g1_mulSetC(p, Qlx, Qly, s)\n\n s := mulmod( s, mload(add(pProof, pEval_b)), q) \n g1_mulAccC(p, Qmx, Qmy, s)\n\n s := mulmod( mload(add(pProof, pEval_b)), mload(add(pMem, pV1)), q)\n g1_mulAccC(p, Qrx, Qry, s)\n \n s := mulmod( mload(add(pProof, pEval_c)), mload(add(pMem, pV1)), q)\n g1_mulAccC(p, Qox, Qoy, s)\n\n s :=mload(add(pMem, pV1))\n g1_mulAccC(p, Qcx, Qcy, s)\n\n s := addmod(mload(add(pProof, pEval_a)), mload(add(pMem, pBetaXi)), q)\n s := addmod(s, mload(add(pMem, pGamma)), q)\n s1 := mulmod(k1, mload(add(pMem, pBetaXi)), q)\n s1 := addmod(s1, mload(add(pProof, pEval_b)), q)\n s1 := addmod(s1, mload(add(pMem, pGamma)), q)\n s := mulmod(s, s1, q)\n s1 := mulmod(k2, mload(add(pMem, pBetaXi)), q)\n s1 := addmod(s1, mload(add(pProof, pEval_c)), q)\n s1 := addmod(s1, mload(add(pMem, pGamma)), q)\n s := mulmod(s, s1, q)\n s := mulmod(s, mload(add(pMem, pAlpha)), q)\n s := mulmod(s, mload(add(pMem, pV1)), q)\n s1 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q)\n s1 := mulmod(s1, mload(add(pMem, pAlpha)), q)\n s1 := mulmod(s1, mload(add(pMem, pV1)), q)\n s := addmod(s, s1, q)\n s := addmod(s, mload(add(pMem, pU)), q)\n g1_mulAcc(p, add(pProof, pZ), s)\n \n s := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s1)), q)\n s := addmod(s, mload(add(pProof, pEval_a)), q)\n s := addmod(s, mload(add(pMem, pGamma)), q)\n s1 := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s2)), q)\n s1 := addmod(s1, mload(add(pProof, pEval_b)), q)\n s1 := addmod(s1, mload(add(pMem, pGamma)), q)\n s := mulmod(s, s1, q)\n s := mulmod(s, mload(add(pMem, pAlpha)), q)\n s := mulmod(s, mload(add(pMem, pV1)), q)\n s := mulmod(s, mload(add(pMem, pBeta)), q)\n s := mulmod(s, mload(add(pProof, pEval_zw)), q)\n s := mod(sub(q, s), q)\n g1_mulAccC(p, S3x, S3y, s)\n\n\n // calculate F\n g1_acc(p , add(pProof, pT1))\n\n s := mload(add(pMem, pXin))\n g1_mulAcc(p, add(pProof, pT2), s)\n \n s := mulmod(s, s, q)\n g1_mulAcc(p, add(pProof, pT3), s)\n \n g1_mulAcc(p, add(pProof, pA), mload(add(pMem, pV2)))\n g1_mulAcc(p, add(pProof, pB), mload(add(pMem, pV3)))\n g1_mulAcc(p, add(pProof, pC), mload(add(pMem, pV4)))\n g1_mulAccC(p, S1x, S1y, mload(add(pMem, pV5)))\n g1_mulAccC(p, S2x, S2y, mload(add(pMem, pV6)))\n \n // calculate E\n s := mload(add(pMem, pEval_t))\n s := addmod(s, mulmod(mload(add(pProof, pEval_r)), mload(add(pMem, pV1)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV2)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV3)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV4)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pV5)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pV6)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_zw)), mload(add(pMem, pU)), q), q)\n s := mod(sub(q, s), q)\n g1_mulAccC(p, G1x, G1y, s)\n \n \n // Last part of B\n s := mload(add(pMem, pXi))\n g1_mulAcc(p, add(pProof, pWxi), s)\n\n s := mulmod(mload(add(pMem, pU)), mload(add(pMem, pXi)), q)\n s := mulmod(s, w1, q)\n g1_mulAcc(p, add(pProof, pWxiw), s)\n\n }\n \n function checkPairing(pMem) -> isOk {\n let mIn := mload(0x40)\n mstore(mIn, mload(add(pMem, pA1)))\n mstore(add(mIn,32), mload(add(add(pMem, pA1), 32)))\n mstore(add(mIn,64), X2x2)\n mstore(add(mIn,96), X2x1)\n mstore(add(mIn,128), X2y2)\n mstore(add(mIn,160), X2y1)\n mstore(add(mIn,192), mload(add(pMem, pB1)))\n let s := mload(add(add(pMem, pB1), 32))\n s := mod(sub(qf, s), qf)\n mstore(add(mIn,224), s)\n mstore(add(mIn,256), G2x2)\n mstore(add(mIn,288), G2x1)\n mstore(add(mIn,320), G2y2)\n mstore(add(mIn,352), G2y1)\n \n let success := staticcall(sub(gas(), 2000), 8, mIn, 384, mIn, 0x20)\n \n isOk := and(success, mload(mIn))\n }\n \n let pMem := mload(0x40)\n mstore(0x40, add(pMem, lastMem))\n \n checkInput(proof)\n calculateChallanges(proof, pMem, pubSignals)\n calculateLagrange(pMem)\n calculatePl(pMem, pubSignals)\n calculateT(proof, pMem)\n calculateA1(proof, pMem)\n calculateB1(proof, pMem)\n let isValid := checkPairing(pMem)\n \n mstore(0x40, sub(pMem, lastMem))\n mstore(0, isValid)\n return(0,0x20)\n }\n \n }\n}\n"},"contracts/workstep2Verifier.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\n/*\n Copyright 2021 0KIMS association.\n\n This file is generated with [snarkJS](https://github.com/iden3/snarkjs).\n\n snarkJS is a free software: you can redistribute it and/or modify it\n under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n snarkJS is distributed in the hope that it will be useful, but WITHOUT\n ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n License for more details.\n\n You should have received a copy of the GNU General Public License\n along with snarkJS. If not, see .\n*/\n\n\npragma solidity >=0.7.0 <0.9.0;\n\ncontract PlonkVerifier {\n \n uint32 constant n = 32768;\n uint16 constant nPublic = 1;\n uint16 constant nLagrange = 1;\n \n uint256 constant Qmx = 9031014201334786598437474819333373897984837472962630324851335361844058545780;\n uint256 constant Qmy = 16607210786086921981367283815049778740600968770620223098147538097138430537595;\n uint256 constant Qlx = 6808278280485306759745548891536191162342236099697633650996345740914224220305;\n uint256 constant Qly = 3270170195800647956439730797339220040656917583598598133609260645618986123588;\n uint256 constant Qrx = 6148500901704548782540313024093324774763190834353235759778239054380115761181;\n uint256 constant Qry = 17496928704547418787249113629100332597587390388927992302390890724367334325226;\n uint256 constant Qox = 21659278811951783556483125629272843184764885478213749993598444862278045884755;\n uint256 constant Qoy = 16660597475205619545281468126006239987539267348200340592793952148487504874309;\n uint256 constant Qcx = 5305510349838087338783547875566294471771494030996437605662252026376037082958;\n uint256 constant Qcy = 19377334097772342373923876594211562277705091388899497313132675599004144975313;\n uint256 constant S1x = 13511374588247167997414482771460319777500130147065290737814654512741747616346;\n uint256 constant S1y = 9410442723228155800609023852081630300440285014469359549251506116352343840765;\n uint256 constant S2x = 6234343642032529676304475840139856609542183618893282794848722265839404121608;\n uint256 constant S2y = 198081256679397470117078185378786682134167977767481936106730933658216400205;\n uint256 constant S3x = 15607364487714913306100446210105619358733676078036562302151585058643715232255;\n uint256 constant S3y = 16418203895932101971661510317717759015568131982287223931136504811190200970422;\n uint256 constant k1 = 2;\n uint256 constant k2 = 3;\n uint256 constant X2x1 = 7550171141489642323345496683737244277083256424004707715998483409540040587466;\n uint256 constant X2x2 = 13674327281456600895607819848682159502956608479735975762218411599033981559968;\n uint256 constant X2y1 = 16329427655915944908484974060898761683974646318074639198003187154525254176520;\n uint256 constant X2y2 = 19604631653040203911523494213678188005987622194545572529608835183936569820990;\n \n uint256 constant q = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n uint256 constant qf = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n uint256 constant w1 = 20402931748843538985151001264530049874871572933694634836567070693966133783803; \n \n uint256 constant G1x = 1;\n uint256 constant G1y = 2;\n uint256 constant G2x1 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;\n uint256 constant G2x2 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;\n uint256 constant G2y1 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;\n uint256 constant G2y2 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;\n uint16 constant pA = 32;\n uint16 constant pB = 96;\n uint16 constant pC = 160;\n uint16 constant pZ = 224;\n uint16 constant pT1 = 288;\n uint16 constant pT2 = 352;\n uint16 constant pT3 = 416;\n uint16 constant pWxi = 480;\n uint16 constant pWxiw = 544;\n uint16 constant pEval_a = 608;\n uint16 constant pEval_b = 640;\n uint16 constant pEval_c = 672;\n uint16 constant pEval_s1 = 704;\n uint16 constant pEval_s2 = 736;\n uint16 constant pEval_zw = 768;\n uint16 constant pEval_r = 800;\n \n uint16 constant pAlpha = 0;\n uint16 constant pBeta = 32;\n uint16 constant pGamma = 64;\n uint16 constant pXi = 96;\n uint16 constant pXin = 128;\n uint16 constant pBetaXi = 160;\n uint16 constant pV1 = 192;\n uint16 constant pV2 = 224;\n uint16 constant pV3 = 256;\n uint16 constant pV4 = 288;\n uint16 constant pV5 = 320;\n uint16 constant pV6 = 352;\n uint16 constant pU = 384;\n uint16 constant pPl = 416;\n uint16 constant pEval_t = 448;\n uint16 constant pA1 = 480;\n uint16 constant pB1 = 544;\n uint16 constant pZh = 608;\n uint16 constant pZhInv = 640;\n \n uint16 constant pEval_l1 = 672;\n \n \n \n uint16 constant lastMem = 704;\n\n function verifyProof(bytes memory proof, uint[] memory pubSignals) public view returns (bool) {\n assembly {\n /////////\n // Computes the inverse using the extended euclidean algorithm\n /////////\n function inverse(a, q) -> inv {\n let t := 0 \n let newt := 1\n let r := q \n let newr := a\n let quotient\n let aux\n \n for { } newr { } {\n quotient := sdiv(r, newr)\n aux := sub(t, mul(quotient, newt))\n t:= newt\n newt:= aux\n \n aux := sub(r,mul(quotient, newr))\n r := newr\n newr := aux\n }\n \n if gt(r, 1) { revert(0,0) }\n if slt(t, 0) { t:= add(t, q) }\n\n inv := t\n }\n \n ///////\n // Computes the inverse of an array of values\n // See https://vitalik.ca/general/2018/07/21/starks_part_3.html in section where explain fields operations\n //////\n function inverseArray(pVals, n) {\n \n let pAux := mload(0x40) // Point to the next free position\n let pIn := pVals\n let lastPIn := add(pVals, mul(n, 32)) // Read n elemnts\n let acc := mload(pIn) // Read the first element\n pIn := add(pIn, 32) // Point to the second element\n let inv\n \n \n for { } lt(pIn, lastPIn) { \n pAux := add(pAux, 32) \n pIn := add(pIn, 32)\n } \n {\n mstore(pAux, acc)\n acc := mulmod(acc, mload(pIn), q)\n }\n acc := inverse(acc, q)\n \n // At this point pAux pint to the next free position we substract 1 to point to the last used\n pAux := sub(pAux, 32)\n // pIn points to the n+1 element, we substract to point to n\n pIn := sub(pIn, 32)\n lastPIn := pVals // We don't process the first element \n for { } gt(pIn, lastPIn) { \n pAux := sub(pAux, 32) \n pIn := sub(pIn, 32)\n } \n {\n inv := mulmod(acc, mload(pAux), q)\n acc := mulmod(acc, mload(pIn), q)\n mstore(pIn, inv)\n }\n // pIn points to first element, we just set it.\n mstore(pIn, acc)\n }\n \n function checkField(v) {\n if iszero(lt(v, q)) {\n mstore(0, 0)\n return(0,0x20)\n }\n }\n \n function checkInput(pProof) {\n if iszero(eq(mload(pProof), 800 )) {\n mstore(0, 0)\n return(0,0x20)\n }\n checkField(mload(add(pProof, pEval_a)))\n checkField(mload(add(pProof, pEval_b)))\n checkField(mload(add(pProof, pEval_c)))\n checkField(mload(add(pProof, pEval_s1)))\n checkField(mload(add(pProof, pEval_s2)))\n checkField(mload(add(pProof, pEval_zw)))\n checkField(mload(add(pProof, pEval_r)))\n\n // Points are checked in the point operations precompiled smart contracts\n }\n \n function calculateChallanges(pProof, pMem, pPublic) {\n \n let a\n let b\n\n \n mstore( add(pMem, 704 ), mload( add( pPublic, 32)))\n \n mstore( add(pMem, 736 ), mload( add( pProof, pA)))\n mstore( add(pMem, 768 ), mload( add( pProof, add(pA,32))))\n mstore( add(pMem, 800 ), mload( add( pProof, add(pA,64))))\n mstore( add(pMem, 832 ), mload( add( pProof, add(pA,96))))\n mstore( add(pMem, 864 ), mload( add( pProof, add(pA,128))))\n mstore( add(pMem, 896 ), mload( add( pProof, add(pA,160))))\n \n b := mod(keccak256(add(pMem, lastMem), 224), q) \n mstore( add(pMem, pBeta), b)\n mstore( add(pMem, pGamma), mod(keccak256(add(pMem, pBeta), 32), q))\n mstore( add(pMem, pAlpha), mod(keccak256(add(pProof, pZ), 64), q))\n \n a := mod(keccak256(add(pProof, pT1), 192), q)\n mstore( add(pMem, pXi), a)\n mstore( add(pMem, pBetaXi), mulmod(b, a, q))\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n mstore( add(pMem, pXin), a)\n a:= mod(add(sub(a, 1),q), q)\n mstore( add(pMem, pZh), a)\n mstore( add(pMem, pZhInv), a) // We will invert later together with lagrange pols\n \n let v1 := mod(keccak256(add(pProof, pEval_a), 224), q)\n mstore( add(pMem, pV1), v1)\n a := mulmod(v1, v1, q)\n mstore( add(pMem, pV2), a)\n a := mulmod(a, v1, q)\n mstore( add(pMem, pV3), a)\n a := mulmod(a, v1, q)\n mstore( add(pMem, pV4), a)\n a := mulmod(a, v1, q)\n mstore( add(pMem, pV5), a)\n a := mulmod(a, v1, q)\n mstore( add(pMem, pV6), a)\n \n mstore( add(pMem, pU), mod(keccak256(add(pProof, pWxi), 128), q))\n }\n \n function calculateLagrange(pMem) {\n\n let w := 1 \n \n mstore(\n add(pMem, pEval_l1), \n mulmod(\n n, \n mod(\n add(\n sub(\n mload(add(pMem, pXi)), \n w\n ), \n q\n ),\n q\n ), \n q\n )\n )\n \n \n \n inverseArray(add(pMem, pZhInv), 2 )\n \n let zh := mload(add(pMem, pZh))\n w := 1\n \n \n mstore(\n add(pMem, pEval_l1 ), \n mulmod(\n mload(add(pMem, pEval_l1 )),\n zh,\n q\n )\n )\n \n \n \n\n\n }\n \n function calculatePl(pMem, pPub) {\n let pl := 0\n \n \n pl := mod(\n add(\n sub(\n pl, \n mulmod(\n mload(add(pMem, pEval_l1)),\n mload(add(pPub, 32)),\n q\n )\n ),\n q\n ),\n q\n )\n \n \n mstore(add(pMem, pPl), pl)\n \n\n }\n\n function calculateT(pProof, pMem) {\n let t\n let t1\n let t2\n t := addmod(\n mload(add(pProof, pEval_r)), \n mload(add(pMem, pPl)), \n q\n )\n \n t1 := mulmod(\n mload(add(pProof, pEval_s1)),\n mload(add(pMem, pBeta)),\n q\n )\n\n t1 := addmod(\n t1,\n mload(add(pProof, pEval_a)),\n q\n )\n \n t1 := addmod(\n t1,\n mload(add(pMem, pGamma)),\n q\n )\n\n t2 := mulmod(\n mload(add(pProof, pEval_s2)),\n mload(add(pMem, pBeta)),\n q\n )\n\n t2 := addmod(\n t2,\n mload(add(pProof, pEval_b)),\n q\n )\n \n t2 := addmod(\n t2,\n mload(add(pMem, pGamma)),\n q\n )\n \n t1 := mulmod(t1, t2, q)\n \n t2 := addmod(\n mload(add(pProof, pEval_c)),\n mload(add(pMem, pGamma)),\n q\n )\n\n t1 := mulmod(t1, t2, q)\n t1 := mulmod(t1, mload(add(pProof, pEval_zw)), q)\n t1 := mulmod(t1, mload(add(pMem, pAlpha)), q)\n \n t2 := mulmod(\n mload(add(pMem, pEval_l1)), \n mload(add(pMem, pAlpha)), \n q\n )\n\n t2 := mulmod(\n t2, \n mload(add(pMem, pAlpha)), \n q\n )\n\n t1 := addmod(t1, t2, q)\n \n t := mod(sub(add(t, q), t1), q)\n t := mulmod(t, mload(add(pMem, pZhInv)), q)\n \n mstore( add(pMem, pEval_t) , t)\n\n }\n \n function g1_set(pR, pP) {\n mstore(pR, mload(pP))\n mstore(add(pR, 32), mload(add(pP,32)))\n }\n\n function g1_acc(pR, pP) {\n let mIn := mload(0x40)\n mstore(mIn, mload(pR))\n mstore(add(mIn,32), mload(add(pR, 32)))\n mstore(add(mIn,64), mload(pP))\n mstore(add(mIn,96), mload(add(pP, 32)))\n\n let success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n }\n\n function g1_mulAcc(pR, pP, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, mload(pP))\n mstore(add(mIn,32), mload(add(pP, 32)))\n mstore(add(mIn,64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n \n mstore(add(mIn,64), mload(pR))\n mstore(add(mIn,96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n \n }\n\n function g1_mulAccC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn,32), y)\n mstore(add(mIn,64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n \n mstore(add(mIn,64), mload(pR))\n mstore(add(mIn,96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n }\n\n function g1_mulSetC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn,32), y)\n mstore(add(mIn,64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, pR, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n }\n\n\n function calculateA1(pProof, pMem) {\n let p := add(pMem, pA1)\n g1_set(p, add(pProof, pWxi))\n g1_mulAcc(p, add(pProof, pWxiw), mload(add(pMem, pU)))\n }\n \n \n function calculateB1(pProof, pMem) {\n let s\n let s1\n let p := add(pMem, pB1)\n \n // Calculate D\n s := mulmod( mload(add(pProof, pEval_a)), mload(add(pMem, pV1)), q)\n g1_mulSetC(p, Qlx, Qly, s)\n\n s := mulmod( s, mload(add(pProof, pEval_b)), q) \n g1_mulAccC(p, Qmx, Qmy, s)\n\n s := mulmod( mload(add(pProof, pEval_b)), mload(add(pMem, pV1)), q)\n g1_mulAccC(p, Qrx, Qry, s)\n \n s := mulmod( mload(add(pProof, pEval_c)), mload(add(pMem, pV1)), q)\n g1_mulAccC(p, Qox, Qoy, s)\n\n s :=mload(add(pMem, pV1))\n g1_mulAccC(p, Qcx, Qcy, s)\n\n s := addmod(mload(add(pProof, pEval_a)), mload(add(pMem, pBetaXi)), q)\n s := addmod(s, mload(add(pMem, pGamma)), q)\n s1 := mulmod(k1, mload(add(pMem, pBetaXi)), q)\n s1 := addmod(s1, mload(add(pProof, pEval_b)), q)\n s1 := addmod(s1, mload(add(pMem, pGamma)), q)\n s := mulmod(s, s1, q)\n s1 := mulmod(k2, mload(add(pMem, pBetaXi)), q)\n s1 := addmod(s1, mload(add(pProof, pEval_c)), q)\n s1 := addmod(s1, mload(add(pMem, pGamma)), q)\n s := mulmod(s, s1, q)\n s := mulmod(s, mload(add(pMem, pAlpha)), q)\n s := mulmod(s, mload(add(pMem, pV1)), q)\n s1 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q)\n s1 := mulmod(s1, mload(add(pMem, pAlpha)), q)\n s1 := mulmod(s1, mload(add(pMem, pV1)), q)\n s := addmod(s, s1, q)\n s := addmod(s, mload(add(pMem, pU)), q)\n g1_mulAcc(p, add(pProof, pZ), s)\n \n s := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s1)), q)\n s := addmod(s, mload(add(pProof, pEval_a)), q)\n s := addmod(s, mload(add(pMem, pGamma)), q)\n s1 := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s2)), q)\n s1 := addmod(s1, mload(add(pProof, pEval_b)), q)\n s1 := addmod(s1, mload(add(pMem, pGamma)), q)\n s := mulmod(s, s1, q)\n s := mulmod(s, mload(add(pMem, pAlpha)), q)\n s := mulmod(s, mload(add(pMem, pV1)), q)\n s := mulmod(s, mload(add(pMem, pBeta)), q)\n s := mulmod(s, mload(add(pProof, pEval_zw)), q)\n s := mod(sub(q, s), q)\n g1_mulAccC(p, S3x, S3y, s)\n\n\n // calculate F\n g1_acc(p , add(pProof, pT1))\n\n s := mload(add(pMem, pXin))\n g1_mulAcc(p, add(pProof, pT2), s)\n \n s := mulmod(s, s, q)\n g1_mulAcc(p, add(pProof, pT3), s)\n \n g1_mulAcc(p, add(pProof, pA), mload(add(pMem, pV2)))\n g1_mulAcc(p, add(pProof, pB), mload(add(pMem, pV3)))\n g1_mulAcc(p, add(pProof, pC), mload(add(pMem, pV4)))\n g1_mulAccC(p, S1x, S1y, mload(add(pMem, pV5)))\n g1_mulAccC(p, S2x, S2y, mload(add(pMem, pV6)))\n \n // calculate E\n s := mload(add(pMem, pEval_t))\n s := addmod(s, mulmod(mload(add(pProof, pEval_r)), mload(add(pMem, pV1)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV2)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV3)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV4)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pV5)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pV6)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_zw)), mload(add(pMem, pU)), q), q)\n s := mod(sub(q, s), q)\n g1_mulAccC(p, G1x, G1y, s)\n \n \n // Last part of B\n s := mload(add(pMem, pXi))\n g1_mulAcc(p, add(pProof, pWxi), s)\n\n s := mulmod(mload(add(pMem, pU)), mload(add(pMem, pXi)), q)\n s := mulmod(s, w1, q)\n g1_mulAcc(p, add(pProof, pWxiw), s)\n\n }\n \n function checkPairing(pMem) -> isOk {\n let mIn := mload(0x40)\n mstore(mIn, mload(add(pMem, pA1)))\n mstore(add(mIn,32), mload(add(add(pMem, pA1), 32)))\n mstore(add(mIn,64), X2x2)\n mstore(add(mIn,96), X2x1)\n mstore(add(mIn,128), X2y2)\n mstore(add(mIn,160), X2y1)\n mstore(add(mIn,192), mload(add(pMem, pB1)))\n let s := mload(add(add(pMem, pB1), 32))\n s := mod(sub(qf, s), qf)\n mstore(add(mIn,224), s)\n mstore(add(mIn,256), G2x2)\n mstore(add(mIn,288), G2x1)\n mstore(add(mIn,320), G2y2)\n mstore(add(mIn,352), G2y1)\n \n let success := staticcall(sub(gas(), 2000), 8, mIn, 384, mIn, 0x20)\n \n isOk := and(success, mload(mIn))\n }\n \n let pMem := mload(0x40)\n mstore(0x40, add(pMem, lastMem))\n \n checkInput(proof)\n calculateChallanges(proof, pMem, pubSignals)\n calculateLagrange(pMem)\n calculatePl(pMem, pubSignals)\n calculateT(proof, pMem)\n calculateA1(proof, pMem)\n calculateB1(proof, pMem)\n let isValid := checkPairing(pMem)\n \n mstore(0x40, sub(pMem, lastMem))\n mstore(0, isValid)\n return(0,0x20)\n }\n \n }\n}\n"},"contracts/workstep3Verifier.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\n/*\n Copyright 2021 0KIMS association.\n\n This file is generated with [snarkJS](https://github.com/iden3/snarkjs).\n\n snarkJS is a free software: you can redistribute it and/or modify it\n under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n snarkJS is distributed in the hope that it will be useful, but WITHOUT\n ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n License for more details.\n\n You should have received a copy of the GNU General Public License\n along with snarkJS. If not, see .\n*/\n\n\npragma solidity >=0.7.0 <0.9.0;\n\ncontract PlonkVerifier {\n \n uint32 constant n = 32768;\n uint16 constant nPublic = 1;\n uint16 constant nLagrange = 1;\n \n uint256 constant Qmx = 9031014201334786598437474819333373897984837472962630324851335361844058545780;\n uint256 constant Qmy = 16607210786086921981367283815049778740600968770620223098147538097138430537595;\n uint256 constant Qlx = 6808278280485306759745548891536191162342236099697633650996345740914224220305;\n uint256 constant Qly = 3270170195800647956439730797339220040656917583598598133609260645618986123588;\n uint256 constant Qrx = 19867659962940379415833721956196885812592831298524381980555731113220022045761;\n uint256 constant Qry = 5839482012031765332886537848770371473868238809091147323904600653094947875345;\n uint256 constant Qox = 21659278811951783556483125629272843184764885478213749993598444862278045884755;\n uint256 constant Qoy = 16660597475205619545281468126006239987539267348200340592793952148487504874309;\n uint256 constant Qcx = 5305510349838087338783547875566294471771494030996437605662252026376037082958;\n uint256 constant Qcy = 19377334097772342373923876594211562277705091388899497313132675599004144975313;\n uint256 constant S1x = 13511374588247167997414482771460319777500130147065290737814654512741747616346;\n uint256 constant S1y = 9410442723228155800609023852081630300440285014469359549251506116352343840765;\n uint256 constant S2x = 6234343642032529676304475840139856609542183618893282794848722265839404121608;\n uint256 constant S2y = 198081256679397470117078185378786682134167977767481936106730933658216400205;\n uint256 constant S3x = 15607364487714913306100446210105619358733676078036562302151585058643715232255;\n uint256 constant S3y = 16418203895932101971661510317717759015568131982287223931136504811190200970422;\n uint256 constant k1 = 2;\n uint256 constant k2 = 3;\n uint256 constant X2x1 = 7550171141489642323345496683737244277083256424004707715998483409540040587466;\n uint256 constant X2x2 = 13674327281456600895607819848682159502956608479735975762218411599033981559968;\n uint256 constant X2y1 = 16329427655915944908484974060898761683974646318074639198003187154525254176520;\n uint256 constant X2y2 = 19604631653040203911523494213678188005987622194545572529608835183936569820990;\n \n uint256 constant q = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n uint256 constant qf = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n uint256 constant w1 = 20402931748843538985151001264530049874871572933694634836567070693966133783803; \n \n uint256 constant G1x = 1;\n uint256 constant G1y = 2;\n uint256 constant G2x1 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;\n uint256 constant G2x2 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;\n uint256 constant G2y1 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;\n uint256 constant G2y2 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;\n uint16 constant pA = 32;\n uint16 constant pB = 96;\n uint16 constant pC = 160;\n uint16 constant pZ = 224;\n uint16 constant pT1 = 288;\n uint16 constant pT2 = 352;\n uint16 constant pT3 = 416;\n uint16 constant pWxi = 480;\n uint16 constant pWxiw = 544;\n uint16 constant pEval_a = 608;\n uint16 constant pEval_b = 640;\n uint16 constant pEval_c = 672;\n uint16 constant pEval_s1 = 704;\n uint16 constant pEval_s2 = 736;\n uint16 constant pEval_zw = 768;\n uint16 constant pEval_r = 800;\n \n uint16 constant pAlpha = 0;\n uint16 constant pBeta = 32;\n uint16 constant pGamma = 64;\n uint16 constant pXi = 96;\n uint16 constant pXin = 128;\n uint16 constant pBetaXi = 160;\n uint16 constant pV1 = 192;\n uint16 constant pV2 = 224;\n uint16 constant pV3 = 256;\n uint16 constant pV4 = 288;\n uint16 constant pV5 = 320;\n uint16 constant pV6 = 352;\n uint16 constant pU = 384;\n uint16 constant pPl = 416;\n uint16 constant pEval_t = 448;\n uint16 constant pA1 = 480;\n uint16 constant pB1 = 544;\n uint16 constant pZh = 608;\n uint16 constant pZhInv = 640;\n \n uint16 constant pEval_l1 = 672;\n \n \n \n uint16 constant lastMem = 704;\n\n function verifyProof(bytes memory proof, uint[] memory pubSignals) public view returns (bool) {\n assembly {\n /////////\n // Computes the inverse using the extended euclidean algorithm\n /////////\n function inverse(a, q) -> inv {\n let t := 0 \n let newt := 1\n let r := q \n let newr := a\n let quotient\n let aux\n \n for { } newr { } {\n quotient := sdiv(r, newr)\n aux := sub(t, mul(quotient, newt))\n t:= newt\n newt:= aux\n \n aux := sub(r,mul(quotient, newr))\n r := newr\n newr := aux\n }\n \n if gt(r, 1) { revert(0,0) }\n if slt(t, 0) { t:= add(t, q) }\n\n inv := t\n }\n \n ///////\n // Computes the inverse of an array of values\n // See https://vitalik.ca/general/2018/07/21/starks_part_3.html in section where explain fields operations\n //////\n function inverseArray(pVals, n) {\n \n let pAux := mload(0x40) // Point to the next free position\n let pIn := pVals\n let lastPIn := add(pVals, mul(n, 32)) // Read n elemnts\n let acc := mload(pIn) // Read the first element\n pIn := add(pIn, 32) // Point to the second element\n let inv\n \n \n for { } lt(pIn, lastPIn) { \n pAux := add(pAux, 32) \n pIn := add(pIn, 32)\n } \n {\n mstore(pAux, acc)\n acc := mulmod(acc, mload(pIn), q)\n }\n acc := inverse(acc, q)\n \n // At this point pAux pint to the next free position we substract 1 to point to the last used\n pAux := sub(pAux, 32)\n // pIn points to the n+1 element, we substract to point to n\n pIn := sub(pIn, 32)\n lastPIn := pVals // We don't process the first element \n for { } gt(pIn, lastPIn) { \n pAux := sub(pAux, 32) \n pIn := sub(pIn, 32)\n } \n {\n inv := mulmod(acc, mload(pAux), q)\n acc := mulmod(acc, mload(pIn), q)\n mstore(pIn, inv)\n }\n // pIn points to first element, we just set it.\n mstore(pIn, acc)\n }\n \n function checkField(v) {\n if iszero(lt(v, q)) {\n mstore(0, 0)\n return(0,0x20)\n }\n }\n \n function checkInput(pProof) {\n if iszero(eq(mload(pProof), 800 )) {\n mstore(0, 0)\n return(0,0x20)\n }\n checkField(mload(add(pProof, pEval_a)))\n checkField(mload(add(pProof, pEval_b)))\n checkField(mload(add(pProof, pEval_c)))\n checkField(mload(add(pProof, pEval_s1)))\n checkField(mload(add(pProof, pEval_s2)))\n checkField(mload(add(pProof, pEval_zw)))\n checkField(mload(add(pProof, pEval_r)))\n\n // Points are checked in the point operations precompiled smart contracts\n }\n \n function calculateChallanges(pProof, pMem, pPublic) {\n \n let a\n let b\n\n \n mstore( add(pMem, 704 ), mload( add( pPublic, 32)))\n \n mstore( add(pMem, 736 ), mload( add( pProof, pA)))\n mstore( add(pMem, 768 ), mload( add( pProof, add(pA,32))))\n mstore( add(pMem, 800 ), mload( add( pProof, add(pA,64))))\n mstore( add(pMem, 832 ), mload( add( pProof, add(pA,96))))\n mstore( add(pMem, 864 ), mload( add( pProof, add(pA,128))))\n mstore( add(pMem, 896 ), mload( add( pProof, add(pA,160))))\n \n b := mod(keccak256(add(pMem, lastMem), 224), q) \n mstore( add(pMem, pBeta), b)\n mstore( add(pMem, pGamma), mod(keccak256(add(pMem, pBeta), 32), q))\n mstore( add(pMem, pAlpha), mod(keccak256(add(pProof, pZ), 64), q))\n \n a := mod(keccak256(add(pProof, pT1), 192), q)\n mstore( add(pMem, pXi), a)\n mstore( add(pMem, pBetaXi), mulmod(b, a, q))\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n a:= mulmod(a, a, q)\n \n mstore( add(pMem, pXin), a)\n a:= mod(add(sub(a, 1),q), q)\n mstore( add(pMem, pZh), a)\n mstore( add(pMem, pZhInv), a) // We will invert later together with lagrange pols\n \n let v1 := mod(keccak256(add(pProof, pEval_a), 224), q)\n mstore( add(pMem, pV1), v1)\n a := mulmod(v1, v1, q)\n mstore( add(pMem, pV2), a)\n a := mulmod(a, v1, q)\n mstore( add(pMem, pV3), a)\n a := mulmod(a, v1, q)\n mstore( add(pMem, pV4), a)\n a := mulmod(a, v1, q)\n mstore( add(pMem, pV5), a)\n a := mulmod(a, v1, q)\n mstore( add(pMem, pV6), a)\n \n mstore( add(pMem, pU), mod(keccak256(add(pProof, pWxi), 128), q))\n }\n \n function calculateLagrange(pMem) {\n\n let w := 1 \n \n mstore(\n add(pMem, pEval_l1), \n mulmod(\n n, \n mod(\n add(\n sub(\n mload(add(pMem, pXi)), \n w\n ), \n q\n ),\n q\n ), \n q\n )\n )\n \n \n \n inverseArray(add(pMem, pZhInv), 2 )\n \n let zh := mload(add(pMem, pZh))\n w := 1\n \n \n mstore(\n add(pMem, pEval_l1 ), \n mulmod(\n mload(add(pMem, pEval_l1 )),\n zh,\n q\n )\n )\n \n \n \n\n\n }\n \n function calculatePl(pMem, pPub) {\n let pl := 0\n \n \n pl := mod(\n add(\n sub(\n pl, \n mulmod(\n mload(add(pMem, pEval_l1)),\n mload(add(pPub, 32)),\n q\n )\n ),\n q\n ),\n q\n )\n \n \n mstore(add(pMem, pPl), pl)\n \n\n }\n\n function calculateT(pProof, pMem) {\n let t\n let t1\n let t2\n t := addmod(\n mload(add(pProof, pEval_r)), \n mload(add(pMem, pPl)), \n q\n )\n \n t1 := mulmod(\n mload(add(pProof, pEval_s1)),\n mload(add(pMem, pBeta)),\n q\n )\n\n t1 := addmod(\n t1,\n mload(add(pProof, pEval_a)),\n q\n )\n \n t1 := addmod(\n t1,\n mload(add(pMem, pGamma)),\n q\n )\n\n t2 := mulmod(\n mload(add(pProof, pEval_s2)),\n mload(add(pMem, pBeta)),\n q\n )\n\n t2 := addmod(\n t2,\n mload(add(pProof, pEval_b)),\n q\n )\n \n t2 := addmod(\n t2,\n mload(add(pMem, pGamma)),\n q\n )\n \n t1 := mulmod(t1, t2, q)\n \n t2 := addmod(\n mload(add(pProof, pEval_c)),\n mload(add(pMem, pGamma)),\n q\n )\n\n t1 := mulmod(t1, t2, q)\n t1 := mulmod(t1, mload(add(pProof, pEval_zw)), q)\n t1 := mulmod(t1, mload(add(pMem, pAlpha)), q)\n \n t2 := mulmod(\n mload(add(pMem, pEval_l1)), \n mload(add(pMem, pAlpha)), \n q\n )\n\n t2 := mulmod(\n t2, \n mload(add(pMem, pAlpha)), \n q\n )\n\n t1 := addmod(t1, t2, q)\n \n t := mod(sub(add(t, q), t1), q)\n t := mulmod(t, mload(add(pMem, pZhInv)), q)\n \n mstore( add(pMem, pEval_t) , t)\n\n }\n \n function g1_set(pR, pP) {\n mstore(pR, mload(pP))\n mstore(add(pR, 32), mload(add(pP,32)))\n }\n\n function g1_acc(pR, pP) {\n let mIn := mload(0x40)\n mstore(mIn, mload(pR))\n mstore(add(mIn,32), mload(add(pR, 32)))\n mstore(add(mIn,64), mload(pP))\n mstore(add(mIn,96), mload(add(pP, 32)))\n\n let success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n }\n\n function g1_mulAcc(pR, pP, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, mload(pP))\n mstore(add(mIn,32), mload(add(pP, 32)))\n mstore(add(mIn,64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n \n mstore(add(mIn,64), mload(pR))\n mstore(add(mIn,96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n \n }\n\n function g1_mulAccC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn,32), y)\n mstore(add(mIn,64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n \n mstore(add(mIn,64), mload(pR))\n mstore(add(mIn,96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n }\n\n function g1_mulSetC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn,32), y)\n mstore(add(mIn,64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, pR, 64)\n \n if iszero(success) {\n mstore(0, 0)\n return(0,0x20)\n }\n }\n\n\n function calculateA1(pProof, pMem) {\n let p := add(pMem, pA1)\n g1_set(p, add(pProof, pWxi))\n g1_mulAcc(p, add(pProof, pWxiw), mload(add(pMem, pU)))\n }\n \n \n function calculateB1(pProof, pMem) {\n let s\n let s1\n let p := add(pMem, pB1)\n \n // Calculate D\n s := mulmod( mload(add(pProof, pEval_a)), mload(add(pMem, pV1)), q)\n g1_mulSetC(p, Qlx, Qly, s)\n\n s := mulmod( s, mload(add(pProof, pEval_b)), q) \n g1_mulAccC(p, Qmx, Qmy, s)\n\n s := mulmod( mload(add(pProof, pEval_b)), mload(add(pMem, pV1)), q)\n g1_mulAccC(p, Qrx, Qry, s)\n \n s := mulmod( mload(add(pProof, pEval_c)), mload(add(pMem, pV1)), q)\n g1_mulAccC(p, Qox, Qoy, s)\n\n s :=mload(add(pMem, pV1))\n g1_mulAccC(p, Qcx, Qcy, s)\n\n s := addmod(mload(add(pProof, pEval_a)), mload(add(pMem, pBetaXi)), q)\n s := addmod(s, mload(add(pMem, pGamma)), q)\n s1 := mulmod(k1, mload(add(pMem, pBetaXi)), q)\n s1 := addmod(s1, mload(add(pProof, pEval_b)), q)\n s1 := addmod(s1, mload(add(pMem, pGamma)), q)\n s := mulmod(s, s1, q)\n s1 := mulmod(k2, mload(add(pMem, pBetaXi)), q)\n s1 := addmod(s1, mload(add(pProof, pEval_c)), q)\n s1 := addmod(s1, mload(add(pMem, pGamma)), q)\n s := mulmod(s, s1, q)\n s := mulmod(s, mload(add(pMem, pAlpha)), q)\n s := mulmod(s, mload(add(pMem, pV1)), q)\n s1 := mulmod(mload(add(pMem, pEval_l1)), mload(add(pMem, pAlpha)), q)\n s1 := mulmod(s1, mload(add(pMem, pAlpha)), q)\n s1 := mulmod(s1, mload(add(pMem, pV1)), q)\n s := addmod(s, s1, q)\n s := addmod(s, mload(add(pMem, pU)), q)\n g1_mulAcc(p, add(pProof, pZ), s)\n \n s := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s1)), q)\n s := addmod(s, mload(add(pProof, pEval_a)), q)\n s := addmod(s, mload(add(pMem, pGamma)), q)\n s1 := mulmod(mload(add(pMem, pBeta)), mload(add(pProof, pEval_s2)), q)\n s1 := addmod(s1, mload(add(pProof, pEval_b)), q)\n s1 := addmod(s1, mload(add(pMem, pGamma)), q)\n s := mulmod(s, s1, q)\n s := mulmod(s, mload(add(pMem, pAlpha)), q)\n s := mulmod(s, mload(add(pMem, pV1)), q)\n s := mulmod(s, mload(add(pMem, pBeta)), q)\n s := mulmod(s, mload(add(pProof, pEval_zw)), q)\n s := mod(sub(q, s), q)\n g1_mulAccC(p, S3x, S3y, s)\n\n\n // calculate F\n g1_acc(p , add(pProof, pT1))\n\n s := mload(add(pMem, pXin))\n g1_mulAcc(p, add(pProof, pT2), s)\n \n s := mulmod(s, s, q)\n g1_mulAcc(p, add(pProof, pT3), s)\n \n g1_mulAcc(p, add(pProof, pA), mload(add(pMem, pV2)))\n g1_mulAcc(p, add(pProof, pB), mload(add(pMem, pV3)))\n g1_mulAcc(p, add(pProof, pC), mload(add(pMem, pV4)))\n g1_mulAccC(p, S1x, S1y, mload(add(pMem, pV5)))\n g1_mulAccC(p, S2x, S2y, mload(add(pMem, pV6)))\n \n // calculate E\n s := mload(add(pMem, pEval_t))\n s := addmod(s, mulmod(mload(add(pProof, pEval_r)), mload(add(pMem, pV1)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_a)), mload(add(pMem, pV2)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_b)), mload(add(pMem, pV3)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_c)), mload(add(pMem, pV4)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_s1)), mload(add(pMem, pV5)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_s2)), mload(add(pMem, pV6)), q), q)\n s := addmod(s, mulmod(mload(add(pProof, pEval_zw)), mload(add(pMem, pU)), q), q)\n s := mod(sub(q, s), q)\n g1_mulAccC(p, G1x, G1y, s)\n \n \n // Last part of B\n s := mload(add(pMem, pXi))\n g1_mulAcc(p, add(pProof, pWxi), s)\n\n s := mulmod(mload(add(pMem, pU)), mload(add(pMem, pXi)), q)\n s := mulmod(s, w1, q)\n g1_mulAcc(p, add(pProof, pWxiw), s)\n\n }\n \n function checkPairing(pMem) -> isOk {\n let mIn := mload(0x40)\n mstore(mIn, mload(add(pMem, pA1)))\n mstore(add(mIn,32), mload(add(add(pMem, pA1), 32)))\n mstore(add(mIn,64), X2x2)\n mstore(add(mIn,96), X2x1)\n mstore(add(mIn,128), X2y2)\n mstore(add(mIn,160), X2y1)\n mstore(add(mIn,192), mload(add(pMem, pB1)))\n let s := mload(add(add(pMem, pB1), 32))\n s := mod(sub(qf, s), qf)\n mstore(add(mIn,224), s)\n mstore(add(mIn,256), G2x2)\n mstore(add(mIn,288), G2x1)\n mstore(add(mIn,320), G2y2)\n mstore(add(mIn,352), G2y1)\n \n let success := staticcall(sub(gas(), 2000), 8, mIn, 384, mIn, 0x20)\n \n isOk := and(success, mload(mIn))\n }\n \n let pMem := mload(0x40)\n mstore(0x40, add(pMem, lastMem))\n \n checkInput(proof)\n calculateChallanges(proof, pMem, pubSignals)\n calculateLagrange(pMem)\n calculatePl(pMem, pubSignals)\n calculateT(proof, pMem)\n calculateA1(proof, pMem)\n calculateB1(proof, pMem)\n let isValid := checkPairing(pMem)\n \n mstore(0x40, sub(pMem, lastMem))\n mstore(0, isValid)\n return(0,0x20)\n }\n \n }\n}\n"}},"settings":{"evmVersion":"paris","optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"@openzeppelin/contracts/access/AccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","exportedSymbols":{"AccessControl":[295],"Context":[408],"ERC165":[432],"IAccessControl":[378]},"id":296,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"108:24:0"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":296,"sourceUnit":379,"src":"134:52:0","symbolAliases":[{"foreign":{"id":2,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"142:14:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":296,"sourceUnit":409,"src":"187:45:0","symbolAliases":[{"foreign":{"id":4,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":408,"src":"195:7:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":7,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":296,"sourceUnit":433,"src":"233:57:0","symbolAliases":[{"foreign":{"id":6,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":432,"src":"241:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":9,"name":"Context","nameLocations":["1988:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":408,"src":"1988:7:0"},"id":10,"nodeType":"InheritanceSpecifier","src":"1988:7:0"},{"baseName":{"id":11,"name":"IAccessControl","nameLocations":["1997:14:0"],"nodeType":"IdentifierPath","referencedDeclaration":378,"src":"1997:14:0"},"id":12,"nodeType":"InheritanceSpecifier","src":"1997:14:0"},{"baseName":{"id":13,"name":"ERC165","nameLocations":["2013:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":432,"src":"2013:6:0"},"id":14,"nodeType":"InheritanceSpecifier","src":"2013:6:0"}],"canonicalName":"AccessControl","contractDependencies":[],"contractKind":"contract","documentation":{"id":8,"nodeType":"StructuredDocumentation","src":"292:1660:0","text":" @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```solidity\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```solidity\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n to enforce additional security measures for this role."},"fullyImplemented":true,"id":295,"linearizedBaseContracts":[295,432,444,378,408],"name":"AccessControl","nameLocation":"1971:13:0","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControl.RoleData","id":21,"members":[{"constant":false,"id":18,"mutability":"mutable","name":"hasRole","nameLocation":"2085:7:0","nodeType":"VariableDeclaration","scope":21,"src":"2052:40:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":17,"keyName":"account","keyNameLocation":"2068:7:0","keyType":{"id":15,"name":"address","nodeType":"ElementaryTypeName","src":"2060:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2052:32:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":16,"name":"bool","nodeType":"ElementaryTypeName","src":"2079:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":20,"mutability":"mutable","name":"adminRole","nameLocation":"2110:9:0","nodeType":"VariableDeclaration","scope":21,"src":"2102:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2102:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"2033:8:0","nodeType":"StructDefinition","scope":295,"src":"2026:100:0","visibility":"public"},{"constant":false,"id":26,"mutability":"mutable","name":"_roles","nameLocation":"2174:6:0","nodeType":"VariableDeclaration","scope":295,"src":"2132:48:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"typeName":{"id":25,"keyName":"role","keyNameLocation":"2148:4:0","keyType":{"id":22,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2140:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2132:33:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":24,"nodeType":"UserDefinedTypeName","pathNode":{"id":23,"name":"RoleData","nameLocations":["2156:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":21,"src":"2156:8:0"},"referencedDeclaration":21,"src":"2156:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$21_storage_ptr","typeString":"struct AccessControl.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":29,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2211:18:0","nodeType":"VariableDeclaration","scope":295,"src":"2187:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2187:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":28,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2232:4:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"body":{"id":39,"nodeType":"Block","src":"2454:44:0","statements":[{"expression":{"arguments":[{"id":35,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"2475:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":34,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[93,114],"referencedDeclaration":93,"src":"2464:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":36,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2464:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37,"nodeType":"ExpressionStatement","src":"2464:16:0"},{"id":38,"nodeType":"PlaceholderStatement","src":"2490:1:0"}]},"documentation":{"id":30,"nodeType":"StructuredDocumentation","src":"2243:174:0","text":" @dev Modifier that checks that an account has a specific role. Reverts\n with an {AccessControlUnauthorizedAccount} error including the required role."},"id":40,"name":"onlyRole","nameLocation":"2431:8:0","nodeType":"ModifierDefinition","parameters":{"id":33,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32,"mutability":"mutable","name":"role","nameLocation":"2448:4:0","nodeType":"VariableDeclaration","scope":40,"src":"2440:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":31,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2440:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2439:14:0"},"src":"2422:76:0","virtual":false,"visibility":"internal"},{"baseFunctions":[431],"body":{"id":61,"nodeType":"Block","src":"2656:111:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":59,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"2673:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":51,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"2693:14:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$378_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$378_$","typeString":"type(contract IAccessControl)"}],"id":50,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2688:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2688:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$378","typeString":"type(contract IAccessControl)"}},"id":53,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2709:11:0","memberName":"interfaceId","nodeType":"MemberAccess","src":"2688:32:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2673:47:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":57,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"2748:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":55,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2724:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControl_$295_$","typeString":"type(contract super AccessControl)"}},"id":56,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2730:17:0","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":431,"src":"2724:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":58,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2724:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2673:87:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48,"id":60,"nodeType":"Return","src":"2666:94:0"}]},"documentation":{"id":41,"nodeType":"StructuredDocumentation","src":"2504:56:0","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":62,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2574:17:0","nodeType":"FunctionDefinition","overrides":{"id":45,"nodeType":"OverrideSpecifier","overrides":[],"src":"2632:8:0"},"parameters":{"id":44,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43,"mutability":"mutable","name":"interfaceId","nameLocation":"2599:11:0","nodeType":"VariableDeclaration","scope":62,"src":"2592:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":42,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2592:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2591:20:0"},"returnParameters":{"id":48,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":62,"src":"2650:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46,"name":"bool","nodeType":"ElementaryTypeName","src":"2650:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2649:6:0"},"scope":295,"src":"2565:202:0","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[345],"body":{"id":79,"nodeType":"Block","src":"2937:53:0","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":72,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26,"src":"2954:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":74,"indexExpression":{"id":73,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"2961:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2954:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$21_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":75,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2967:7:0","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":18,"src":"2954:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77,"indexExpression":{"id":76,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"2975:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2954:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":71,"id":78,"nodeType":"Return","src":"2947:36:0"}]},"documentation":{"id":63,"nodeType":"StructuredDocumentation","src":"2773:76:0","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":80,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"2863:7:0","nodeType":"FunctionDefinition","parameters":{"id":68,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65,"mutability":"mutable","name":"role","nameLocation":"2879:4:0","nodeType":"VariableDeclaration","scope":80,"src":"2871:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":64,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2871:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":67,"mutability":"mutable","name":"account","nameLocation":"2893:7:0","nodeType":"VariableDeclaration","scope":80,"src":"2885:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":66,"name":"address","nodeType":"ElementaryTypeName","src":"2885:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2870:31:0"},"returnParameters":{"id":71,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80,"src":"2931:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":69,"name":"bool","nodeType":"ElementaryTypeName","src":"2931:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2930:6:0"},"scope":295,"src":"2854:136:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":92,"nodeType":"Block","src":"3255:47:0","statements":[{"expression":{"arguments":[{"id":87,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83,"src":"3276:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":88,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":390,"src":"3282:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":89,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3282:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":86,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[93,114],"referencedDeclaration":114,"src":"3265:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":90,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3265:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91,"nodeType":"ExpressionStatement","src":"3265:30:0"}]},"documentation":{"id":81,"nodeType":"StructuredDocumentation","src":"2996:198:0","text":" @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier."},"id":93,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3208:10:0","nodeType":"FunctionDefinition","parameters":{"id":84,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83,"mutability":"mutable","name":"role","nameLocation":"3227:4:0","nodeType":"VariableDeclaration","scope":93,"src":"3219:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3219:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3218:14:0"},"returnParameters":{"id":85,"nodeType":"ParameterList","parameters":[],"src":"3255:0:0"},"scope":295,"src":"3199:103:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":113,"nodeType":"Block","src":"3505:124:0","statements":[{"condition":{"id":105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3519:23:0","subExpression":{"arguments":[{"id":102,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"3528:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":103,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98,"src":"3534:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":101,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80,"src":"3520:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3520:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":112,"nodeType":"IfStatement","src":"3515:108:0","trueBody":{"id":111,"nodeType":"Block","src":"3544:79:0","statements":[{"errorCall":{"arguments":[{"id":107,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98,"src":"3598:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":108,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"3607:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":106,"name":"AccessControlUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":305,"src":"3565:32:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32) pure"}},"id":109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3565:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":110,"nodeType":"RevertStatement","src":"3558:54:0"}]}}]},"documentation":{"id":94,"nodeType":"StructuredDocumentation","src":"3308:119:0","text":" @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n is missing `role`."},"id":114,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3441:10:0","nodeType":"FunctionDefinition","parameters":{"id":99,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96,"mutability":"mutable","name":"role","nameLocation":"3460:4:0","nodeType":"VariableDeclaration","scope":114,"src":"3452:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":95,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3452:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":98,"mutability":"mutable","name":"account","nameLocation":"3474:7:0","nodeType":"VariableDeclaration","scope":114,"src":"3466:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97,"name":"address","nodeType":"ElementaryTypeName","src":"3466:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3451:31:0"},"returnParameters":{"id":100,"nodeType":"ParameterList","parameters":[],"src":"3505:0:0"},"scope":295,"src":"3432:197:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[353],"body":{"id":127,"nodeType":"Block","src":"3884:46:0","statements":[{"expression":{"expression":{"baseExpression":{"id":122,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26,"src":"3901:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":124,"indexExpression":{"id":123,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"3908:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3901:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$21_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3914:9:0","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":20,"src":"3901:22:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":121,"id":126,"nodeType":"Return","src":"3894:29:0"}]},"documentation":{"id":115,"nodeType":"StructuredDocumentation","src":"3635:170:0","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}."},"functionSelector":"248a9ca3","id":128,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"3819:12:0","nodeType":"FunctionDefinition","parameters":{"id":118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":117,"mutability":"mutable","name":"role","nameLocation":"3840:4:0","nodeType":"VariableDeclaration","scope":128,"src":"3832:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3832:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3831:14:0"},"returnParameters":{"id":121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":120,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":128,"src":"3875:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3875:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3874:9:0"},"scope":295,"src":"3810:120:0","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[361],"body":{"id":146,"nodeType":"Block","src":"4320:42:0","statements":[{"expression":{"arguments":[{"id":142,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":131,"src":"4341:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":143,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"4347:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":141,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"4330:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4330:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":145,"nodeType":"ExpressionStatement","src":"4330:25:0"}]},"documentation":{"id":129,"nodeType":"StructuredDocumentation","src":"3936:285:0","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event."},"functionSelector":"2f2ff15d","id":147,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":137,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":131,"src":"4313:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":136,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"4300:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4300:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":139,"kind":"modifierInvocation","modifierName":{"id":135,"name":"onlyRole","nameLocations":["4291:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":40,"src":"4291:8:0"},"nodeType":"ModifierInvocation","src":"4291:28:0"}],"name":"grantRole","nameLocation":"4235:9:0","nodeType":"FunctionDefinition","parameters":{"id":134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":131,"mutability":"mutable","name":"role","nameLocation":"4253:4:0","nodeType":"VariableDeclaration","scope":147,"src":"4245:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":130,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4245:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":133,"mutability":"mutable","name":"account","nameLocation":"4267:7:0","nodeType":"VariableDeclaration","scope":147,"src":"4259:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":132,"name":"address","nodeType":"ElementaryTypeName","src":"4259:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4244:31:0"},"returnParameters":{"id":140,"nodeType":"ParameterList","parameters":[],"src":"4320:0:0"},"scope":295,"src":"4226:136:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[369],"body":{"id":165,"nodeType":"Block","src":"4737:43:0","statements":[{"expression":{"arguments":[{"id":161,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"4759:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":162,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":152,"src":"4765:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":160,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":294,"src":"4747:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4747:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":164,"nodeType":"ExpressionStatement","src":"4747:26:0"}]},"documentation":{"id":148,"nodeType":"StructuredDocumentation","src":"4368:269:0","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event."},"functionSelector":"d547741f","id":166,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":156,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"4730:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":155,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"4717:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4717:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":158,"kind":"modifierInvocation","modifierName":{"id":154,"name":"onlyRole","nameLocations":["4708:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":40,"src":"4708:8:0"},"nodeType":"ModifierInvocation","src":"4708:28:0"}],"name":"revokeRole","nameLocation":"4651:10:0","nodeType":"FunctionDefinition","parameters":{"id":153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":150,"mutability":"mutable","name":"role","nameLocation":"4670:4:0","nodeType":"VariableDeclaration","scope":166,"src":"4662:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4662:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":152,"mutability":"mutable","name":"account","nameLocation":"4684:7:0","nodeType":"VariableDeclaration","scope":166,"src":"4676:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":151,"name":"address","nodeType":"ElementaryTypeName","src":"4676:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4661:31:0"},"returnParameters":{"id":159,"nodeType":"ParameterList","parameters":[],"src":"4737:0:0"},"scope":295,"src":"4642:138:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[377],"body":{"id":188,"nodeType":"Block","src":"5407:166:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":174,"name":"callerConfirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"5421:18:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":175,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":390,"src":"5443:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5443:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5421:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":182,"nodeType":"IfStatement","src":"5417:102:0","trueBody":{"id":181,"nodeType":"Block","src":"5457:62:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":178,"name":"AccessControlBadConfirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":308,"src":"5478:28:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5478:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":180,"nodeType":"RevertStatement","src":"5471:37:0"}]}},{"expression":{"arguments":[{"id":184,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":169,"src":"5541:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":185,"name":"callerConfirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"5547:18:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":183,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":294,"src":"5529:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5529:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":187,"nodeType":"ExpressionStatement","src":"5529:37:0"}]},"documentation":{"id":167,"nodeType":"StructuredDocumentation","src":"4786:537:0","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`.\n May emit a {RoleRevoked} event."},"functionSelector":"36568abe","id":189,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"5337:12:0","nodeType":"FunctionDefinition","parameters":{"id":172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":169,"mutability":"mutable","name":"role","nameLocation":"5358:4:0","nodeType":"VariableDeclaration","scope":189,"src":"5350:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5350:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":171,"mutability":"mutable","name":"callerConfirmation","nameLocation":"5372:18:0","nodeType":"VariableDeclaration","scope":189,"src":"5364:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":170,"name":"address","nodeType":"ElementaryTypeName","src":"5364:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5349:42:0"},"returnParameters":{"id":173,"nodeType":"ParameterList","parameters":[],"src":"5407:0:0"},"scope":295,"src":"5328:245:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":216,"nodeType":"Block","src":"5771:174:0","statements":[{"assignments":[198],"declarations":[{"constant":false,"id":198,"mutability":"mutable","name":"previousAdminRole","nameLocation":"5789:17:0","nodeType":"VariableDeclaration","scope":216,"src":"5781:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":197,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5781:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":202,"initialValue":{"arguments":[{"id":200,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"5822:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":199,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"5809:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5809:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5781:46:0"},{"expression":{"id":208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":203,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26,"src":"5837:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":205,"indexExpression":{"id":204,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"5844:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5837:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$21_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5850:9:0","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":20,"src":"5837:22:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":207,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":194,"src":"5862:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5837:34:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":209,"nodeType":"ExpressionStatement","src":"5837:34:0"},{"eventCall":{"arguments":[{"id":211,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"5903:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":212,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":198,"src":"5909:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":213,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":194,"src":"5928:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":210,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":317,"src":"5886:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5886:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":215,"nodeType":"EmitStatement","src":"5881:57:0"}]},"documentation":{"id":190,"nodeType":"StructuredDocumentation","src":"5579:114:0","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":217,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"5707:13:0","nodeType":"FunctionDefinition","parameters":{"id":195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":192,"mutability":"mutable","name":"role","nameLocation":"5729:4:0","nodeType":"VariableDeclaration","scope":217,"src":"5721:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5721:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":194,"mutability":"mutable","name":"adminRole","nameLocation":"5743:9:0","nodeType":"VariableDeclaration","scope":217,"src":"5735:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":193,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5735:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5720:33:0"},"returnParameters":{"id":196,"nodeType":"ParameterList","parameters":[],"src":"5771:0:0"},"scope":295,"src":"5698:247:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":255,"nodeType":"Block","src":"6262:233:0","statements":[{"condition":{"id":231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6276:23:0","subExpression":{"arguments":[{"id":228,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220,"src":"6285:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":229,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"6291:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":227,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80,"src":"6277:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6277:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":253,"nodeType":"Block","src":"6452:37:0","statements":[{"expression":{"hexValue":"66616c7365","id":251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6473:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":226,"id":252,"nodeType":"Return","src":"6466:12:0"}]},"id":254,"nodeType":"IfStatement","src":"6272:217:0","trueBody":{"id":250,"nodeType":"Block","src":"6301:145:0","statements":[{"expression":{"id":239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":232,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26,"src":"6315:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":234,"indexExpression":{"id":233,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220,"src":"6322:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6315:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$21_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6328:7:0","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":18,"src":"6315:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":237,"indexExpression":{"id":236,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"6336:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6315:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6347:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6315:36:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":240,"nodeType":"ExpressionStatement","src":"6315:36:0"},{"eventCall":{"arguments":[{"id":242,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":220,"src":"6382:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":243,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"6388:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":244,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":390,"src":"6397:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6397:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":241,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":326,"src":"6370:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6370:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":247,"nodeType":"EmitStatement","src":"6365:45:0"},{"expression":{"hexValue":"74727565","id":248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6431:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":226,"id":249,"nodeType":"Return","src":"6424:11:0"}]}}]},"documentation":{"id":218,"nodeType":"StructuredDocumentation","src":"5951:223:0","text":" @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n Internal function without access restriction.\n May emit a {RoleGranted} event."},"id":256,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"6188:10:0","nodeType":"FunctionDefinition","parameters":{"id":223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":220,"mutability":"mutable","name":"role","nameLocation":"6207:4:0","nodeType":"VariableDeclaration","scope":256,"src":"6199:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6199:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":222,"mutability":"mutable","name":"account","nameLocation":"6221:7:0","nodeType":"VariableDeclaration","scope":256,"src":"6213:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":221,"name":"address","nodeType":"ElementaryTypeName","src":"6213:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6198:31:0"},"returnParameters":{"id":226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":225,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":256,"src":"6256:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":224,"name":"bool","nodeType":"ElementaryTypeName","src":"6256:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6255:6:0"},"scope":295,"src":"6179:316:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":293,"nodeType":"Block","src":"6814:233:0","statements":[{"condition":{"arguments":[{"id":267,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":259,"src":"6836:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":268,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":261,"src":"6842:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":266,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80,"src":"6828:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6828:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":291,"nodeType":"Block","src":"7004:37:0","statements":[{"expression":{"hexValue":"66616c7365","id":289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7025:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":265,"id":290,"nodeType":"Return","src":"7018:12:0"}]},"id":292,"nodeType":"IfStatement","src":"6824:217:0","trueBody":{"id":288,"nodeType":"Block","src":"6852:146:0","statements":[{"expression":{"id":277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":270,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26,"src":"6866:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":272,"indexExpression":{"id":271,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":259,"src":"6873:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6866:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$21_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6879:7:0","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":18,"src":"6866:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":275,"indexExpression":{"id":274,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":261,"src":"6887:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6866:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6898:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6866:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":278,"nodeType":"ExpressionStatement","src":"6866:37:0"},{"eventCall":{"arguments":[{"id":280,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":259,"src":"6934:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":281,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":261,"src":"6940:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":282,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":390,"src":"6949:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6949:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":279,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":335,"src":"6922:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6922:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":285,"nodeType":"EmitStatement","src":"6917:45:0"},{"expression":{"hexValue":"74727565","id":286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6983:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":265,"id":287,"nodeType":"Return","src":"6976:11:0"}]}}]},"documentation":{"id":257,"nodeType":"StructuredDocumentation","src":"6501:224:0","text":" @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":294,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"6739:11:0","nodeType":"FunctionDefinition","parameters":{"id":262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":259,"mutability":"mutable","name":"role","nameLocation":"6759:4:0","nodeType":"VariableDeclaration","scope":294,"src":"6751:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":258,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6751:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":261,"mutability":"mutable","name":"account","nameLocation":"6773:7:0","nodeType":"VariableDeclaration","scope":294,"src":"6765:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":260,"name":"address","nodeType":"ElementaryTypeName","src":"6765:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6750:31:0"},"returnParameters":{"id":265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":264,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":294,"src":"6808:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":263,"name":"bool","nodeType":"ElementaryTypeName","src":"6808:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6807:6:0"},"scope":295,"src":"6730:317:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":296,"src":"1953:5096:0","usedErrors":[305,308],"usedEvents":[317,326,335]}],"src":"108:6942:0"},"id":0},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[378]},"id":379,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":297,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"109:24:1"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccessControl","contractDependencies":[],"contractKind":"interface","documentation":{"id":298,"nodeType":"StructuredDocumentation","src":"135:89:1","text":" @dev External interface of AccessControl declared to support ERC165 detection."},"fullyImplemented":false,"id":378,"linearizedBaseContracts":[378],"name":"IAccessControl","nameLocation":"235:14:1","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":299,"nodeType":"StructuredDocumentation","src":"256:56:1","text":" @dev The `account` is missing a role."},"errorSelector":"e2517d3f","id":305,"name":"AccessControlUnauthorizedAccount","nameLocation":"323:32:1","nodeType":"ErrorDefinition","parameters":{"id":304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":301,"mutability":"mutable","name":"account","nameLocation":"364:7:1","nodeType":"VariableDeclaration","scope":305,"src":"356:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":300,"name":"address","nodeType":"ElementaryTypeName","src":"356:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":303,"mutability":"mutable","name":"neededRole","nameLocation":"381:10:1","nodeType":"VariableDeclaration","scope":305,"src":"373:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"373:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"355:37:1"},"src":"317:76:1"},{"documentation":{"id":306,"nodeType":"StructuredDocumentation","src":"399:148:1","text":" @dev The caller of a function is not the expected one.\n NOTE: Don't confuse with {AccessControlUnauthorizedAccount}."},"errorSelector":"6697b232","id":308,"name":"AccessControlBadConfirmation","nameLocation":"558:28:1","nodeType":"ErrorDefinition","parameters":{"id":307,"nodeType":"ParameterList","parameters":[],"src":"586:2:1"},"src":"552:37:1"},{"anonymous":false,"documentation":{"id":309,"nodeType":"StructuredDocumentation","src":"595:254:1","text":" @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this."},"eventSelector":"bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff","id":317,"name":"RoleAdminChanged","nameLocation":"860:16:1","nodeType":"EventDefinition","parameters":{"id":316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":311,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"893:4:1","nodeType":"VariableDeclaration","scope":317,"src":"877:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":310,"name":"bytes32","nodeType":"ElementaryTypeName","src":"877:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":313,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"915:17:1","nodeType":"VariableDeclaration","scope":317,"src":"899:33:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"899:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":315,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"950:12:1","nodeType":"VariableDeclaration","scope":317,"src":"934:28:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"934:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"876:87:1"},"src":"854:110:1"},{"anonymous":false,"documentation":{"id":318,"nodeType":"StructuredDocumentation","src":"970:212:1","text":" @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}."},"eventSelector":"2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","id":326,"name":"RoleGranted","nameLocation":"1193:11:1","nodeType":"EventDefinition","parameters":{"id":325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":320,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1221:4:1","nodeType":"VariableDeclaration","scope":326,"src":"1205:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1205:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":322,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1243:7:1","nodeType":"VariableDeclaration","scope":326,"src":"1227:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":321,"name":"address","nodeType":"ElementaryTypeName","src":"1227:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":324,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1268:6:1","nodeType":"VariableDeclaration","scope":326,"src":"1252:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":323,"name":"address","nodeType":"ElementaryTypeName","src":"1252:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1204:71:1"},"src":"1187:89:1"},{"anonymous":false,"documentation":{"id":327,"nodeType":"StructuredDocumentation","src":"1282:275:1","text":" @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)"},"eventSelector":"f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b","id":335,"name":"RoleRevoked","nameLocation":"1568:11:1","nodeType":"EventDefinition","parameters":{"id":334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":329,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1596:4:1","nodeType":"VariableDeclaration","scope":335,"src":"1580:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1580:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":331,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1618:7:1","nodeType":"VariableDeclaration","scope":335,"src":"1602:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":330,"name":"address","nodeType":"ElementaryTypeName","src":"1602:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":333,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1643:6:1","nodeType":"VariableDeclaration","scope":335,"src":"1627:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":332,"name":"address","nodeType":"ElementaryTypeName","src":"1627:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1579:71:1"},"src":"1562:89:1"},{"documentation":{"id":336,"nodeType":"StructuredDocumentation","src":"1657:76:1","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":345,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1747:7:1","nodeType":"FunctionDefinition","parameters":{"id":341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":338,"mutability":"mutable","name":"role","nameLocation":"1763:4:1","nodeType":"VariableDeclaration","scope":345,"src":"1755:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":337,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1755:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":340,"mutability":"mutable","name":"account","nameLocation":"1777:7:1","nodeType":"VariableDeclaration","scope":345,"src":"1769:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":339,"name":"address","nodeType":"ElementaryTypeName","src":"1769:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1754:31:1"},"returnParameters":{"id":344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":345,"src":"1809:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":342,"name":"bool","nodeType":"ElementaryTypeName","src":"1809:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1808:6:1"},"scope":378,"src":"1738:77:1","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":346,"nodeType":"StructuredDocumentation","src":"1821:184:1","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}."},"functionSelector":"248a9ca3","id":353,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"2019:12:1","nodeType":"FunctionDefinition","parameters":{"id":349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":348,"mutability":"mutable","name":"role","nameLocation":"2040:4:1","nodeType":"VariableDeclaration","scope":353,"src":"2032:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2032:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2031:14:1"},"returnParameters":{"id":352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":353,"src":"2069:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2069:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2068:9:1"},"scope":378,"src":"2010:68:1","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":354,"nodeType":"StructuredDocumentation","src":"2084:239:1","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"2f2ff15d","id":361,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2337:9:1","nodeType":"FunctionDefinition","parameters":{"id":359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":356,"mutability":"mutable","name":"role","nameLocation":"2355:4:1","nodeType":"VariableDeclaration","scope":361,"src":"2347:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2347:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":358,"mutability":"mutable","name":"account","nameLocation":"2369:7:1","nodeType":"VariableDeclaration","scope":361,"src":"2361:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":357,"name":"address","nodeType":"ElementaryTypeName","src":"2361:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2346:31:1"},"returnParameters":{"id":360,"nodeType":"ParameterList","parameters":[],"src":"2386:0:1"},"scope":378,"src":"2328:59:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":362,"nodeType":"StructuredDocumentation","src":"2393:223:1","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"d547741f","id":369,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2630:10:1","nodeType":"FunctionDefinition","parameters":{"id":367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":364,"mutability":"mutable","name":"role","nameLocation":"2649:4:1","nodeType":"VariableDeclaration","scope":369,"src":"2641:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2641:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":366,"mutability":"mutable","name":"account","nameLocation":"2663:7:1","nodeType":"VariableDeclaration","scope":369,"src":"2655:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":365,"name":"address","nodeType":"ElementaryTypeName","src":"2655:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2640:31:1"},"returnParameters":{"id":368,"nodeType":"ParameterList","parameters":[],"src":"2680:0:1"},"scope":378,"src":"2621:60:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":370,"nodeType":"StructuredDocumentation","src":"2687:491:1","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`."},"functionSelector":"36568abe","id":377,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"3192:12:1","nodeType":"FunctionDefinition","parameters":{"id":375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":372,"mutability":"mutable","name":"role","nameLocation":"3213:4:1","nodeType":"VariableDeclaration","scope":377,"src":"3205:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3205:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":374,"mutability":"mutable","name":"callerConfirmation","nameLocation":"3227:18:1","nodeType":"VariableDeclaration","scope":377,"src":"3219:26:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":373,"name":"address","nodeType":"ElementaryTypeName","src":"3219:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3204:42:1"},"returnParameters":{"id":376,"nodeType":"ParameterList","parameters":[],"src":"3255:0:1"},"scope":378,"src":"3183:73:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":379,"src":"225:3033:1","usedErrors":[305,308],"usedEvents":[317,326,335]}],"src":"109:3150:1"},"id":1},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[408]},"id":409,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":380,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:2"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":381,"nodeType":"StructuredDocumentation","src":"127:496:2","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":408,"linearizedBaseContracts":[408],"name":"Context","nameLocation":"642:7:2","nodeType":"ContractDefinition","nodes":[{"body":{"id":389,"nodeType":"Block","src":"718:34:2","statements":[{"expression":{"expression":{"id":386,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"735:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:2","memberName":"sender","nodeType":"MemberAccess","src":"735:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":385,"id":388,"nodeType":"Return","src":"728:17:2"}]},"id":390,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"665:10:2","nodeType":"FunctionDefinition","parameters":{"id":382,"nodeType":"ParameterList","parameters":[],"src":"675:2:2"},"returnParameters":{"id":385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":384,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":390,"src":"709:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":383,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"708:9:2"},"scope":408,"src":"656:96:2","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":398,"nodeType":"Block","src":"825:32:2","statements":[{"expression":{"expression":{"id":395,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"846:4:2","memberName":"data","nodeType":"MemberAccess","src":"842:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":394,"id":397,"nodeType":"Return","src":"835:15:2"}]},"id":399,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"767:8:2","nodeType":"FunctionDefinition","parameters":{"id":391,"nodeType":"ParameterList","parameters":[],"src":"775:2:2"},"returnParameters":{"id":394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":393,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":399,"src":"809:14:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":392,"name":"bytes","nodeType":"ElementaryTypeName","src":"809:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"808:16:2"},"scope":408,"src":"758:99:2","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":406,"nodeType":"Block","src":"935:25:2","statements":[{"expression":{"hexValue":"30","id":404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"952:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":403,"id":405,"nodeType":"Return","src":"945:8:2"}]},"id":407,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"872:20:2","nodeType":"FunctionDefinition","parameters":{"id":400,"nodeType":"ParameterList","parameters":[],"src":"892:2:2"},"returnParameters":{"id":403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":407,"src":"926:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":401,"name":"uint256","nodeType":"ElementaryTypeName","src":"926:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"925:9:2"},"scope":408,"src":"863:97:2","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":409,"src":"624:338:2","usedErrors":[],"usedEvents":[]}],"src":"101:862:2"},"id":2},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[432],"IERC165":[444]},"id":433,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":410,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"114:24:3"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":412,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":433,"sourceUnit":445,"src":"140:38:3","symbolAliases":[{"foreign":{"id":411,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":444,"src":"148:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":414,"name":"IERC165","nameLocations":["687:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":444,"src":"687:7:3"},"id":415,"nodeType":"InheritanceSpecifier","src":"687:7:3"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":413,"nodeType":"StructuredDocumentation","src":"180:478:3","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```"},"fullyImplemented":true,"id":432,"linearizedBaseContracts":[432,444],"name":"ERC165","nameLocation":"677:6:3","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[443],"body":{"id":430,"nodeType":"Block","src":"844:64:3","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":423,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":418,"src":"861:11:3","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":425,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":444,"src":"881:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$444_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$444_$","typeString":"type(contract IERC165)"}],"id":424,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"876:4:3","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"876:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$444","typeString":"type(contract IERC165)"}},"id":427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"890:11:3","memberName":"interfaceId","nodeType":"MemberAccess","src":"876:25:3","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"861:40:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":422,"id":429,"nodeType":"Return","src":"854:47:3"}]},"documentation":{"id":416,"nodeType":"StructuredDocumentation","src":"701:56:3","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":431,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"771:17:3","nodeType":"FunctionDefinition","parameters":{"id":419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":418,"mutability":"mutable","name":"interfaceId","nameLocation":"796:11:3","nodeType":"VariableDeclaration","scope":431,"src":"789:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":417,"name":"bytes4","nodeType":"ElementaryTypeName","src":"789:6:3","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"788:20:3"},"returnParameters":{"id":422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":421,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":431,"src":"838:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":420,"name":"bool","nodeType":"ElementaryTypeName","src":"838:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"837:6:3"},"scope":432,"src":"762:146:3","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":433,"src":"659:251:3","usedErrors":[],"usedEvents":[]}],"src":"114:797:3"},"id":3},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[444]},"id":445,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":434,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"115:24:4"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":435,"nodeType":"StructuredDocumentation","src":"141:279:4","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":444,"linearizedBaseContracts":[444],"name":"IERC165","nameLocation":"431:7:4","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":436,"nodeType":"StructuredDocumentation","src":"445:340:4","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":443,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"799:17:4","nodeType":"FunctionDefinition","parameters":{"id":439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":438,"mutability":"mutable","name":"interfaceId","nameLocation":"824:11:4","nodeType":"VariableDeclaration","scope":443,"src":"817:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":437,"name":"bytes4","nodeType":"ElementaryTypeName","src":"817:6:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"816:20:4"},"returnParameters":{"id":442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":443,"src":"860:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":440,"name":"bool","nodeType":"ElementaryTypeName","src":"860:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"859:6:4"},"scope":444,"src":"790:76:4","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":445,"src":"421:447:4","usedErrors":[],"usedEvents":[]}],"src":"115:754:4"},"id":4},"contracts/CcsmBpiStateAnchor.sol":{"ast":{"absolutePath":"contracts/CcsmBpiStateAnchor.sol","exportedSymbols":{"AccessControl":[295],"CcsmBpiStateAnchor":[588],"Context":[408],"ERC165":[432],"IAccessControl":[378]},"id":589,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":446,"literals":["solidity","0.8",".24"],"nodeType":"PragmaDirective","src":"38:23:5"},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","id":447,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":589,"sourceUnit":296,"src":"63:58:5","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":448,"name":"AccessControl","nameLocations":["154:13:5"],"nodeType":"IdentifierPath","referencedDeclaration":295,"src":"154:13:5"},"id":449,"nodeType":"InheritanceSpecifier","src":"154:13:5"}],"canonicalName":"CcsmBpiStateAnchor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":588,"linearizedBaseContracts":[588,295,432,444,378,408],"name":"CcsmBpiStateAnchor","nameLocation":"132:18:5","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"513ec2f8","id":453,"mutability":"mutable","name":"anchorHashStore","nameLocation":"205:15:5","nodeType":"VariableDeclaration","scope":588,"src":"172:48:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string => string)"},"typeName":{"id":452,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":450,"name":"string","nodeType":"ElementaryTypeName","src":"180:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"172:25:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":451,"name":"string","nodeType":"ElementaryTypeName","src":"190:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"public"},{"anonymous":false,"eventSelector":"6468084a45bfadcd3a84169a78a1a25c53317fc97f185e4037e0696cfc913ccc","id":459,"name":"AnchorHashSet","nameLocation":"230:13:5","nodeType":"EventDefinition","parameters":{"id":458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":455,"indexed":true,"mutability":"mutable","name":"workgroupId","nameLocation":"259:11:5","nodeType":"VariableDeclaration","scope":459,"src":"244:26:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":454,"name":"string","nodeType":"ElementaryTypeName","src":"244:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":457,"indexed":false,"mutability":"mutable","name":"anchorHash","nameLocation":"279:10:5","nodeType":"VariableDeclaration","scope":459,"src":"272:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":456,"name":"string","nodeType":"ElementaryTypeName","src":"272:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"243:47:5"},"src":"224:67:5"},{"constant":true,"functionSelector":"75b238fc","id":464,"mutability":"constant","name":"ADMIN_ROLE","nameLocation":"319:10:5","nodeType":"VariableDeclaration","scope":588,"src":"295:60:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":460,"name":"bytes32","nodeType":"ElementaryTypeName","src":"295:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"41444d494e5f524f4c45","id":462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"342:12:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775","typeString":"literal_string \"ADMIN_ROLE\""},"value":"ADMIN_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775","typeString":"literal_string \"ADMIN_ROLE\""}],"id":461,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"332:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"332:23:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"body":{"id":496,"nodeType":"Block","src":"397:225:5","statements":[{"expression":{"arguments":[{"id":471,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"414:18:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":472,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"434:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"438:6:5","memberName":"sender","nodeType":"MemberAccess","src":"434:10:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":470,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"403:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"403:42:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":475,"nodeType":"ExpressionStatement","src":"403:42:5"},{"body":{"id":494,"nodeType":"Block","src":"534:84:5","statements":[{"expression":{"arguments":[{"id":488,"name":"ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"553:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":489,"name":"admins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":467,"src":"565:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":491,"indexExpression":{"id":490,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"572:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"565:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":487,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"542:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"542:33:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":493,"nodeType":"ExpressionStatement","src":"542:33:5"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"510:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":481,"name":"admins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":467,"src":"514:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"521:6:5","memberName":"length","nodeType":"MemberAccess","src":"514:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"510:17:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":495,"initializationExpression":{"assignments":[477],"declarations":[{"constant":false,"id":477,"mutability":"mutable","name":"i","nameLocation":"503:1:5","nodeType":"VariableDeclaration","scope":495,"src":"498:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":476,"name":"uint","nodeType":"ElementaryTypeName","src":"498:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":479,"initialValue":{"hexValue":"30","id":478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"507:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"498:10:5"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"529:3:5","subExpression":{"id":484,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"529:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":486,"nodeType":"ExpressionStatement","src":"529:3:5"},"nodeType":"ForStatement","src":"493:125:5"}]},"id":497,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":467,"mutability":"mutable","name":"admins","nameLocation":"389:6:5","nodeType":"VariableDeclaration","scope":497,"src":"372:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":465,"name":"address","nodeType":"ElementaryTypeName","src":"372:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":466,"nodeType":"ArrayTypeName","src":"372:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"371:25:5"},"returnParameters":{"id":469,"nodeType":"ParameterList","parameters":[],"src":"397:0:5"},"scope":588,"src":"360:262:5","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":561,"nodeType":"Block","src":"739:462:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":509,"name":"_workgroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":499,"src":"759:12:5","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"753:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":507,"name":"bytes","nodeType":"ElementaryTypeName","src":"753:5:5","typeDescriptions":{}}},"id":510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"753:19:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"773:6:5","memberName":"length","nodeType":"MemberAccess","src":"753:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"782:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"753:30:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"576f726b67726f757049642063616e6e6f7420626520656d707479","id":514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"785:29:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_78c1e73fefe3f4316304254051aea4b3cd1dff7c956954d148b846fe8ffe2a0a","typeString":"literal_string \"WorkgroupId cannot be empty\""},"value":"WorkgroupId cannot be empty"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_78c1e73fefe3f4316304254051aea4b3cd1dff7c956954d148b846fe8ffe2a0a","typeString":"literal_string \"WorkgroupId cannot be empty\""}],"id":506,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"745:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"745:70:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":516,"nodeType":"ExpressionStatement","src":"745:70:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":520,"name":"_workgroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":499,"src":"842:12:5","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"836:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":518,"name":"bytes","nodeType":"ElementaryTypeName","src":"836:5:5","typeDescriptions":{}}},"id":521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"836:19:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"856:6:5","memberName":"length","nodeType":"MemberAccess","src":"836:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3336","id":523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"865:2:5","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"36"},"src":"836:31:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"576f726b67726f757049642063616e6e6f7420657863656564203336206279746573","id":525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"875:36:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_580a2190317e559c7d04a8b4ee7133ca2ccde26681dd0e5271b6f32aec444efa","typeString":"literal_string \"WorkgroupId cannot exceed 36 bytes\""},"value":"WorkgroupId cannot exceed 36 bytes"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_580a2190317e559c7d04a8b4ee7133ca2ccde26681dd0e5271b6f32aec444efa","typeString":"literal_string \"WorkgroupId cannot exceed 36 bytes\""}],"id":517,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"821:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"821:96:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":527,"nodeType":"ExpressionStatement","src":"821:96:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":531,"name":"_anchorHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":501,"src":"937:11:5","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"931:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":529,"name":"bytes","nodeType":"ElementaryTypeName","src":"931:5:5","typeDescriptions":{}}},"id":532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"931:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"950:6:5","memberName":"length","nodeType":"MemberAccess","src":"931:25:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"959:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"931:29:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416e63686f72486173682063616e6e6f7420626520656d707479","id":536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"962:28:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_a3a00e5cebac6883c44ba7b7b2dc537ce06da1609d1fbae9a9e21d5fd543a3ca","typeString":"literal_string \"AnchorHash cannot be empty\""},"value":"AnchorHash cannot be empty"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a3a00e5cebac6883c44ba7b7b2dc537ce06da1609d1fbae9a9e21d5fd543a3ca","typeString":"literal_string \"AnchorHash cannot be empty\""}],"id":528,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"923:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:68:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":538,"nodeType":"ExpressionStatement","src":"923:68:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":542,"name":"_anchorHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":501,"src":"1018:11:5","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1012:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":540,"name":"bytes","nodeType":"ElementaryTypeName","src":"1012:5:5","typeDescriptions":{}}},"id":543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1012:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1031:6:5","memberName":"length","nodeType":"MemberAccess","src":"1012:25:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"323536","id":545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1041:3:5","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"1012:32:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416e63686f72486173682063616e6e6f742065786365656420323536206279746573","id":547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1052:36:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_917787271d803f79cf82ae633fa9817a11c907186eb4e8b04a4a8343d3facc8b","typeString":"literal_string \"AnchorHash cannot exceed 256 bytes\""},"value":"AnchorHash cannot exceed 256 bytes"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_917787271d803f79cf82ae633fa9817a11c907186eb4e8b04a4a8343d3facc8b","typeString":"literal_string \"AnchorHash cannot exceed 256 bytes\""}],"id":539,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"997:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"997:97:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":549,"nodeType":"ExpressionStatement","src":"997:97:5"},{"expression":{"id":554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":550,"name":"anchorHashStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"1101:15:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string memory => string storage ref)"}},"id":552,"indexExpression":{"id":551,"name":"_workgroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":499,"src":"1117:12:5","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1101:29:5","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":553,"name":"_anchorHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":501,"src":"1133:11:5","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"1101:43:5","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":555,"nodeType":"ExpressionStatement","src":"1101:43:5"},{"eventCall":{"arguments":[{"id":557,"name":"_workgroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":499,"src":"1170:12:5","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":558,"name":"_anchorHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":501,"src":"1184:11:5","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":556,"name":"AnchorHashSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":459,"src":"1156:13:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1156:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":560,"nodeType":"EmitStatement","src":"1151:45:5"}]},"functionSelector":"2588cd55","id":562,"implemented":true,"kind":"function","modifiers":[{"id":504,"kind":"modifierInvocation","modifierName":{"id":503,"name":"onlyAdmin","nameLocations":["729:9:5"],"nodeType":"IdentifierPath","referencedDeclaration":587,"src":"729:9:5"},"nodeType":"ModifierInvocation","src":"729:9:5"}],"name":"setAnchorHash","nameLocation":"635:13:5","nodeType":"FunctionDefinition","parameters":{"id":502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":499,"mutability":"mutable","name":"_workgroupId","nameLocation":"670:12:5","nodeType":"VariableDeclaration","scope":562,"src":"654:28:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":498,"name":"string","nodeType":"ElementaryTypeName","src":"654:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":501,"mutability":"mutable","name":"_anchorHash","nameLocation":"704:11:5","nodeType":"VariableDeclaration","scope":562,"src":"688:27:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":500,"name":"string","nodeType":"ElementaryTypeName","src":"688:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"648:71:5"},"returnParameters":{"id":505,"nodeType":"ParameterList","parameters":[],"src":"739:0:5"},"scope":588,"src":"626:575:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":573,"nodeType":"Block","src":"1304:47:5","statements":[{"expression":{"baseExpression":{"id":569,"name":"anchorHashStore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"1317:15:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string memory => string storage ref)"}},"id":571,"indexExpression":{"id":570,"name":"_workgroupId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":564,"src":"1333:12:5","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1317:29:5","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":568,"id":572,"nodeType":"Return","src":"1310:36:5"}]},"functionSelector":"890f10a0","id":574,"implemented":true,"kind":"function","modifiers":[],"name":"getAnchorHash","nameLocation":"1214:13:5","nodeType":"FunctionDefinition","parameters":{"id":565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":564,"mutability":"mutable","name":"_workgroupId","nameLocation":"1249:12:5","nodeType":"VariableDeclaration","scope":574,"src":"1233:28:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":563,"name":"string","nodeType":"ElementaryTypeName","src":"1233:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1227:38:5"},"returnParameters":{"id":568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":567,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":574,"src":"1289:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":566,"name":"string","nodeType":"ElementaryTypeName","src":"1289:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1288:15:5"},"scope":588,"src":"1205:146:5","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":586,"nodeType":"Block","src":"1376:113:5","statements":[{"expression":{"arguments":[{"arguments":[{"id":578,"name":"ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"1405:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":579,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1417:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1421:6:5","memberName":"sender","nodeType":"MemberAccess","src":"1417:10:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":577,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80,"src":"1397:7:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1397:31:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6e","id":582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1436:35:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b","typeString":"literal_string \"Only admin can call this function\""},"value":"Only admin can call this function"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b","typeString":"literal_string \"Only admin can call this function\""}],"id":576,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1382:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1382:95:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":584,"nodeType":"ExpressionStatement","src":"1382:95:5"},{"id":585,"nodeType":"PlaceholderStatement","src":"1483:1:5"}]},"id":587,"name":"onlyAdmin","nameLocation":"1364:9:5","nodeType":"ModifierDefinition","parameters":{"id":575,"nodeType":"ParameterList","parameters":[],"src":"1373:2:5"},"src":"1355:134:5","virtual":false,"visibility":"internal"}],"scope":589,"src":"123:1368:5","usedErrors":[305,308],"usedEvents":[317,326,335,459]}],"src":"38:1454:5"},"id":5},"contracts/workstep1Verifier.sol":{"ast":{"absolutePath":"contracts/workstep1Verifier.sol","exportedSymbols":{"PlonkVerifier":[816]},"id":817,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":590,"literals":["solidity",">=","0.7",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"799:31:6"},{"abstract":false,"baseContracts":[],"canonicalName":"PlonkVerifier","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":816,"linearizedBaseContracts":[816],"name":"PlonkVerifier","nameLocation":"841:13:6","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":593,"mutability":"constant","name":"n","nameLocation":"882:1:6","nodeType":"VariableDeclaration","scope":816,"src":"866:27:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":591,"name":"uint32","nodeType":"ElementaryTypeName","src":"866:6:6","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"value":{"hexValue":"3332373638","id":592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"888:5:6","typeDescriptions":{"typeIdentifier":"t_rational_32768_by_1","typeString":"int_const 32768"},"value":"32768"},"visibility":"internal"},{"constant":true,"id":596,"mutability":"constant","name":"nPublic","nameLocation":"915:7:6","nodeType":"VariableDeclaration","scope":816,"src":"899:28:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":594,"name":"uint16","nodeType":"ElementaryTypeName","src":"899:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"926:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":599,"mutability":"constant","name":"nLagrange","nameLocation":"949:9:6","nodeType":"VariableDeclaration","scope":816,"src":"933:29:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":597,"name":"uint16","nodeType":"ElementaryTypeName","src":"933:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"961:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":602,"mutability":"constant","name":"Qmx","nameLocation":"990:3:6","nodeType":"VariableDeclaration","scope":816,"src":"973:100:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":600,"name":"uint256","nodeType":"ElementaryTypeName","src":"973:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130313934353135393730353939363535313039323832393131353833353239353635383439333830313133313935393332333537313731393237383730383031383236313337333037373734","id":601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"996:77:6","typeDescriptions":{"typeIdentifier":"t_rational_10194515970599655109282911583529565849380113195932357171927870801826137307774_by_1","typeString":"int_const 1019...(69 digits omitted)...7774"},"value":"10194515970599655109282911583529565849380113195932357171927870801826137307774"},"visibility":"internal"},{"constant":true,"id":605,"mutability":"constant","name":"Qmy","nameLocation":"1096:3:6","nodeType":"VariableDeclaration","scope":816,"src":"1079:100:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":603,"name":"uint256","nodeType":"ElementaryTypeName","src":"1079:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3133313430393430303131343433343930393431323232313030373032383835323331333336393333303138303033303530313333373533363639333339373835343130393439373839333138","id":604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1102:77:6","typeDescriptions":{"typeIdentifier":"t_rational_13140940011443490941222100702885231336933018003050133753669339785410949789318_by_1","typeString":"int_const 1314...(69 digits omitted)...9318"},"value":"13140940011443490941222100702885231336933018003050133753669339785410949789318"},"visibility":"internal"},{"constant":true,"id":608,"mutability":"constant","name":"Qlx","nameLocation":"1202:3:6","nodeType":"VariableDeclaration","scope":816,"src":"1185:99:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":606,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"39303735373032383231373932353034383336333435313039303331363039313231363536333336343632333733383735323533353737353636383831313937393036303335363534373736","id":607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1208:76:6","typeDescriptions":{"typeIdentifier":"t_rational_9075702821792504836345109031609121656336462373875253577566881197906035654776_by_1","typeString":"int_const 9075...(68 digits omitted)...4776"},"value":"9075702821792504836345109031609121656336462373875253577566881197906035654776"},"visibility":"internal"},{"constant":true,"id":611,"mutability":"constant","name":"Qly","nameLocation":"1307:3:6","nodeType":"VariableDeclaration","scope":816,"src":"1290:100:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":609,"name":"uint256","nodeType":"ElementaryTypeName","src":"1290:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3138393534303337313939373036383039393138303738393738353639363034303336323731373139303931323231333231353232353135323830393936343534363836393539363334363637","id":610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1313:77:6","typeDescriptions":{"typeIdentifier":"t_rational_18954037199706809918078978569604036271719091221321522515280996454686959634667_by_1","typeString":"int_const 1895...(69 digits omitted)...4667"},"value":"18954037199706809918078978569604036271719091221321522515280996454686959634667"},"visibility":"internal"},{"constant":true,"id":614,"mutability":"constant","name":"Qrx","nameLocation":"1413:3:6","nodeType":"VariableDeclaration","scope":816,"src":"1396:100:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":612,"name":"uint256","nodeType":"ElementaryTypeName","src":"1396:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3134313235373339373534393539343235313132393531343438353635303233303637303733323732333536343733383537333837313934383638313436373533313339333431373337343831","id":613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1419:77:6","typeDescriptions":{"typeIdentifier":"t_rational_14125739754959425112951448565023067073272356473857387194868146753139341737481_by_1","typeString":"int_const 1412...(69 digits omitted)...7481"},"value":"14125739754959425112951448565023067073272356473857387194868146753139341737481"},"visibility":"internal"},{"constant":true,"id":617,"mutability":"constant","name":"Qry","nameLocation":"1519:3:6","nodeType":"VariableDeclaration","scope":816,"src":"1502:99:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":615,"name":"uint256","nodeType":"ElementaryTypeName","src":"1502:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"39323131383034383032383738343532323539363637303234383737383339333233343137343933383130303234343132323934373538353136393734303336393739333038313336393139","id":616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1525:76:6","typeDescriptions":{"typeIdentifier":"t_rational_9211804802878452259667024877839323417493810024412294758516974036979308136919_by_1","typeString":"int_const 9211...(68 digits omitted)...6919"},"value":"9211804802878452259667024877839323417493810024412294758516974036979308136919"},"visibility":"internal"},{"constant":true,"id":620,"mutability":"constant","name":"Qox","nameLocation":"1624:3:6","nodeType":"VariableDeclaration","scope":816,"src":"1607:100:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":618,"name":"uint256","nodeType":"ElementaryTypeName","src":"1607:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3133333532353933323635383332333532363938333932333334393031373139353930323136303833363532353530353130373635323831373739303936383930373932303836313135313438","id":619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1630:77:6","typeDescriptions":{"typeIdentifier":"t_rational_13352593265832352698392334901719590216083652550510765281779096890792086115148_by_1","typeString":"int_const 1335...(69 digits omitted)...5148"},"value":"13352593265832352698392334901719590216083652550510765281779096890792086115148"},"visibility":"internal"},{"constant":true,"id":623,"mutability":"constant","name":"Qoy","nameLocation":"1730:3:6","nodeType":"VariableDeclaration","scope":816,"src":"1713:100:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":621,"name":"uint256","nodeType":"ElementaryTypeName","src":"1713:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3231313731323132323436393939323734383238323333373631323738363139343836333930303833323637353639323537343237393331343136303230373438323839353937373339393232","id":622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1736:77:6","typeDescriptions":{"typeIdentifier":"t_rational_21171212246999274828233761278619486390083267569257427931416020748289597739922_by_1","typeString":"int_const 2117...(69 digits omitted)...9922"},"value":"21171212246999274828233761278619486390083267569257427931416020748289597739922"},"visibility":"internal"},{"constant":true,"id":626,"mutability":"constant","name":"Qcx","nameLocation":"1836:3:6","nodeType":"VariableDeclaration","scope":816,"src":"1819:99:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":624,"name":"uint256","nodeType":"ElementaryTypeName","src":"1819:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"35343830303536363836343538393733353634303038303538323139313033343831393332393237353131353030393639373734343635323732353333303830373038373936343536393136","id":625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1842:76:6","typeDescriptions":{"typeIdentifier":"t_rational_5480056686458973564008058219103481932927511500969774465272533080708796456916_by_1","typeString":"int_const 5480...(68 digits omitted)...6916"},"value":"5480056686458973564008058219103481932927511500969774465272533080708796456916"},"visibility":"internal"},{"constant":true,"id":629,"mutability":"constant","name":"Qcy","nameLocation":"1941:3:6","nodeType":"VariableDeclaration","scope":816,"src":"1924:100:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":627,"name":"uint256","nodeType":"ElementaryTypeName","src":"1924:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3138343837363632333035313238313539333032323436393135323739333833333131313838333836353236373232393538303234343130373334333936373436323439383936393030393934","id":628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1947:77:6","typeDescriptions":{"typeIdentifier":"t_rational_18487662305128159302246915279383311188386526722958024410734396746249896900994_by_1","typeString":"int_const 1848...(69 digits omitted)...0994"},"value":"18487662305128159302246915279383311188386526722958024410734396746249896900994"},"visibility":"internal"},{"constant":true,"id":632,"mutability":"constant","name":"S1x","nameLocation":"2047:3:6","nodeType":"VariableDeclaration","scope":816,"src":"2030:100:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":630,"name":"uint256","nodeType":"ElementaryTypeName","src":"2030:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3137343337363636353032343935383037343636333739363539333234353239313436363432393633323231363439323530373338333231323832393535353936343033383031353235353735","id":631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2053:77:6","typeDescriptions":{"typeIdentifier":"t_rational_17437666502495807466379659324529146642963221649250738321282955596403801525575_by_1","typeString":"int_const 1743...(69 digits omitted)...5575"},"value":"17437666502495807466379659324529146642963221649250738321282955596403801525575"},"visibility":"internal"},{"constant":true,"id":635,"mutability":"constant","name":"S1y","nameLocation":"2153:3:6","nodeType":"VariableDeclaration","scope":816,"src":"2136:100:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":633,"name":"uint256","nodeType":"ElementaryTypeName","src":"2136:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3138333737343835393739313333353430323339323838393236393239323434383835363530353537323831363737333832303532343733383434303634333533373836303231303338363534","id":634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2159:77:6","typeDescriptions":{"typeIdentifier":"t_rational_18377485979133540239288926929244885650557281677382052473844064353786021038654_by_1","typeString":"int_const 1837...(69 digits omitted)...8654"},"value":"18377485979133540239288926929244885650557281677382052473844064353786021038654"},"visibility":"internal"},{"constant":true,"id":638,"mutability":"constant","name":"S2x","nameLocation":"2259:3:6","nodeType":"VariableDeclaration","scope":816,"src":"2242:100:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":636,"name":"uint256","nodeType":"ElementaryTypeName","src":"2242:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130333333313531373630303134393638303239323534313032383633363131363338373835353532393731393338343233313632333339333236313335343339343038383334313136313534","id":637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2265:77:6","typeDescriptions":{"typeIdentifier":"t_rational_10333151760014968029254102863611638785552971938423162339326135439408834116154_by_1","typeString":"int_const 1033...(69 digits omitted)...6154"},"value":"10333151760014968029254102863611638785552971938423162339326135439408834116154"},"visibility":"internal"},{"constant":true,"id":641,"mutability":"constant","name":"S2y","nameLocation":"2365:3:6","nodeType":"VariableDeclaration","scope":816,"src":"2348:99:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":639,"name":"uint256","nodeType":"ElementaryTypeName","src":"2348:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"36353433343532373030353739303338373335323535303230383032353731373335363030353338363333343535353736373330313839353731353934373533363330313835353339343433","id":640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2371:76:6","typeDescriptions":{"typeIdentifier":"t_rational_6543452700579038735255020802571735600538633455576730189571594753630185539443_by_1","typeString":"int_const 6543...(68 digits omitted)...9443"},"value":"6543452700579038735255020802571735600538633455576730189571594753630185539443"},"visibility":"internal"},{"constant":true,"id":644,"mutability":"constant","name":"S3x","nameLocation":"2470:3:6","nodeType":"VariableDeclaration","scope":816,"src":"2453:99:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":642,"name":"uint256","nodeType":"ElementaryTypeName","src":"2453:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"38323835333933393630363138383537303134383037313438303839343735323934323232303934343630373635353439313531363035393532383836363430353131313033343039323037","id":643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2476:76:6","typeDescriptions":{"typeIdentifier":"t_rational_8285393960618857014807148089475294222094460765549151605952886640511103409207_by_1","typeString":"int_const 8285...(68 digits omitted)...9207"},"value":"8285393960618857014807148089475294222094460765549151605952886640511103409207"},"visibility":"internal"},{"constant":true,"id":647,"mutability":"constant","name":"S3y","nameLocation":"2575:3:6","nodeType":"VariableDeclaration","scope":816,"src":"2558:100:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":645,"name":"uint256","nodeType":"ElementaryTypeName","src":"2558:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3131393135333938383439373437353839323435393335323033393534313332363131323631343733363738353636363937393232333133303339313631363532333036323935383837343331","id":646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2581:77:6","typeDescriptions":{"typeIdentifier":"t_rational_11915398849747589245935203954132611261473678566697922313039161652306295887431_by_1","typeString":"int_const 1191...(69 digits omitted)...7431"},"value":"11915398849747589245935203954132611261473678566697922313039161652306295887431"},"visibility":"internal"},{"constant":true,"id":650,"mutability":"constant","name":"k1","nameLocation":"2681:2:6","nodeType":"VariableDeclaration","scope":816,"src":"2664:23:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":648,"name":"uint256","nodeType":"ElementaryTypeName","src":"2664:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2686:1:6","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":true,"id":653,"mutability":"constant","name":"k2","nameLocation":"2710:2:6","nodeType":"VariableDeclaration","scope":816,"src":"2693:23:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":651,"name":"uint256","nodeType":"ElementaryTypeName","src":"2693:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"33","id":652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2715:1:6","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"internal"},{"constant":true,"id":656,"mutability":"constant","name":"X2x1","nameLocation":"2739:4:6","nodeType":"VariableDeclaration","scope":816,"src":"2722:100:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":654,"name":"uint256","nodeType":"ElementaryTypeName","src":"2722:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37353530313731313431343839363432333233333435343936363833373337323434323737303833323536343234303034373037373135393938343833343039353430303430353837343636","id":655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2746:76:6","typeDescriptions":{"typeIdentifier":"t_rational_7550171141489642323345496683737244277083256424004707715998483409540040587466_by_1","typeString":"int_const 7550...(68 digits omitted)...7466"},"value":"7550171141489642323345496683737244277083256424004707715998483409540040587466"},"visibility":"internal"},{"constant":true,"id":659,"mutability":"constant","name":"X2x2","nameLocation":"2845:4:6","nodeType":"VariableDeclaration","scope":816,"src":"2828:101:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":657,"name":"uint256","nodeType":"ElementaryTypeName","src":"2828:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3133363734333237323831343536363030383935363037383139383438363832313539353032393536363038343739373335393735373632323138343131353939303333393831353539393638","id":658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2852:77:6","typeDescriptions":{"typeIdentifier":"t_rational_13674327281456600895607819848682159502956608479735975762218411599033981559968_by_1","typeString":"int_const 1367...(69 digits omitted)...9968"},"value":"13674327281456600895607819848682159502956608479735975762218411599033981559968"},"visibility":"internal"},{"constant":true,"id":662,"mutability":"constant","name":"X2y1","nameLocation":"2952:4:6","nodeType":"VariableDeclaration","scope":816,"src":"2935:101:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":660,"name":"uint256","nodeType":"ElementaryTypeName","src":"2935:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3136333239343237363535393135393434393038343834393734303630383938373631363833393734363436333138303734363339313938303033313837313534353235323534313736353230","id":661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2959:77:6","typeDescriptions":{"typeIdentifier":"t_rational_16329427655915944908484974060898761683974646318074639198003187154525254176520_by_1","typeString":"int_const 1632...(69 digits omitted)...6520"},"value":"16329427655915944908484974060898761683974646318074639198003187154525254176520"},"visibility":"internal"},{"constant":true,"id":665,"mutability":"constant","name":"X2y2","nameLocation":"3059:4:6","nodeType":"VariableDeclaration","scope":816,"src":"3042:101:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":663,"name":"uint256","nodeType":"ElementaryTypeName","src":"3042:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3139363034363331363533303430323033393131353233343934323133363738313838303035393837363232313934353435353732353239363038383335313833393336353639383230393930","id":664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3066:77:6","typeDescriptions":{"typeIdentifier":"t_rational_19604631653040203911523494213678188005987622194545572529608835183936569820990_by_1","typeString":"int_const 1960...(69 digits omitted)...0990"},"value":"19604631653040203911523494213678188005987622194545572529608835183936569820990"},"visibility":"internal"},{"constant":true,"id":668,"mutability":"constant","name":"q","nameLocation":"3171:1:6","nodeType":"VariableDeclaration","scope":816,"src":"3154:98:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":666,"name":"uint256","nodeType":"ElementaryTypeName","src":"3154:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137","id":667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3175:77:6","typeDescriptions":{"typeIdentifier":"t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1","typeString":"int_const 2188...(69 digits omitted)...5617"},"value":"21888242871839275222246405745257275088548364400416034343698204186575808495617"},"visibility":"internal"},{"constant":true,"id":671,"mutability":"constant","name":"qf","nameLocation":"3275:2:6","nodeType":"VariableDeclaration","scope":816,"src":"3258:99:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":669,"name":"uint256","nodeType":"ElementaryTypeName","src":"3258:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833","id":670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3280:77:6","typeDescriptions":{"typeIdentifier":"t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1","typeString":"int_const 2188...(69 digits omitted)...8583"},"value":"21888242871839275222246405745257275088696311157297823662689037894645226208583"},"visibility":"internal"},{"constant":true,"id":674,"mutability":"constant","name":"w1","nameLocation":"3380:2:6","nodeType":"VariableDeclaration","scope":816,"src":"3363:99:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":672,"name":"uint256","nodeType":"ElementaryTypeName","src":"3363:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3230343032393331373438383433353338393835313531303031323634353330303439383734383731353732393333363934363334383336353637303730363933393636313333373833383033","id":673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3385:77:6","typeDescriptions":{"typeIdentifier":"t_rational_20402931748843538985151001264530049874871572933694634836567070693966133783803_by_1","typeString":"int_const 2040...(69 digits omitted)...3803"},"value":"20402931748843538985151001264530049874871572933694634836567070693966133783803"},"visibility":"internal"},{"constant":true,"id":677,"mutability":"constant","name":"G1x","nameLocation":"3494:3:6","nodeType":"VariableDeclaration","scope":816,"src":"3477:24:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":675,"name":"uint256","nodeType":"ElementaryTypeName","src":"3477:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3500:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":680,"mutability":"constant","name":"G1y","nameLocation":"3524:3:6","nodeType":"VariableDeclaration","scope":816,"src":"3507:24:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":678,"name":"uint256","nodeType":"ElementaryTypeName","src":"3507:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3530:1:6","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":true,"id":683,"mutability":"constant","name":"G2x1","nameLocation":"3554:4:6","nodeType":"VariableDeclaration","scope":816,"src":"3537:101:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":681,"name":"uint256","nodeType":"ElementaryTypeName","src":"3537:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831","id":682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3561:77:6","typeDescriptions":{"typeIdentifier":"t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1","typeString":"int_const 1085...(69 digits omitted)...2781"},"value":"10857046999023057135944570762232829481370756359578518086990519993285655852781"},"visibility":"internal"},{"constant":true,"id":686,"mutability":"constant","name":"G2x2","nameLocation":"3661:4:6","nodeType":"VariableDeclaration","scope":816,"src":"3644:101:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":684,"name":"uint256","nodeType":"ElementaryTypeName","src":"3644:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334","id":685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3668:77:6","typeDescriptions":{"typeIdentifier":"t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1","typeString":"int_const 1155...(69 digits omitted)...5634"},"value":"11559732032986387107991004021392285783925812861821192530917403151452391805634"},"visibility":"internal"},{"constant":true,"id":689,"mutability":"constant","name":"G2y1","nameLocation":"3768:4:6","nodeType":"VariableDeclaration","scope":816,"src":"3751:100:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":687,"name":"uint256","nodeType":"ElementaryTypeName","src":"3751:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330","id":688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3775:76:6","typeDescriptions":{"typeIdentifier":"t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1","typeString":"int_const 8495...(68 digits omitted)...1930"},"value":"8495653923123431417604973247489272438418190587263600148770280649306958101930"},"visibility":"internal"},{"constant":true,"id":692,"mutability":"constant","name":"G2y2","nameLocation":"3874:4:6","nodeType":"VariableDeclaration","scope":816,"src":"3857:100:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":690,"name":"uint256","nodeType":"ElementaryTypeName","src":"3857:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331","id":691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3881:76:6","typeDescriptions":{"typeIdentifier":"t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1","typeString":"int_const 4082...(68 digits omitted)...3531"},"value":"4082367875863433681332203403145435568316851327593401208105741076214120093531"},"visibility":"internal"},{"constant":true,"id":695,"mutability":"constant","name":"pA","nameLocation":"3979:2:6","nodeType":"VariableDeclaration","scope":816,"src":"3963:23:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":693,"name":"uint16","nodeType":"ElementaryTypeName","src":"3963:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3332","id":694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3984:2:6","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"visibility":"internal"},{"constant":true,"id":698,"mutability":"constant","name":"pB","nameLocation":"4008:2:6","nodeType":"VariableDeclaration","scope":816,"src":"3992:23:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":696,"name":"uint16","nodeType":"ElementaryTypeName","src":"3992:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3936","id":697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4013:2:6","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"visibility":"internal"},{"constant":true,"id":701,"mutability":"constant","name":"pC","nameLocation":"4037:2:6","nodeType":"VariableDeclaration","scope":816,"src":"4021:24:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":699,"name":"uint16","nodeType":"ElementaryTypeName","src":"4021:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313630","id":700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4042:3:6","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},"visibility":"internal"},{"constant":true,"id":704,"mutability":"constant","name":"pZ","nameLocation":"4067:2:6","nodeType":"VariableDeclaration","scope":816,"src":"4051:24:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":702,"name":"uint16","nodeType":"ElementaryTypeName","src":"4051:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"323234","id":703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4072:3:6","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},"visibility":"internal"},{"constant":true,"id":707,"mutability":"constant","name":"pT1","nameLocation":"4097:3:6","nodeType":"VariableDeclaration","scope":816,"src":"4081:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":705,"name":"uint16","nodeType":"ElementaryTypeName","src":"4081:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"323838","id":706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4103:3:6","typeDescriptions":{"typeIdentifier":"t_rational_288_by_1","typeString":"int_const 288"},"value":"288"},"visibility":"internal"},{"constant":true,"id":710,"mutability":"constant","name":"pT2","nameLocation":"4128:3:6","nodeType":"VariableDeclaration","scope":816,"src":"4112:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":708,"name":"uint16","nodeType":"ElementaryTypeName","src":"4112:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"333532","id":709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4134:3:6","typeDescriptions":{"typeIdentifier":"t_rational_352_by_1","typeString":"int_const 352"},"value":"352"},"visibility":"internal"},{"constant":true,"id":713,"mutability":"constant","name":"pT3","nameLocation":"4159:3:6","nodeType":"VariableDeclaration","scope":816,"src":"4143:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":711,"name":"uint16","nodeType":"ElementaryTypeName","src":"4143:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"343136","id":712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4165:3:6","typeDescriptions":{"typeIdentifier":"t_rational_416_by_1","typeString":"int_const 416"},"value":"416"},"visibility":"internal"},{"constant":true,"id":716,"mutability":"constant","name":"pWxi","nameLocation":"4190:4:6","nodeType":"VariableDeclaration","scope":816,"src":"4174:26:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":714,"name":"uint16","nodeType":"ElementaryTypeName","src":"4174:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"343830","id":715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4197:3:6","typeDescriptions":{"typeIdentifier":"t_rational_480_by_1","typeString":"int_const 480"},"value":"480"},"visibility":"internal"},{"constant":true,"id":719,"mutability":"constant","name":"pWxiw","nameLocation":"4222:5:6","nodeType":"VariableDeclaration","scope":816,"src":"4206:27:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":717,"name":"uint16","nodeType":"ElementaryTypeName","src":"4206:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"353434","id":718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4230:3:6","typeDescriptions":{"typeIdentifier":"t_rational_544_by_1","typeString":"int_const 544"},"value":"544"},"visibility":"internal"},{"constant":true,"id":722,"mutability":"constant","name":"pEval_a","nameLocation":"4255:7:6","nodeType":"VariableDeclaration","scope":816,"src":"4239:29:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":720,"name":"uint16","nodeType":"ElementaryTypeName","src":"4239:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363038","id":721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4265:3:6","typeDescriptions":{"typeIdentifier":"t_rational_608_by_1","typeString":"int_const 608"},"value":"608"},"visibility":"internal"},{"constant":true,"id":725,"mutability":"constant","name":"pEval_b","nameLocation":"4290:7:6","nodeType":"VariableDeclaration","scope":816,"src":"4274:29:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":723,"name":"uint16","nodeType":"ElementaryTypeName","src":"4274:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363430","id":724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4300:3:6","typeDescriptions":{"typeIdentifier":"t_rational_640_by_1","typeString":"int_const 640"},"value":"640"},"visibility":"internal"},{"constant":true,"id":728,"mutability":"constant","name":"pEval_c","nameLocation":"4325:7:6","nodeType":"VariableDeclaration","scope":816,"src":"4309:29:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":726,"name":"uint16","nodeType":"ElementaryTypeName","src":"4309:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363732","id":727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4335:3:6","typeDescriptions":{"typeIdentifier":"t_rational_672_by_1","typeString":"int_const 672"},"value":"672"},"visibility":"internal"},{"constant":true,"id":731,"mutability":"constant","name":"pEval_s1","nameLocation":"4360:8:6","nodeType":"VariableDeclaration","scope":816,"src":"4344:30:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":729,"name":"uint16","nodeType":"ElementaryTypeName","src":"4344:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"373034","id":730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4371:3:6","typeDescriptions":{"typeIdentifier":"t_rational_704_by_1","typeString":"int_const 704"},"value":"704"},"visibility":"internal"},{"constant":true,"id":734,"mutability":"constant","name":"pEval_s2","nameLocation":"4396:8:6","nodeType":"VariableDeclaration","scope":816,"src":"4380:30:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":732,"name":"uint16","nodeType":"ElementaryTypeName","src":"4380:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"373336","id":733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4407:3:6","typeDescriptions":{"typeIdentifier":"t_rational_736_by_1","typeString":"int_const 736"},"value":"736"},"visibility":"internal"},{"constant":true,"id":737,"mutability":"constant","name":"pEval_zw","nameLocation":"4432:8:6","nodeType":"VariableDeclaration","scope":816,"src":"4416:30:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":735,"name":"uint16","nodeType":"ElementaryTypeName","src":"4416:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"373638","id":736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4443:3:6","typeDescriptions":{"typeIdentifier":"t_rational_768_by_1","typeString":"int_const 768"},"value":"768"},"visibility":"internal"},{"constant":true,"id":740,"mutability":"constant","name":"pEval_r","nameLocation":"4468:7:6","nodeType":"VariableDeclaration","scope":816,"src":"4452:29:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":738,"name":"uint16","nodeType":"ElementaryTypeName","src":"4452:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"383030","id":739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4478:3:6","typeDescriptions":{"typeIdentifier":"t_rational_800_by_1","typeString":"int_const 800"},"value":"800"},"visibility":"internal"},{"constant":true,"id":743,"mutability":"constant","name":"pAlpha","nameLocation":"4508:6:6","nodeType":"VariableDeclaration","scope":816,"src":"4492:26:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":741,"name":"uint16","nodeType":"ElementaryTypeName","src":"4492:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"30","id":742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4517:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"constant":true,"id":746,"mutability":"constant","name":"pBeta","nameLocation":"4540:5:6","nodeType":"VariableDeclaration","scope":816,"src":"4524:26:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":744,"name":"uint16","nodeType":"ElementaryTypeName","src":"4524:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3332","id":745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4548:2:6","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"visibility":"internal"},{"constant":true,"id":749,"mutability":"constant","name":"pGamma","nameLocation":"4572:6:6","nodeType":"VariableDeclaration","scope":816,"src":"4556:27:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":747,"name":"uint16","nodeType":"ElementaryTypeName","src":"4556:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3634","id":748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4581:2:6","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"visibility":"internal"},{"constant":true,"id":752,"mutability":"constant","name":"pXi","nameLocation":"4605:3:6","nodeType":"VariableDeclaration","scope":816,"src":"4589:24:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":750,"name":"uint16","nodeType":"ElementaryTypeName","src":"4589:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3936","id":751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4611:2:6","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"visibility":"internal"},{"constant":true,"id":755,"mutability":"constant","name":"pXin","nameLocation":"4635:4:6","nodeType":"VariableDeclaration","scope":816,"src":"4619:26:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":753,"name":"uint16","nodeType":"ElementaryTypeName","src":"4619:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313238","id":754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4642:3:6","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"visibility":"internal"},{"constant":true,"id":758,"mutability":"constant","name":"pBetaXi","nameLocation":"4667:7:6","nodeType":"VariableDeclaration","scope":816,"src":"4651:29:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":756,"name":"uint16","nodeType":"ElementaryTypeName","src":"4651:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313630","id":757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4677:3:6","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},"visibility":"internal"},{"constant":true,"id":761,"mutability":"constant","name":"pV1","nameLocation":"4702:3:6","nodeType":"VariableDeclaration","scope":816,"src":"4686:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":759,"name":"uint16","nodeType":"ElementaryTypeName","src":"4686:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313932","id":760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4708:3:6","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"visibility":"internal"},{"constant":true,"id":764,"mutability":"constant","name":"pV2","nameLocation":"4733:3:6","nodeType":"VariableDeclaration","scope":816,"src":"4717:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":762,"name":"uint16","nodeType":"ElementaryTypeName","src":"4717:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"323234","id":763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4739:3:6","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},"visibility":"internal"},{"constant":true,"id":767,"mutability":"constant","name":"pV3","nameLocation":"4764:3:6","nodeType":"VariableDeclaration","scope":816,"src":"4748:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":765,"name":"uint16","nodeType":"ElementaryTypeName","src":"4748:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"323536","id":766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4770:3:6","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"visibility":"internal"},{"constant":true,"id":770,"mutability":"constant","name":"pV4","nameLocation":"4795:3:6","nodeType":"VariableDeclaration","scope":816,"src":"4779:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":768,"name":"uint16","nodeType":"ElementaryTypeName","src":"4779:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"323838","id":769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4801:3:6","typeDescriptions":{"typeIdentifier":"t_rational_288_by_1","typeString":"int_const 288"},"value":"288"},"visibility":"internal"},{"constant":true,"id":773,"mutability":"constant","name":"pV5","nameLocation":"4826:3:6","nodeType":"VariableDeclaration","scope":816,"src":"4810:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":771,"name":"uint16","nodeType":"ElementaryTypeName","src":"4810:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"333230","id":772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4832:3:6","typeDescriptions":{"typeIdentifier":"t_rational_320_by_1","typeString":"int_const 320"},"value":"320"},"visibility":"internal"},{"constant":true,"id":776,"mutability":"constant","name":"pV6","nameLocation":"4857:3:6","nodeType":"VariableDeclaration","scope":816,"src":"4841:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":774,"name":"uint16","nodeType":"ElementaryTypeName","src":"4841:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"333532","id":775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4863:3:6","typeDescriptions":{"typeIdentifier":"t_rational_352_by_1","typeString":"int_const 352"},"value":"352"},"visibility":"internal"},{"constant":true,"id":779,"mutability":"constant","name":"pU","nameLocation":"4888:2:6","nodeType":"VariableDeclaration","scope":816,"src":"4872:24:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":777,"name":"uint16","nodeType":"ElementaryTypeName","src":"4872:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"333834","id":778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4893:3:6","typeDescriptions":{"typeIdentifier":"t_rational_384_by_1","typeString":"int_const 384"},"value":"384"},"visibility":"internal"},{"constant":true,"id":782,"mutability":"constant","name":"pPl","nameLocation":"4918:3:6","nodeType":"VariableDeclaration","scope":816,"src":"4902:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":780,"name":"uint16","nodeType":"ElementaryTypeName","src":"4902:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"343136","id":781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4924:3:6","typeDescriptions":{"typeIdentifier":"t_rational_416_by_1","typeString":"int_const 416"},"value":"416"},"visibility":"internal"},{"constant":true,"id":785,"mutability":"constant","name":"pEval_t","nameLocation":"4949:7:6","nodeType":"VariableDeclaration","scope":816,"src":"4933:29:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":783,"name":"uint16","nodeType":"ElementaryTypeName","src":"4933:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"343438","id":784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4959:3:6","typeDescriptions":{"typeIdentifier":"t_rational_448_by_1","typeString":"int_const 448"},"value":"448"},"visibility":"internal"},{"constant":true,"id":788,"mutability":"constant","name":"pA1","nameLocation":"4984:3:6","nodeType":"VariableDeclaration","scope":816,"src":"4968:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":786,"name":"uint16","nodeType":"ElementaryTypeName","src":"4968:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"343830","id":787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4990:3:6","typeDescriptions":{"typeIdentifier":"t_rational_480_by_1","typeString":"int_const 480"},"value":"480"},"visibility":"internal"},{"constant":true,"id":791,"mutability":"constant","name":"pB1","nameLocation":"5015:3:6","nodeType":"VariableDeclaration","scope":816,"src":"4999:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":789,"name":"uint16","nodeType":"ElementaryTypeName","src":"4999:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"353434","id":790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5021:3:6","typeDescriptions":{"typeIdentifier":"t_rational_544_by_1","typeString":"int_const 544"},"value":"544"},"visibility":"internal"},{"constant":true,"id":794,"mutability":"constant","name":"pZh","nameLocation":"5046:3:6","nodeType":"VariableDeclaration","scope":816,"src":"5030:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":792,"name":"uint16","nodeType":"ElementaryTypeName","src":"5030:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363038","id":793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5052:3:6","typeDescriptions":{"typeIdentifier":"t_rational_608_by_1","typeString":"int_const 608"},"value":"608"},"visibility":"internal"},{"constant":true,"id":797,"mutability":"constant","name":"pZhInv","nameLocation":"5077:6:6","nodeType":"VariableDeclaration","scope":816,"src":"5061:28:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":795,"name":"uint16","nodeType":"ElementaryTypeName","src":"5061:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363430","id":796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5086:3:6","typeDescriptions":{"typeIdentifier":"t_rational_640_by_1","typeString":"int_const 640"},"value":"640"},"visibility":"internal"},{"constant":true,"id":800,"mutability":"constant","name":"pEval_l1","nameLocation":"5116:8:6","nodeType":"VariableDeclaration","scope":816,"src":"5100:30:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":798,"name":"uint16","nodeType":"ElementaryTypeName","src":"5100:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363732","id":799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5127:3:6","typeDescriptions":{"typeIdentifier":"t_rational_672_by_1","typeString":"int_const 672"},"value":"672"},"visibility":"internal"},{"constant":true,"id":803,"mutability":"constant","name":"lastMem","nameLocation":"5167:7:6","nodeType":"VariableDeclaration","scope":816,"src":"5151:29:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":801,"name":"uint16","nodeType":"ElementaryTypeName","src":"5151:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"373034","id":802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5177:3:6","typeDescriptions":{"typeIdentifier":"t_rational_704_by_1","typeString":"int_const 704"},"value":"704"},"visibility":"internal"},{"body":{"id":814,"nodeType":"Block","src":"5281:19457:6","statements":[{"AST":{"nativeSrc":"5300:19423:6","nodeType":"YulBlock","src":"5300:19423:6","statements":[{"body":{"nativeSrc":"5463:694:6","nodeType":"YulBlock","src":"5463:694:6","statements":[{"nativeSrc":"5481:10:6","nodeType":"YulVariableDeclaration","src":"5481:10:6","value":{"kind":"number","nativeSrc":"5490:1:6","nodeType":"YulLiteral","src":"5490:1:6","type":"","value":"0"},"variables":[{"name":"t","nativeSrc":"5485:1:6","nodeType":"YulTypedName","src":"5485:1:6","type":""}]},{"nativeSrc":"5513:13:6","nodeType":"YulVariableDeclaration","src":"5513:13:6","value":{"kind":"number","nativeSrc":"5525:1:6","nodeType":"YulLiteral","src":"5525:1:6","type":"","value":"1"},"variables":[{"name":"newt","nativeSrc":"5517:4:6","nodeType":"YulTypedName","src":"5517:4:6","type":""}]},{"nativeSrc":"5543:10:6","nodeType":"YulVariableDeclaration","src":"5543:10:6","value":{"name":"q","nativeSrc":"5552:1:6","nodeType":"YulIdentifier","src":"5552:1:6"},"variables":[{"name":"r","nativeSrc":"5547:1:6","nodeType":"YulTypedName","src":"5547:1:6","type":""}]},{"nativeSrc":"5575:13:6","nodeType":"YulVariableDeclaration","src":"5575:13:6","value":{"name":"a","nativeSrc":"5587:1:6","nodeType":"YulIdentifier","src":"5587:1:6"},"variables":[{"name":"newr","nativeSrc":"5579:4:6","nodeType":"YulTypedName","src":"5579:4:6","type":""}]},{"nativeSrc":"5605:12:6","nodeType":"YulVariableDeclaration","src":"5605:12:6","variables":[{"name":"quotient","nativeSrc":"5609:8:6","nodeType":"YulTypedName","src":"5609:8:6","type":""}]},{"nativeSrc":"5634:7:6","nodeType":"YulVariableDeclaration","src":"5634:7:6","variables":[{"name":"aux","nativeSrc":"5638:3:6","nodeType":"YulTypedName","src":"5638:3:6","type":""}]},{"body":{"nativeSrc":"5692:317:6","nodeType":"YulBlock","src":"5692:317:6","statements":[{"nativeSrc":"5714:25:6","nodeType":"YulAssignment","src":"5714:25:6","value":{"arguments":[{"name":"r","nativeSrc":"5731:1:6","nodeType":"YulIdentifier","src":"5731:1:6"},{"name":"newr","nativeSrc":"5734:4:6","nodeType":"YulIdentifier","src":"5734:4:6"}],"functionName":{"name":"sdiv","nativeSrc":"5726:4:6","nodeType":"YulIdentifier","src":"5726:4:6"},"nativeSrc":"5726:13:6","nodeType":"YulFunctionCall","src":"5726:13:6"},"variableNames":[{"name":"quotient","nativeSrc":"5714:8:6","nodeType":"YulIdentifier","src":"5714:8:6"}]},{"nativeSrc":"5760:34:6","nodeType":"YulAssignment","src":"5760:34:6","value":{"arguments":[{"name":"t","nativeSrc":"5771:1:6","nodeType":"YulIdentifier","src":"5771:1:6"},{"arguments":[{"name":"quotient","nativeSrc":"5778:8:6","nodeType":"YulIdentifier","src":"5778:8:6"},{"name":"newt","nativeSrc":"5788:4:6","nodeType":"YulIdentifier","src":"5788:4:6"}],"functionName":{"name":"mul","nativeSrc":"5774:3:6","nodeType":"YulIdentifier","src":"5774:3:6"},"nativeSrc":"5774:19:6","nodeType":"YulFunctionCall","src":"5774:19:6"}],"functionName":{"name":"sub","nativeSrc":"5767:3:6","nodeType":"YulIdentifier","src":"5767:3:6"},"nativeSrc":"5767:27:6","nodeType":"YulFunctionCall","src":"5767:27:6"},"variableNames":[{"name":"aux","nativeSrc":"5760:3:6","nodeType":"YulIdentifier","src":"5760:3:6"}]},{"nativeSrc":"5815:8:6","nodeType":"YulAssignment","src":"5815:8:6","value":{"name":"newt","nativeSrc":"5819:4:6","nodeType":"YulIdentifier","src":"5819:4:6"},"variableNames":[{"name":"t","nativeSrc":"5815:1:6","nodeType":"YulIdentifier","src":"5815:1:6"}]},{"nativeSrc":"5844:10:6","nodeType":"YulAssignment","src":"5844:10:6","value":{"name":"aux","nativeSrc":"5851:3:6","nodeType":"YulIdentifier","src":"5851:3:6"},"variableNames":[{"name":"newt","nativeSrc":"5844:4:6","nodeType":"YulIdentifier","src":"5844:4:6"}]},{"nativeSrc":"5896:33:6","nodeType":"YulAssignment","src":"5896:33:6","value":{"arguments":[{"name":"r","nativeSrc":"5907:1:6","nodeType":"YulIdentifier","src":"5907:1:6"},{"arguments":[{"name":"quotient","nativeSrc":"5913:8:6","nodeType":"YulIdentifier","src":"5913:8:6"},{"name":"newr","nativeSrc":"5923:4:6","nodeType":"YulIdentifier","src":"5923:4:6"}],"functionName":{"name":"mul","nativeSrc":"5909:3:6","nodeType":"YulIdentifier","src":"5909:3:6"},"nativeSrc":"5909:19:6","nodeType":"YulFunctionCall","src":"5909:19:6"}],"functionName":{"name":"sub","nativeSrc":"5903:3:6","nodeType":"YulIdentifier","src":"5903:3:6"},"nativeSrc":"5903:26:6","nodeType":"YulFunctionCall","src":"5903:26:6"},"variableNames":[{"name":"aux","nativeSrc":"5896:3:6","nodeType":"YulIdentifier","src":"5896:3:6"}]},{"nativeSrc":"5950:9:6","nodeType":"YulAssignment","src":"5950:9:6","value":{"name":"newr","nativeSrc":"5955:4:6","nodeType":"YulIdentifier","src":"5955:4:6"},"variableNames":[{"name":"r","nativeSrc":"5950:1:6","nodeType":"YulIdentifier","src":"5950:1:6"}]},{"nativeSrc":"5980:11:6","nodeType":"YulAssignment","src":"5980:11:6","value":{"name":"aux","nativeSrc":"5988:3:6","nodeType":"YulIdentifier","src":"5988:3:6"},"variableNames":[{"name":"newr","nativeSrc":"5980:4:6","nodeType":"YulIdentifier","src":"5980:4:6"}]}]},"condition":{"name":"newr","nativeSrc":"5683:4:6","nodeType":"YulIdentifier","src":"5683:4:6"},"nativeSrc":"5675:334:6","nodeType":"YulForLoop","post":{"nativeSrc":"5688:3:6","nodeType":"YulBlock","src":"5688:3:6","statements":[]},"pre":{"nativeSrc":"5679:3:6","nodeType":"YulBlock","src":"5679:3:6","statements":[]},"src":"5675:334:6"},{"body":{"nativeSrc":"6055:15:6","nodeType":"YulBlock","src":"6055:15:6","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6064:1:6","nodeType":"YulLiteral","src":"6064:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"6066:1:6","nodeType":"YulLiteral","src":"6066:1:6","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6057:6:6","nodeType":"YulIdentifier","src":"6057:6:6"},"nativeSrc":"6057:11:6","nodeType":"YulFunctionCall","src":"6057:11:6"},"nativeSrc":"6057:11:6","nodeType":"YulExpressionStatement","src":"6057:11:6"}]},"condition":{"arguments":[{"name":"r","nativeSrc":"6049:1:6","nodeType":"YulIdentifier","src":"6049:1:6"},{"kind":"number","nativeSrc":"6052:1:6","nodeType":"YulLiteral","src":"6052:1:6","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"6046:2:6","nodeType":"YulIdentifier","src":"6046:2:6"},"nativeSrc":"6046:8:6","nodeType":"YulFunctionCall","src":"6046:8:6"},"nativeSrc":"6043:27:6","nodeType":"YulIf","src":"6043:27:6"},{"body":{"nativeSrc":"6100:17:6","nodeType":"YulBlock","src":"6100:17:6","statements":[{"nativeSrc":"6102:13:6","nodeType":"YulAssignment","src":"6102:13:6","value":{"arguments":[{"name":"t","nativeSrc":"6110:1:6","nodeType":"YulIdentifier","src":"6110:1:6"},{"name":"q","nativeSrc":"6113:1:6","nodeType":"YulIdentifier","src":"6113:1:6"}],"functionName":{"name":"add","nativeSrc":"6106:3:6","nodeType":"YulIdentifier","src":"6106:3:6"},"nativeSrc":"6106:9:6","nodeType":"YulFunctionCall","src":"6106:9:6"},"variableNames":[{"name":"t","nativeSrc":"6102:1:6","nodeType":"YulIdentifier","src":"6102:1:6"}]}]},"condition":{"arguments":[{"name":"t","nativeSrc":"6094:1:6","nodeType":"YulIdentifier","src":"6094:1:6"},{"kind":"number","nativeSrc":"6097:1:6","nodeType":"YulLiteral","src":"6097:1:6","type":"","value":"0"}],"functionName":{"name":"slt","nativeSrc":"6090:3:6","nodeType":"YulIdentifier","src":"6090:3:6"},"nativeSrc":"6090:9:6","nodeType":"YulFunctionCall","src":"6090:9:6"},"nativeSrc":"6087:30:6","nodeType":"YulIf","src":"6087:30:6"},{"nativeSrc":"6135:8:6","nodeType":"YulAssignment","src":"6135:8:6","value":{"name":"t","nativeSrc":"6142:1:6","nodeType":"YulIdentifier","src":"6142:1:6"},"variableNames":[{"name":"inv","nativeSrc":"6135:3:6","nodeType":"YulIdentifier","src":"6135:3:6"}]}]},"name":"inverse","nativeSrc":"5433:724:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"a","nativeSrc":"5450:1:6","nodeType":"YulTypedName","src":"5450:1:6","type":""},{"name":"q","nativeSrc":"5453:1:6","nodeType":"YulTypedName","src":"5453:1:6","type":""}],"returnVariables":[{"name":"inv","nativeSrc":"5459:3:6","nodeType":"YulTypedName","src":"5459:3:6","type":""}],"src":"5433:724:6"},{"body":{"nativeSrc":"6431:1485:6","nodeType":"YulBlock","src":"6431:1485:6","statements":[{"nativeSrc":"6454:23:6","nodeType":"YulVariableDeclaration","src":"6454:23:6","value":{"arguments":[{"kind":"number","nativeSrc":"6472:4:6","nodeType":"YulLiteral","src":"6472:4:6","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"6466:5:6","nodeType":"YulIdentifier","src":"6466:5:6"},"nativeSrc":"6466:11:6","nodeType":"YulFunctionCall","src":"6466:11:6"},"variables":[{"name":"pAux","nativeSrc":"6458:4:6","nodeType":"YulTypedName","src":"6458:4:6","type":""}]},{"nativeSrc":"6533:16:6","nodeType":"YulVariableDeclaration","src":"6533:16:6","value":{"name":"pVals","nativeSrc":"6544:5:6","nodeType":"YulIdentifier","src":"6544:5:6"},"variables":[{"name":"pIn","nativeSrc":"6537:3:6","nodeType":"YulTypedName","src":"6537:3:6","type":""}]},{"nativeSrc":"6566:37:6","nodeType":"YulVariableDeclaration","src":"6566:37:6","value":{"arguments":[{"name":"pVals","nativeSrc":"6585:5:6","nodeType":"YulIdentifier","src":"6585:5:6"},{"arguments":[{"name":"n","nativeSrc":"6596:1:6","nodeType":"YulIdentifier","src":"6596:1:6"},{"kind":"number","nativeSrc":"6599:2:6","nodeType":"YulLiteral","src":"6599:2:6","type":"","value":"32"}],"functionName":{"name":"mul","nativeSrc":"6592:3:6","nodeType":"YulIdentifier","src":"6592:3:6"},"nativeSrc":"6592:10:6","nodeType":"YulFunctionCall","src":"6592:10:6"}],"functionName":{"name":"add","nativeSrc":"6581:3:6","nodeType":"YulIdentifier","src":"6581:3:6"},"nativeSrc":"6581:22:6","nodeType":"YulFunctionCall","src":"6581:22:6"},"variables":[{"name":"lastPIn","nativeSrc":"6570:7:6","nodeType":"YulTypedName","src":"6570:7:6","type":""}]},{"nativeSrc":"6639:21:6","nodeType":"YulVariableDeclaration","src":"6639:21:6","value":{"arguments":[{"name":"pIn","nativeSrc":"6656:3:6","nodeType":"YulIdentifier","src":"6656:3:6"}],"functionName":{"name":"mload","nativeSrc":"6650:5:6","nodeType":"YulIdentifier","src":"6650:5:6"},"nativeSrc":"6650:10:6","nodeType":"YulFunctionCall","src":"6650:10:6"},"variables":[{"name":"acc","nativeSrc":"6643:3:6","nodeType":"YulTypedName","src":"6643:3:6","type":""}]},{"nativeSrc":"6709:19:6","nodeType":"YulAssignment","src":"6709:19:6","value":{"arguments":[{"name":"pIn","nativeSrc":"6720:3:6","nodeType":"YulIdentifier","src":"6720:3:6"},{"kind":"number","nativeSrc":"6725:2:6","nodeType":"YulLiteral","src":"6725:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6716:3:6","nodeType":"YulIdentifier","src":"6716:3:6"},"nativeSrc":"6716:12:6","nodeType":"YulFunctionCall","src":"6716:12:6"},"variableNames":[{"name":"pIn","nativeSrc":"6709:3:6","nodeType":"YulIdentifier","src":"6709:3:6"}]},{"nativeSrc":"6784:7:6","nodeType":"YulVariableDeclaration","src":"6784:7:6","variables":[{"name":"inv","nativeSrc":"6788:3:6","nodeType":"YulTypedName","src":"6788:3:6","type":""}]},{"body":{"nativeSrc":"6976:111:6","nodeType":"YulBlock","src":"6976:111:6","statements":[{"expression":{"arguments":[{"name":"pAux","nativeSrc":"7005:4:6","nodeType":"YulIdentifier","src":"7005:4:6"},{"name":"acc","nativeSrc":"7011:3:6","nodeType":"YulIdentifier","src":"7011:3:6"}],"functionName":{"name":"mstore","nativeSrc":"6998:6:6","nodeType":"YulIdentifier","src":"6998:6:6"},"nativeSrc":"6998:17:6","nodeType":"YulFunctionCall","src":"6998:17:6"},"nativeSrc":"6998:17:6","nodeType":"YulExpressionStatement","src":"6998:17:6"},{"nativeSrc":"7036:33:6","nodeType":"YulAssignment","src":"7036:33:6","value":{"arguments":[{"name":"acc","nativeSrc":"7050:3:6","nodeType":"YulIdentifier","src":"7050:3:6"},{"arguments":[{"name":"pIn","nativeSrc":"7061:3:6","nodeType":"YulIdentifier","src":"7061:3:6"}],"functionName":{"name":"mload","nativeSrc":"7055:5:6","nodeType":"YulIdentifier","src":"7055:5:6"},"nativeSrc":"7055:10:6","nodeType":"YulFunctionCall","src":"7055:10:6"},{"name":"q","nativeSrc":"7067:1:6","nodeType":"YulIdentifier","src":"7067:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"7043:6:6","nodeType":"YulIdentifier","src":"7043:6:6"},"nativeSrc":"7043:26:6","nodeType":"YulFunctionCall","src":"7043:26:6"},"variableNames":[{"name":"acc","nativeSrc":"7036:3:6","nodeType":"YulIdentifier","src":"7036:3:6"}]}]},"condition":{"arguments":[{"name":"pIn","nativeSrc":"6841:3:6","nodeType":"YulIdentifier","src":"6841:3:6"},{"name":"lastPIn","nativeSrc":"6846:7:6","nodeType":"YulIdentifier","src":"6846:7:6"}],"functionName":{"name":"lt","nativeSrc":"6838:2:6","nodeType":"YulIdentifier","src":"6838:2:6"},"nativeSrc":"6838:16:6","nodeType":"YulFunctionCall","src":"6838:16:6"},"nativeSrc":"6830:257:6","nodeType":"YulForLoop","post":{"nativeSrc":"6855:103:6","nodeType":"YulBlock","src":"6855:103:6","statements":[{"nativeSrc":"6878:21:6","nodeType":"YulAssignment","src":"6878:21:6","value":{"arguments":[{"name":"pAux","nativeSrc":"6890:4:6","nodeType":"YulIdentifier","src":"6890:4:6"},{"kind":"number","nativeSrc":"6896:2:6","nodeType":"YulLiteral","src":"6896:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6886:3:6","nodeType":"YulIdentifier","src":"6886:3:6"},"nativeSrc":"6886:13:6","nodeType":"YulFunctionCall","src":"6886:13:6"},"variableNames":[{"name":"pAux","nativeSrc":"6878:4:6","nodeType":"YulIdentifier","src":"6878:4:6"}]},{"nativeSrc":"6921:19:6","nodeType":"YulAssignment","src":"6921:19:6","value":{"arguments":[{"name":"pIn","nativeSrc":"6932:3:6","nodeType":"YulIdentifier","src":"6932:3:6"},{"kind":"number","nativeSrc":"6937:2:6","nodeType":"YulLiteral","src":"6937:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6928:3:6","nodeType":"YulIdentifier","src":"6928:3:6"},"nativeSrc":"6928:12:6","nodeType":"YulFunctionCall","src":"6928:12:6"},"variableNames":[{"name":"pIn","nativeSrc":"6921:3:6","nodeType":"YulIdentifier","src":"6921:3:6"}]}]},"pre":{"nativeSrc":"6834:3:6","nodeType":"YulBlock","src":"6834:3:6","statements":[]},"src":"6830:257:6"},{"nativeSrc":"7104:22:6","nodeType":"YulAssignment","src":"7104:22:6","value":{"arguments":[{"name":"acc","nativeSrc":"7119:3:6","nodeType":"YulIdentifier","src":"7119:3:6"},{"name":"q","nativeSrc":"7124:1:6","nodeType":"YulIdentifier","src":"7124:1:6"}],"functionName":{"name":"inverse","nativeSrc":"7111:7:6","nodeType":"YulIdentifier","src":"7111:7:6"},"nativeSrc":"7111:15:6","nodeType":"YulFunctionCall","src":"7111:15:6"},"variableNames":[{"name":"acc","nativeSrc":"7104:3:6","nodeType":"YulIdentifier","src":"7104:3:6"}]},{"nativeSrc":"7270:21:6","nodeType":"YulAssignment","src":"7270:21:6","value":{"arguments":[{"name":"pAux","nativeSrc":"7282:4:6","nodeType":"YulIdentifier","src":"7282:4:6"},{"kind":"number","nativeSrc":"7288:2:6","nodeType":"YulLiteral","src":"7288:2:6","type":"","value":"32"}],"functionName":{"name":"sub","nativeSrc":"7278:3:6","nodeType":"YulIdentifier","src":"7278:3:6"},"nativeSrc":"7278:13:6","nodeType":"YulFunctionCall","src":"7278:13:6"},"variableNames":[{"name":"pAux","nativeSrc":"7270:4:6","nodeType":"YulIdentifier","src":"7270:4:6"}]},{"nativeSrc":"7385:19:6","nodeType":"YulAssignment","src":"7385:19:6","value":{"arguments":[{"name":"pIn","nativeSrc":"7396:3:6","nodeType":"YulIdentifier","src":"7396:3:6"},{"kind":"number","nativeSrc":"7401:2:6","nodeType":"YulLiteral","src":"7401:2:6","type":"","value":"32"}],"functionName":{"name":"sub","nativeSrc":"7392:3:6","nodeType":"YulIdentifier","src":"7392:3:6"},"nativeSrc":"7392:12:6","nodeType":"YulFunctionCall","src":"7392:12:6"},"variableNames":[{"name":"pIn","nativeSrc":"7385:3:6","nodeType":"YulIdentifier","src":"7385:3:6"}]},{"nativeSrc":"7421:16:6","nodeType":"YulAssignment","src":"7421:16:6","value":{"name":"pVals","nativeSrc":"7432:5:6","nodeType":"YulIdentifier","src":"7432:5:6"},"variableNames":[{"name":"lastPIn","nativeSrc":"7421:7:6","nodeType":"YulIdentifier","src":"7421:7:6"}]},{"body":{"nativeSrc":"7640:165:6","nodeType":"YulBlock","src":"7640:165:6","statements":[{"nativeSrc":"7662:34:6","nodeType":"YulAssignment","src":"7662:34:6","value":{"arguments":[{"name":"acc","nativeSrc":"7676:3:6","nodeType":"YulIdentifier","src":"7676:3:6"},{"arguments":[{"name":"pAux","nativeSrc":"7687:4:6","nodeType":"YulIdentifier","src":"7687:4:6"}],"functionName":{"name":"mload","nativeSrc":"7681:5:6","nodeType":"YulIdentifier","src":"7681:5:6"},"nativeSrc":"7681:11:6","nodeType":"YulFunctionCall","src":"7681:11:6"},{"name":"q","nativeSrc":"7694:1:6","nodeType":"YulIdentifier","src":"7694:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"7669:6:6","nodeType":"YulIdentifier","src":"7669:6:6"},"nativeSrc":"7669:27:6","nodeType":"YulFunctionCall","src":"7669:27:6"},"variableNames":[{"name":"inv","nativeSrc":"7662:3:6","nodeType":"YulIdentifier","src":"7662:3:6"}]},{"nativeSrc":"7717:33:6","nodeType":"YulAssignment","src":"7717:33:6","value":{"arguments":[{"name":"acc","nativeSrc":"7731:3:6","nodeType":"YulIdentifier","src":"7731:3:6"},{"arguments":[{"name":"pIn","nativeSrc":"7742:3:6","nodeType":"YulIdentifier","src":"7742:3:6"}],"functionName":{"name":"mload","nativeSrc":"7736:5:6","nodeType":"YulIdentifier","src":"7736:5:6"},"nativeSrc":"7736:10:6","nodeType":"YulFunctionCall","src":"7736:10:6"},{"name":"q","nativeSrc":"7748:1:6","nodeType":"YulIdentifier","src":"7748:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"7724:6:6","nodeType":"YulIdentifier","src":"7724:6:6"},"nativeSrc":"7724:26:6","nodeType":"YulFunctionCall","src":"7724:26:6"},"variableNames":[{"name":"acc","nativeSrc":"7717:3:6","nodeType":"YulIdentifier","src":"7717:3:6"}]},{"expression":{"arguments":[{"name":"pIn","nativeSrc":"7778:3:6","nodeType":"YulIdentifier","src":"7778:3:6"},{"name":"inv","nativeSrc":"7783:3:6","nodeType":"YulIdentifier","src":"7783:3:6"}],"functionName":{"name":"mstore","nativeSrc":"7771:6:6","nodeType":"YulIdentifier","src":"7771:6:6"},"nativeSrc":"7771:16:6","nodeType":"YulFunctionCall","src":"7771:16:6"},"nativeSrc":"7771:16:6","nodeType":"YulExpressionStatement","src":"7771:16:6"}]},"condition":{"arguments":[{"name":"pIn","nativeSrc":"7505:3:6","nodeType":"YulIdentifier","src":"7505:3:6"},{"name":"lastPIn","nativeSrc":"7510:7:6","nodeType":"YulIdentifier","src":"7510:7:6"}],"functionName":{"name":"gt","nativeSrc":"7502:2:6","nodeType":"YulIdentifier","src":"7502:2:6"},"nativeSrc":"7502:16:6","nodeType":"YulFunctionCall","src":"7502:16:6"},"nativeSrc":"7494:311:6","nodeType":"YulForLoop","post":{"nativeSrc":"7519:103:6","nodeType":"YulBlock","src":"7519:103:6","statements":[{"nativeSrc":"7542:21:6","nodeType":"YulAssignment","src":"7542:21:6","value":{"arguments":[{"name":"pAux","nativeSrc":"7554:4:6","nodeType":"YulIdentifier","src":"7554:4:6"},{"kind":"number","nativeSrc":"7560:2:6","nodeType":"YulLiteral","src":"7560:2:6","type":"","value":"32"}],"functionName":{"name":"sub","nativeSrc":"7550:3:6","nodeType":"YulIdentifier","src":"7550:3:6"},"nativeSrc":"7550:13:6","nodeType":"YulFunctionCall","src":"7550:13:6"},"variableNames":[{"name":"pAux","nativeSrc":"7542:4:6","nodeType":"YulIdentifier","src":"7542:4:6"}]},{"nativeSrc":"7585:19:6","nodeType":"YulAssignment","src":"7585:19:6","value":{"arguments":[{"name":"pIn","nativeSrc":"7596:3:6","nodeType":"YulIdentifier","src":"7596:3:6"},{"kind":"number","nativeSrc":"7601:2:6","nodeType":"YulLiteral","src":"7601:2:6","type":"","value":"32"}],"functionName":{"name":"sub","nativeSrc":"7592:3:6","nodeType":"YulIdentifier","src":"7592:3:6"},"nativeSrc":"7592:12:6","nodeType":"YulFunctionCall","src":"7592:12:6"},"variableNames":[{"name":"pIn","nativeSrc":"7585:3:6","nodeType":"YulIdentifier","src":"7585:3:6"}]}]},"pre":{"nativeSrc":"7498:3:6","nodeType":"YulBlock","src":"7498:3:6","statements":[]},"src":"7494:311:6"},{"expression":{"arguments":[{"name":"pIn","nativeSrc":"7893:3:6","nodeType":"YulIdentifier","src":"7893:3:6"},{"name":"acc","nativeSrc":"7898:3:6","nodeType":"YulIdentifier","src":"7898:3:6"}],"functionName":{"name":"mstore","nativeSrc":"7886:6:6","nodeType":"YulIdentifier","src":"7886:6:6"},"nativeSrc":"7886:16:6","nodeType":"YulFunctionCall","src":"7886:16:6"},"nativeSrc":"7886:16:6","nodeType":"YulExpressionStatement","src":"7886:16:6"}]},"name":"inverseArray","nativeSrc":"6399:1517:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"pVals","nativeSrc":"6421:5:6","nodeType":"YulTypedName","src":"6421:5:6","type":""},{"name":"n","nativeSrc":"6428:1:6","nodeType":"YulTypedName","src":"6428:1:6","type":""}],"src":"6399:1517:6"},{"body":{"nativeSrc":"7965:139:6","nodeType":"YulBlock","src":"7965:139:6","statements":[{"body":{"nativeSrc":"8003:87:6","nodeType":"YulBlock","src":"8003:87:6","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8032:1:6","nodeType":"YulLiteral","src":"8032:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"8035:1:6","nodeType":"YulLiteral","src":"8035:1:6","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8025:6:6","nodeType":"YulIdentifier","src":"8025:6:6"},"nativeSrc":"8025:12:6","nodeType":"YulFunctionCall","src":"8025:12:6"},"nativeSrc":"8025:12:6","nodeType":"YulExpressionStatement","src":"8025:12:6"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8065:1:6","nodeType":"YulLiteral","src":"8065:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"8067:4:6","nodeType":"YulLiteral","src":"8067:4:6","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"8058:6:6","nodeType":"YulIdentifier","src":"8058:6:6"},"nativeSrc":"8058:14:6","nodeType":"YulFunctionCall","src":"8058:14:6"},"nativeSrc":"8058:14:6","nodeType":"YulExpressionStatement","src":"8058:14:6"}]},"condition":{"arguments":[{"arguments":[{"name":"v","nativeSrc":"7996:1:6","nodeType":"YulIdentifier","src":"7996:1:6"},{"name":"q","nativeSrc":"7999:1:6","nodeType":"YulIdentifier","src":"7999:1:6"}],"functionName":{"name":"lt","nativeSrc":"7993:2:6","nodeType":"YulIdentifier","src":"7993:2:6"},"nativeSrc":"7993:8:6","nodeType":"YulFunctionCall","src":"7993:8:6"}],"functionName":{"name":"iszero","nativeSrc":"7986:6:6","nodeType":"YulIdentifier","src":"7986:6:6"},"nativeSrc":"7986:16:6","nodeType":"YulFunctionCall","src":"7986:16:6"},"nativeSrc":"7983:107:6","nodeType":"YulIf","src":"7983:107:6"}]},"name":"checkField","nativeSrc":"7942:162:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"v","nativeSrc":"7962:1:6","nodeType":"YulTypedName","src":"7962:1:6","type":""}],"src":"7942:162:6"},{"body":{"nativeSrc":"8158:640:6","nodeType":"YulBlock","src":"8158:640:6","statements":[{"body":{"nativeSrc":"8211:87:6","nodeType":"YulBlock","src":"8211:87:6","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8240:1:6","nodeType":"YulLiteral","src":"8240:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"8243:1:6","nodeType":"YulLiteral","src":"8243:1:6","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8233:6:6","nodeType":"YulIdentifier","src":"8233:6:6"},"nativeSrc":"8233:12:6","nodeType":"YulFunctionCall","src":"8233:12:6"},"nativeSrc":"8233:12:6","nodeType":"YulExpressionStatement","src":"8233:12:6"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8273:1:6","nodeType":"YulLiteral","src":"8273:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"8275:4:6","nodeType":"YulLiteral","src":"8275:4:6","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"8266:6:6","nodeType":"YulIdentifier","src":"8266:6:6"},"nativeSrc":"8266:14:6","nodeType":"YulFunctionCall","src":"8266:14:6"},"nativeSrc":"8266:14:6","nodeType":"YulExpressionStatement","src":"8266:14:6"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8195:6:6","nodeType":"YulIdentifier","src":"8195:6:6"}],"functionName":{"name":"mload","nativeSrc":"8189:5:6","nodeType":"YulIdentifier","src":"8189:5:6"},"nativeSrc":"8189:13:6","nodeType":"YulFunctionCall","src":"8189:13:6"},{"kind":"number","nativeSrc":"8204:3:6","nodeType":"YulLiteral","src":"8204:3:6","type":"","value":"800"}],"functionName":{"name":"eq","nativeSrc":"8186:2:6","nodeType":"YulIdentifier","src":"8186:2:6"},"nativeSrc":"8186:23:6","nodeType":"YulFunctionCall","src":"8186:23:6"}],"functionName":{"name":"iszero","nativeSrc":"8179:6:6","nodeType":"YulIdentifier","src":"8179:6:6"},"nativeSrc":"8179:31:6","nodeType":"YulFunctionCall","src":"8179:31:6"},"nativeSrc":"8176:122:6","nodeType":"YulIf","src":"8176:122:6"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8336:6:6","nodeType":"YulIdentifier","src":"8336:6:6"},{"name":"pEval_a","nativeSrc":"8344:7:6","nodeType":"YulIdentifier","src":"8344:7:6"}],"functionName":{"name":"add","nativeSrc":"8332:3:6","nodeType":"YulIdentifier","src":"8332:3:6"},"nativeSrc":"8332:20:6","nodeType":"YulFunctionCall","src":"8332:20:6"}],"functionName":{"name":"mload","nativeSrc":"8326:5:6","nodeType":"YulIdentifier","src":"8326:5:6"},"nativeSrc":"8326:27:6","nodeType":"YulFunctionCall","src":"8326:27:6"}],"functionName":{"name":"checkField","nativeSrc":"8315:10:6","nodeType":"YulIdentifier","src":"8315:10:6"},"nativeSrc":"8315:39:6","nodeType":"YulFunctionCall","src":"8315:39:6"},"nativeSrc":"8315:39:6","nodeType":"YulExpressionStatement","src":"8315:39:6"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8392:6:6","nodeType":"YulIdentifier","src":"8392:6:6"},{"name":"pEval_b","nativeSrc":"8400:7:6","nodeType":"YulIdentifier","src":"8400:7:6"}],"functionName":{"name":"add","nativeSrc":"8388:3:6","nodeType":"YulIdentifier","src":"8388:3:6"},"nativeSrc":"8388:20:6","nodeType":"YulFunctionCall","src":"8388:20:6"}],"functionName":{"name":"mload","nativeSrc":"8382:5:6","nodeType":"YulIdentifier","src":"8382:5:6"},"nativeSrc":"8382:27:6","nodeType":"YulFunctionCall","src":"8382:27:6"}],"functionName":{"name":"checkField","nativeSrc":"8371:10:6","nodeType":"YulIdentifier","src":"8371:10:6"},"nativeSrc":"8371:39:6","nodeType":"YulFunctionCall","src":"8371:39:6"},"nativeSrc":"8371:39:6","nodeType":"YulExpressionStatement","src":"8371:39:6"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8448:6:6","nodeType":"YulIdentifier","src":"8448:6:6"},{"name":"pEval_c","nativeSrc":"8456:7:6","nodeType":"YulIdentifier","src":"8456:7:6"}],"functionName":{"name":"add","nativeSrc":"8444:3:6","nodeType":"YulIdentifier","src":"8444:3:6"},"nativeSrc":"8444:20:6","nodeType":"YulFunctionCall","src":"8444:20:6"}],"functionName":{"name":"mload","nativeSrc":"8438:5:6","nodeType":"YulIdentifier","src":"8438:5:6"},"nativeSrc":"8438:27:6","nodeType":"YulFunctionCall","src":"8438:27:6"}],"functionName":{"name":"checkField","nativeSrc":"8427:10:6","nodeType":"YulIdentifier","src":"8427:10:6"},"nativeSrc":"8427:39:6","nodeType":"YulFunctionCall","src":"8427:39:6"},"nativeSrc":"8427:39:6","nodeType":"YulExpressionStatement","src":"8427:39:6"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8504:6:6","nodeType":"YulIdentifier","src":"8504:6:6"},{"name":"pEval_s1","nativeSrc":"8512:8:6","nodeType":"YulIdentifier","src":"8512:8:6"}],"functionName":{"name":"add","nativeSrc":"8500:3:6","nodeType":"YulIdentifier","src":"8500:3:6"},"nativeSrc":"8500:21:6","nodeType":"YulFunctionCall","src":"8500:21:6"}],"functionName":{"name":"mload","nativeSrc":"8494:5:6","nodeType":"YulIdentifier","src":"8494:5:6"},"nativeSrc":"8494:28:6","nodeType":"YulFunctionCall","src":"8494:28:6"}],"functionName":{"name":"checkField","nativeSrc":"8483:10:6","nodeType":"YulIdentifier","src":"8483:10:6"},"nativeSrc":"8483:40:6","nodeType":"YulFunctionCall","src":"8483:40:6"},"nativeSrc":"8483:40:6","nodeType":"YulExpressionStatement","src":"8483:40:6"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8561:6:6","nodeType":"YulIdentifier","src":"8561:6:6"},{"name":"pEval_s2","nativeSrc":"8569:8:6","nodeType":"YulIdentifier","src":"8569:8:6"}],"functionName":{"name":"add","nativeSrc":"8557:3:6","nodeType":"YulIdentifier","src":"8557:3:6"},"nativeSrc":"8557:21:6","nodeType":"YulFunctionCall","src":"8557:21:6"}],"functionName":{"name":"mload","nativeSrc":"8551:5:6","nodeType":"YulIdentifier","src":"8551:5:6"},"nativeSrc":"8551:28:6","nodeType":"YulFunctionCall","src":"8551:28:6"}],"functionName":{"name":"checkField","nativeSrc":"8540:10:6","nodeType":"YulIdentifier","src":"8540:10:6"},"nativeSrc":"8540:40:6","nodeType":"YulFunctionCall","src":"8540:40:6"},"nativeSrc":"8540:40:6","nodeType":"YulExpressionStatement","src":"8540:40:6"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8618:6:6","nodeType":"YulIdentifier","src":"8618:6:6"},{"name":"pEval_zw","nativeSrc":"8626:8:6","nodeType":"YulIdentifier","src":"8626:8:6"}],"functionName":{"name":"add","nativeSrc":"8614:3:6","nodeType":"YulIdentifier","src":"8614:3:6"},"nativeSrc":"8614:21:6","nodeType":"YulFunctionCall","src":"8614:21:6"}],"functionName":{"name":"mload","nativeSrc":"8608:5:6","nodeType":"YulIdentifier","src":"8608:5:6"},"nativeSrc":"8608:28:6","nodeType":"YulFunctionCall","src":"8608:28:6"}],"functionName":{"name":"checkField","nativeSrc":"8597:10:6","nodeType":"YulIdentifier","src":"8597:10:6"},"nativeSrc":"8597:40:6","nodeType":"YulFunctionCall","src":"8597:40:6"},"nativeSrc":"8597:40:6","nodeType":"YulExpressionStatement","src":"8597:40:6"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8675:6:6","nodeType":"YulIdentifier","src":"8675:6:6"},{"name":"pEval_r","nativeSrc":"8683:7:6","nodeType":"YulIdentifier","src":"8683:7:6"}],"functionName":{"name":"add","nativeSrc":"8671:3:6","nodeType":"YulIdentifier","src":"8671:3:6"},"nativeSrc":"8671:20:6","nodeType":"YulFunctionCall","src":"8671:20:6"}],"functionName":{"name":"mload","nativeSrc":"8665:5:6","nodeType":"YulIdentifier","src":"8665:5:6"},"nativeSrc":"8665:27:6","nodeType":"YulFunctionCall","src":"8665:27:6"}],"functionName":{"name":"checkField","nativeSrc":"8654:10:6","nodeType":"YulIdentifier","src":"8654:10:6"},"nativeSrc":"8654:39:6","nodeType":"YulFunctionCall","src":"8654:39:6"},"nativeSrc":"8654:39:6","nodeType":"YulExpressionStatement","src":"8654:39:6"}]},"name":"checkInput","nativeSrc":"8130:668:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"pProof","nativeSrc":"8150:6:6","nodeType":"YulTypedName","src":"8150:6:6","type":""}],"src":"8130:668:6"},{"body":{"nativeSrc":"8876:2776:6","nodeType":"YulBlock","src":"8876:2776:6","statements":[{"nativeSrc":"8907:5:6","nodeType":"YulVariableDeclaration","src":"8907:5:6","variables":[{"name":"a","nativeSrc":"8911:1:6","nodeType":"YulTypedName","src":"8911:1:6","type":""}]},{"nativeSrc":"8929:5:6","nodeType":"YulVariableDeclaration","src":"8929:5:6","variables":[{"name":"b","nativeSrc":"8933:1:6","nodeType":"YulTypedName","src":"8933:1:6","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"8981:4:6","nodeType":"YulIdentifier","src":"8981:4:6"},{"kind":"number","nativeSrc":"8987:3:6","nodeType":"YulLiteral","src":"8987:3:6","type":"","value":"704"}],"functionName":{"name":"add","nativeSrc":"8977:3:6","nodeType":"YulIdentifier","src":"8977:3:6"},"nativeSrc":"8977:15:6","nodeType":"YulFunctionCall","src":"8977:15:6"},{"arguments":[{"arguments":[{"name":"pPublic","nativeSrc":"9006:7:6","nodeType":"YulIdentifier","src":"9006:7:6"},{"kind":"number","nativeSrc":"9015:2:6","nodeType":"YulLiteral","src":"9015:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9001:3:6","nodeType":"YulIdentifier","src":"9001:3:6"},"nativeSrc":"9001:17:6","nodeType":"YulFunctionCall","src":"9001:17:6"}],"functionName":{"name":"mload","nativeSrc":"8994:5:6","nodeType":"YulIdentifier","src":"8994:5:6"},"nativeSrc":"8994:25:6","nodeType":"YulFunctionCall","src":"8994:25:6"}],"functionName":{"name":"mstore","nativeSrc":"8969:6:6","nodeType":"YulIdentifier","src":"8969:6:6"},"nativeSrc":"8969:51:6","nodeType":"YulFunctionCall","src":"8969:51:6"},"nativeSrc":"8969:51:6","nodeType":"YulExpressionStatement","src":"8969:51:6"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9066:4:6","nodeType":"YulIdentifier","src":"9066:4:6"},{"kind":"number","nativeSrc":"9072:3:6","nodeType":"YulLiteral","src":"9072:3:6","type":"","value":"736"}],"functionName":{"name":"add","nativeSrc":"9062:3:6","nodeType":"YulIdentifier","src":"9062:3:6"},"nativeSrc":"9062:15:6","nodeType":"YulFunctionCall","src":"9062:15:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9091:6:6","nodeType":"YulIdentifier","src":"9091:6:6"},{"name":"pA","nativeSrc":"9099:2:6","nodeType":"YulIdentifier","src":"9099:2:6"}],"functionName":{"name":"add","nativeSrc":"9086:3:6","nodeType":"YulIdentifier","src":"9086:3:6"},"nativeSrc":"9086:16:6","nodeType":"YulFunctionCall","src":"9086:16:6"}],"functionName":{"name":"mload","nativeSrc":"9079:5:6","nodeType":"YulIdentifier","src":"9079:5:6"},"nativeSrc":"9079:24:6","nodeType":"YulFunctionCall","src":"9079:24:6"}],"functionName":{"name":"mstore","nativeSrc":"9054:6:6","nodeType":"YulIdentifier","src":"9054:6:6"},"nativeSrc":"9054:50:6","nodeType":"YulFunctionCall","src":"9054:50:6"},"nativeSrc":"9054:50:6","nodeType":"YulExpressionStatement","src":"9054:50:6"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9133:4:6","nodeType":"YulIdentifier","src":"9133:4:6"},{"kind":"number","nativeSrc":"9139:3:6","nodeType":"YulLiteral","src":"9139:3:6","type":"","value":"768"}],"functionName":{"name":"add","nativeSrc":"9129:3:6","nodeType":"YulIdentifier","src":"9129:3:6"},"nativeSrc":"9129:15:6","nodeType":"YulFunctionCall","src":"9129:15:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9158:6:6","nodeType":"YulIdentifier","src":"9158:6:6"},{"arguments":[{"name":"pA","nativeSrc":"9170:2:6","nodeType":"YulIdentifier","src":"9170:2:6"},{"kind":"number","nativeSrc":"9173:2:6","nodeType":"YulLiteral","src":"9173:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9166:3:6","nodeType":"YulIdentifier","src":"9166:3:6"},"nativeSrc":"9166:10:6","nodeType":"YulFunctionCall","src":"9166:10:6"}],"functionName":{"name":"add","nativeSrc":"9153:3:6","nodeType":"YulIdentifier","src":"9153:3:6"},"nativeSrc":"9153:24:6","nodeType":"YulFunctionCall","src":"9153:24:6"}],"functionName":{"name":"mload","nativeSrc":"9146:5:6","nodeType":"YulIdentifier","src":"9146:5:6"},"nativeSrc":"9146:32:6","nodeType":"YulFunctionCall","src":"9146:32:6"}],"functionName":{"name":"mstore","nativeSrc":"9121:6:6","nodeType":"YulIdentifier","src":"9121:6:6"},"nativeSrc":"9121:58:6","nodeType":"YulFunctionCall","src":"9121:58:6"},"nativeSrc":"9121:58:6","nodeType":"YulExpressionStatement","src":"9121:58:6"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9208:4:6","nodeType":"YulIdentifier","src":"9208:4:6"},{"kind":"number","nativeSrc":"9214:3:6","nodeType":"YulLiteral","src":"9214:3:6","type":"","value":"800"}],"functionName":{"name":"add","nativeSrc":"9204:3:6","nodeType":"YulIdentifier","src":"9204:3:6"},"nativeSrc":"9204:15:6","nodeType":"YulFunctionCall","src":"9204:15:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9233:6:6","nodeType":"YulIdentifier","src":"9233:6:6"},{"arguments":[{"name":"pA","nativeSrc":"9245:2:6","nodeType":"YulIdentifier","src":"9245:2:6"},{"kind":"number","nativeSrc":"9248:2:6","nodeType":"YulLiteral","src":"9248:2:6","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9241:3:6","nodeType":"YulIdentifier","src":"9241:3:6"},"nativeSrc":"9241:10:6","nodeType":"YulFunctionCall","src":"9241:10:6"}],"functionName":{"name":"add","nativeSrc":"9228:3:6","nodeType":"YulIdentifier","src":"9228:3:6"},"nativeSrc":"9228:24:6","nodeType":"YulFunctionCall","src":"9228:24:6"}],"functionName":{"name":"mload","nativeSrc":"9221:5:6","nodeType":"YulIdentifier","src":"9221:5:6"},"nativeSrc":"9221:32:6","nodeType":"YulFunctionCall","src":"9221:32:6"}],"functionName":{"name":"mstore","nativeSrc":"9196:6:6","nodeType":"YulIdentifier","src":"9196:6:6"},"nativeSrc":"9196:58:6","nodeType":"YulFunctionCall","src":"9196:58:6"},"nativeSrc":"9196:58:6","nodeType":"YulExpressionStatement","src":"9196:58:6"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9283:4:6","nodeType":"YulIdentifier","src":"9283:4:6"},{"kind":"number","nativeSrc":"9289:3:6","nodeType":"YulLiteral","src":"9289:3:6","type":"","value":"832"}],"functionName":{"name":"add","nativeSrc":"9279:3:6","nodeType":"YulIdentifier","src":"9279:3:6"},"nativeSrc":"9279:15:6","nodeType":"YulFunctionCall","src":"9279:15:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9308:6:6","nodeType":"YulIdentifier","src":"9308:6:6"},{"arguments":[{"name":"pA","nativeSrc":"9320:2:6","nodeType":"YulIdentifier","src":"9320:2:6"},{"kind":"number","nativeSrc":"9323:2:6","nodeType":"YulLiteral","src":"9323:2:6","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9316:3:6","nodeType":"YulIdentifier","src":"9316:3:6"},"nativeSrc":"9316:10:6","nodeType":"YulFunctionCall","src":"9316:10:6"}],"functionName":{"name":"add","nativeSrc":"9303:3:6","nodeType":"YulIdentifier","src":"9303:3:6"},"nativeSrc":"9303:24:6","nodeType":"YulFunctionCall","src":"9303:24:6"}],"functionName":{"name":"mload","nativeSrc":"9296:5:6","nodeType":"YulIdentifier","src":"9296:5:6"},"nativeSrc":"9296:32:6","nodeType":"YulFunctionCall","src":"9296:32:6"}],"functionName":{"name":"mstore","nativeSrc":"9271:6:6","nodeType":"YulIdentifier","src":"9271:6:6"},"nativeSrc":"9271:58:6","nodeType":"YulFunctionCall","src":"9271:58:6"},"nativeSrc":"9271:58:6","nodeType":"YulExpressionStatement","src":"9271:58:6"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9358:4:6","nodeType":"YulIdentifier","src":"9358:4:6"},{"kind":"number","nativeSrc":"9364:3:6","nodeType":"YulLiteral","src":"9364:3:6","type":"","value":"864"}],"functionName":{"name":"add","nativeSrc":"9354:3:6","nodeType":"YulIdentifier","src":"9354:3:6"},"nativeSrc":"9354:15:6","nodeType":"YulFunctionCall","src":"9354:15:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9383:6:6","nodeType":"YulIdentifier","src":"9383:6:6"},{"arguments":[{"name":"pA","nativeSrc":"9395:2:6","nodeType":"YulIdentifier","src":"9395:2:6"},{"kind":"number","nativeSrc":"9398:3:6","nodeType":"YulLiteral","src":"9398:3:6","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9391:3:6","nodeType":"YulIdentifier","src":"9391:3:6"},"nativeSrc":"9391:11:6","nodeType":"YulFunctionCall","src":"9391:11:6"}],"functionName":{"name":"add","nativeSrc":"9378:3:6","nodeType":"YulIdentifier","src":"9378:3:6"},"nativeSrc":"9378:25:6","nodeType":"YulFunctionCall","src":"9378:25:6"}],"functionName":{"name":"mload","nativeSrc":"9371:5:6","nodeType":"YulIdentifier","src":"9371:5:6"},"nativeSrc":"9371:33:6","nodeType":"YulFunctionCall","src":"9371:33:6"}],"functionName":{"name":"mstore","nativeSrc":"9346:6:6","nodeType":"YulIdentifier","src":"9346:6:6"},"nativeSrc":"9346:59:6","nodeType":"YulFunctionCall","src":"9346:59:6"},"nativeSrc":"9346:59:6","nodeType":"YulExpressionStatement","src":"9346:59:6"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9434:4:6","nodeType":"YulIdentifier","src":"9434:4:6"},{"kind":"number","nativeSrc":"9440:3:6","nodeType":"YulLiteral","src":"9440:3:6","type":"","value":"896"}],"functionName":{"name":"add","nativeSrc":"9430:3:6","nodeType":"YulIdentifier","src":"9430:3:6"},"nativeSrc":"9430:15:6","nodeType":"YulFunctionCall","src":"9430:15:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9459:6:6","nodeType":"YulIdentifier","src":"9459:6:6"},{"arguments":[{"name":"pA","nativeSrc":"9471:2:6","nodeType":"YulIdentifier","src":"9471:2:6"},{"kind":"number","nativeSrc":"9474:3:6","nodeType":"YulLiteral","src":"9474:3:6","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"9467:3:6","nodeType":"YulIdentifier","src":"9467:3:6"},"nativeSrc":"9467:11:6","nodeType":"YulFunctionCall","src":"9467:11:6"}],"functionName":{"name":"add","nativeSrc":"9454:3:6","nodeType":"YulIdentifier","src":"9454:3:6"},"nativeSrc":"9454:25:6","nodeType":"YulFunctionCall","src":"9454:25:6"}],"functionName":{"name":"mload","nativeSrc":"9447:5:6","nodeType":"YulIdentifier","src":"9447:5:6"},"nativeSrc":"9447:33:6","nodeType":"YulFunctionCall","src":"9447:33:6"}],"functionName":{"name":"mstore","nativeSrc":"9422:6:6","nodeType":"YulIdentifier","src":"9422:6:6"},"nativeSrc":"9422:59:6","nodeType":"YulFunctionCall","src":"9422:59:6"},"nativeSrc":"9422:59:6","nodeType":"YulExpressionStatement","src":"9422:59:6"},{"nativeSrc":"9515:47:6","nodeType":"YulAssignment","src":"9515:47:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9538:4:6","nodeType":"YulIdentifier","src":"9538:4:6"},{"name":"lastMem","nativeSrc":"9544:7:6","nodeType":"YulIdentifier","src":"9544:7:6"}],"functionName":{"name":"add","nativeSrc":"9534:3:6","nodeType":"YulIdentifier","src":"9534:3:6"},"nativeSrc":"9534:18:6","nodeType":"YulFunctionCall","src":"9534:18:6"},{"kind":"number","nativeSrc":"9554:3:6","nodeType":"YulLiteral","src":"9554:3:6","type":"","value":"224"}],"functionName":{"name":"keccak256","nativeSrc":"9524:9:6","nodeType":"YulIdentifier","src":"9524:9:6"},"nativeSrc":"9524:34:6","nodeType":"YulFunctionCall","src":"9524:34:6"},{"name":"q","nativeSrc":"9560:1:6","nodeType":"YulIdentifier","src":"9560:1:6"}],"functionName":{"name":"mod","nativeSrc":"9520:3:6","nodeType":"YulIdentifier","src":"9520:3:6"},"nativeSrc":"9520:42:6","nodeType":"YulFunctionCall","src":"9520:42:6"},"variableNames":[{"name":"b","nativeSrc":"9515:1:6","nodeType":"YulIdentifier","src":"9515:1:6"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9592:4:6","nodeType":"YulIdentifier","src":"9592:4:6"},{"name":"pBeta","nativeSrc":"9598:5:6","nodeType":"YulIdentifier","src":"9598:5:6"}],"functionName":{"name":"add","nativeSrc":"9588:3:6","nodeType":"YulIdentifier","src":"9588:3:6"},"nativeSrc":"9588:16:6","nodeType":"YulFunctionCall","src":"9588:16:6"},{"name":"b","nativeSrc":"9606:1:6","nodeType":"YulIdentifier","src":"9606:1:6"}],"functionName":{"name":"mstore","nativeSrc":"9580:6:6","nodeType":"YulIdentifier","src":"9580:6:6"},"nativeSrc":"9580:28:6","nodeType":"YulFunctionCall","src":"9580:28:6"},"nativeSrc":"9580:28:6","nodeType":"YulExpressionStatement","src":"9580:28:6"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9637:4:6","nodeType":"YulIdentifier","src":"9637:4:6"},{"name":"pGamma","nativeSrc":"9643:6:6","nodeType":"YulIdentifier","src":"9643:6:6"}],"functionName":{"name":"add","nativeSrc":"9633:3:6","nodeType":"YulIdentifier","src":"9633:3:6"},"nativeSrc":"9633:17:6","nodeType":"YulFunctionCall","src":"9633:17:6"},{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9670:4:6","nodeType":"YulIdentifier","src":"9670:4:6"},{"name":"pBeta","nativeSrc":"9676:5:6","nodeType":"YulIdentifier","src":"9676:5:6"}],"functionName":{"name":"add","nativeSrc":"9666:3:6","nodeType":"YulIdentifier","src":"9666:3:6"},"nativeSrc":"9666:16:6","nodeType":"YulFunctionCall","src":"9666:16:6"},{"kind":"number","nativeSrc":"9684:2:6","nodeType":"YulLiteral","src":"9684:2:6","type":"","value":"32"}],"functionName":{"name":"keccak256","nativeSrc":"9656:9:6","nodeType":"YulIdentifier","src":"9656:9:6"},"nativeSrc":"9656:31:6","nodeType":"YulFunctionCall","src":"9656:31:6"},{"name":"q","nativeSrc":"9689:1:6","nodeType":"YulIdentifier","src":"9689:1:6"}],"functionName":{"name":"mod","nativeSrc":"9652:3:6","nodeType":"YulIdentifier","src":"9652:3:6"},"nativeSrc":"9652:39:6","nodeType":"YulFunctionCall","src":"9652:39:6"}],"functionName":{"name":"mstore","nativeSrc":"9625:6:6","nodeType":"YulIdentifier","src":"9625:6:6"},"nativeSrc":"9625:67:6","nodeType":"YulFunctionCall","src":"9625:67:6"},"nativeSrc":"9625:67:6","nodeType":"YulExpressionStatement","src":"9625:67:6"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9721:4:6","nodeType":"YulIdentifier","src":"9721:4:6"},{"name":"pAlpha","nativeSrc":"9727:6:6","nodeType":"YulIdentifier","src":"9727:6:6"}],"functionName":{"name":"add","nativeSrc":"9717:3:6","nodeType":"YulIdentifier","src":"9717:3:6"},"nativeSrc":"9717:17:6","nodeType":"YulFunctionCall","src":"9717:17:6"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9754:6:6","nodeType":"YulIdentifier","src":"9754:6:6"},{"name":"pZ","nativeSrc":"9762:2:6","nodeType":"YulIdentifier","src":"9762:2:6"}],"functionName":{"name":"add","nativeSrc":"9750:3:6","nodeType":"YulIdentifier","src":"9750:3:6"},"nativeSrc":"9750:15:6","nodeType":"YulFunctionCall","src":"9750:15:6"},{"kind":"number","nativeSrc":"9767:2:6","nodeType":"YulLiteral","src":"9767:2:6","type":"","value":"64"}],"functionName":{"name":"keccak256","nativeSrc":"9740:9:6","nodeType":"YulIdentifier","src":"9740:9:6"},"nativeSrc":"9740:30:6","nodeType":"YulFunctionCall","src":"9740:30:6"},{"name":"q","nativeSrc":"9772:1:6","nodeType":"YulIdentifier","src":"9772:1:6"}],"functionName":{"name":"mod","nativeSrc":"9736:3:6","nodeType":"YulIdentifier","src":"9736:3:6"},"nativeSrc":"9736:38:6","nodeType":"YulFunctionCall","src":"9736:38:6"}],"functionName":{"name":"mstore","nativeSrc":"9709:6:6","nodeType":"YulIdentifier","src":"9709:6:6"},"nativeSrc":"9709:66:6","nodeType":"YulFunctionCall","src":"9709:66:6"},"nativeSrc":"9709:66:6","nodeType":"YulExpressionStatement","src":"9709:66:6"},{"nativeSrc":"9809:45:6","nodeType":"YulAssignment","src":"9809:45:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9832:6:6","nodeType":"YulIdentifier","src":"9832:6:6"},{"name":"pT1","nativeSrc":"9840:3:6","nodeType":"YulIdentifier","src":"9840:3:6"}],"functionName":{"name":"add","nativeSrc":"9828:3:6","nodeType":"YulIdentifier","src":"9828:3:6"},"nativeSrc":"9828:16:6","nodeType":"YulFunctionCall","src":"9828:16:6"},{"kind":"number","nativeSrc":"9846:3:6","nodeType":"YulLiteral","src":"9846:3:6","type":"","value":"192"}],"functionName":{"name":"keccak256","nativeSrc":"9818:9:6","nodeType":"YulIdentifier","src":"9818:9:6"},"nativeSrc":"9818:32:6","nodeType":"YulFunctionCall","src":"9818:32:6"},{"name":"q","nativeSrc":"9852:1:6","nodeType":"YulIdentifier","src":"9852:1:6"}],"functionName":{"name":"mod","nativeSrc":"9814:3:6","nodeType":"YulIdentifier","src":"9814:3:6"},"nativeSrc":"9814:40:6","nodeType":"YulFunctionCall","src":"9814:40:6"},"variableNames":[{"name":"a","nativeSrc":"9809:1:6","nodeType":"YulIdentifier","src":"9809:1:6"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9883:4:6","nodeType":"YulIdentifier","src":"9883:4:6"},{"name":"pXi","nativeSrc":"9889:3:6","nodeType":"YulIdentifier","src":"9889:3:6"}],"functionName":{"name":"add","nativeSrc":"9879:3:6","nodeType":"YulIdentifier","src":"9879:3:6"},"nativeSrc":"9879:14:6","nodeType":"YulFunctionCall","src":"9879:14:6"},{"name":"a","nativeSrc":"9895:1:6","nodeType":"YulIdentifier","src":"9895:1:6"}],"functionName":{"name":"mstore","nativeSrc":"9871:6:6","nodeType":"YulIdentifier","src":"9871:6:6"},"nativeSrc":"9871:26:6","nodeType":"YulFunctionCall","src":"9871:26:6"},"nativeSrc":"9871:26:6","nodeType":"YulExpressionStatement","src":"9871:26:6"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9926:4:6","nodeType":"YulIdentifier","src":"9926:4:6"},{"name":"pBetaXi","nativeSrc":"9932:7:6","nodeType":"YulIdentifier","src":"9932:7:6"}],"functionName":{"name":"add","nativeSrc":"9922:3:6","nodeType":"YulIdentifier","src":"9922:3:6"},"nativeSrc":"9922:18:6","nodeType":"YulFunctionCall","src":"9922:18:6"},{"arguments":[{"name":"b","nativeSrc":"9949:1:6","nodeType":"YulIdentifier","src":"9949:1:6"},{"name":"a","nativeSrc":"9952:1:6","nodeType":"YulIdentifier","src":"9952:1:6"},{"name":"q","nativeSrc":"9955:1:6","nodeType":"YulIdentifier","src":"9955:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"9942:6:6","nodeType":"YulIdentifier","src":"9942:6:6"},"nativeSrc":"9942:15:6","nodeType":"YulFunctionCall","src":"9942:15:6"}],"functionName":{"name":"mstore","nativeSrc":"9914:6:6","nodeType":"YulIdentifier","src":"9914:6:6"},"nativeSrc":"9914:44:6","nodeType":"YulFunctionCall","src":"9914:44:6"},"nativeSrc":"9914:44:6","nodeType":"YulExpressionStatement","src":"9914:44:6"},{"nativeSrc":"9992:19:6","nodeType":"YulAssignment","src":"9992:19:6","value":{"arguments":[{"name":"a","nativeSrc":"10003:1:6","nodeType":"YulIdentifier","src":"10003:1:6"},{"name":"a","nativeSrc":"10006:1:6","nodeType":"YulIdentifier","src":"10006:1:6"},{"name":"q","nativeSrc":"10009:1:6","nodeType":"YulIdentifier","src":"10009:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"9996:6:6","nodeType":"YulIdentifier","src":"9996:6:6"},"nativeSrc":"9996:15:6","nodeType":"YulFunctionCall","src":"9996:15:6"},"variableNames":[{"name":"a","nativeSrc":"9992:1:6","nodeType":"YulIdentifier","src":"9992:1:6"}]},{"nativeSrc":"10045:19:6","nodeType":"YulAssignment","src":"10045:19:6","value":{"arguments":[{"name":"a","nativeSrc":"10056:1:6","nodeType":"YulIdentifier","src":"10056:1:6"},{"name":"a","nativeSrc":"10059:1:6","nodeType":"YulIdentifier","src":"10059:1:6"},{"name":"q","nativeSrc":"10062:1:6","nodeType":"YulIdentifier","src":"10062:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"10049:6:6","nodeType":"YulIdentifier","src":"10049:6:6"},"nativeSrc":"10049:15:6","nodeType":"YulFunctionCall","src":"10049:15:6"},"variableNames":[{"name":"a","nativeSrc":"10045:1:6","nodeType":"YulIdentifier","src":"10045:1:6"}]},{"nativeSrc":"10098:19:6","nodeType":"YulAssignment","src":"10098:19:6","value":{"arguments":[{"name":"a","nativeSrc":"10109:1:6","nodeType":"YulIdentifier","src":"10109:1:6"},{"name":"a","nativeSrc":"10112:1:6","nodeType":"YulIdentifier","src":"10112:1:6"},{"name":"q","nativeSrc":"10115:1:6","nodeType":"YulIdentifier","src":"10115:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"10102:6:6","nodeType":"YulIdentifier","src":"10102:6:6"},"nativeSrc":"10102:15:6","nodeType":"YulFunctionCall","src":"10102:15:6"},"variableNames":[{"name":"a","nativeSrc":"10098:1:6","nodeType":"YulIdentifier","src":"10098:1:6"}]},{"nativeSrc":"10151:19:6","nodeType":"YulAssignment","src":"10151:19:6","value":{"arguments":[{"name":"a","nativeSrc":"10162:1:6","nodeType":"YulIdentifier","src":"10162:1:6"},{"name":"a","nativeSrc":"10165:1:6","nodeType":"YulIdentifier","src":"10165:1:6"},{"name":"q","nativeSrc":"10168:1:6","nodeType":"YulIdentifier","src":"10168:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"10155:6:6","nodeType":"YulIdentifier","src":"10155:6:6"},"nativeSrc":"10155:15:6","nodeType":"YulFunctionCall","src":"10155:15:6"},"variableNames":[{"name":"a","nativeSrc":"10151:1:6","nodeType":"YulIdentifier","src":"10151:1:6"}]},{"nativeSrc":"10204:19:6","nodeType":"YulAssignment","src":"10204:19:6","value":{"arguments":[{"name":"a","nativeSrc":"10215:1:6","nodeType":"YulIdentifier","src":"10215:1:6"},{"name":"a","nativeSrc":"10218:1:6","nodeType":"YulIdentifier","src":"10218:1:6"},{"name":"q","nativeSrc":"10221:1:6","nodeType":"YulIdentifier","src":"10221:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"10208:6:6","nodeType":"YulIdentifier","src":"10208:6:6"},"nativeSrc":"10208:15:6","nodeType":"YulFunctionCall","src":"10208:15:6"},"variableNames":[{"name":"a","nativeSrc":"10204:1:6","nodeType":"YulIdentifier","src":"10204:1:6"}]},{"nativeSrc":"10257:19:6","nodeType":"YulAssignment","src":"10257:19:6","value":{"arguments":[{"name":"a","nativeSrc":"10268:1:6","nodeType":"YulIdentifier","src":"10268:1:6"},{"name":"a","nativeSrc":"10271:1:6","nodeType":"YulIdentifier","src":"10271:1:6"},{"name":"q","nativeSrc":"10274:1:6","nodeType":"YulIdentifier","src":"10274:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"10261:6:6","nodeType":"YulIdentifier","src":"10261:6:6"},"nativeSrc":"10261:15:6","nodeType":"YulFunctionCall","src":"10261:15:6"},"variableNames":[{"name":"a","nativeSrc":"10257:1:6","nodeType":"YulIdentifier","src":"10257:1:6"}]},{"nativeSrc":"10310:19:6","nodeType":"YulAssignment","src":"10310:19:6","value":{"arguments":[{"name":"a","nativeSrc":"10321:1:6","nodeType":"YulIdentifier","src":"10321:1:6"},{"name":"a","nativeSrc":"10324:1:6","nodeType":"YulIdentifier","src":"10324:1:6"},{"name":"q","nativeSrc":"10327:1:6","nodeType":"YulIdentifier","src":"10327:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"10314:6:6","nodeType":"YulIdentifier","src":"10314:6:6"},"nativeSrc":"10314:15:6","nodeType":"YulFunctionCall","src":"10314:15:6"},"variableNames":[{"name":"a","nativeSrc":"10310:1:6","nodeType":"YulIdentifier","src":"10310:1:6"}]},{"nativeSrc":"10363:19:6","nodeType":"YulAssignment","src":"10363:19:6","value":{"arguments":[{"name":"a","nativeSrc":"10374:1:6","nodeType":"YulIdentifier","src":"10374:1:6"},{"name":"a","nativeSrc":"10377:1:6","nodeType":"YulIdentifier","src":"10377:1:6"},{"name":"q","nativeSrc":"10380:1:6","nodeType":"YulIdentifier","src":"10380:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"10367:6:6","nodeType":"YulIdentifier","src":"10367:6:6"},"nativeSrc":"10367:15:6","nodeType":"YulFunctionCall","src":"10367:15:6"},"variableNames":[{"name":"a","nativeSrc":"10363:1:6","nodeType":"YulIdentifier","src":"10363:1:6"}]},{"nativeSrc":"10416:19:6","nodeType":"YulAssignment","src":"10416:19:6","value":{"arguments":[{"name":"a","nativeSrc":"10427:1:6","nodeType":"YulIdentifier","src":"10427:1:6"},{"name":"a","nativeSrc":"10430:1:6","nodeType":"YulIdentifier","src":"10430:1:6"},{"name":"q","nativeSrc":"10433:1:6","nodeType":"YulIdentifier","src":"10433:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"10420:6:6","nodeType":"YulIdentifier","src":"10420:6:6"},"nativeSrc":"10420:15:6","nodeType":"YulFunctionCall","src":"10420:15:6"},"variableNames":[{"name":"a","nativeSrc":"10416:1:6","nodeType":"YulIdentifier","src":"10416:1:6"}]},{"nativeSrc":"10469:19:6","nodeType":"YulAssignment","src":"10469:19:6","value":{"arguments":[{"name":"a","nativeSrc":"10480:1:6","nodeType":"YulIdentifier","src":"10480:1:6"},{"name":"a","nativeSrc":"10483:1:6","nodeType":"YulIdentifier","src":"10483:1:6"},{"name":"q","nativeSrc":"10486:1:6","nodeType":"YulIdentifier","src":"10486:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"10473:6:6","nodeType":"YulIdentifier","src":"10473:6:6"},"nativeSrc":"10473:15:6","nodeType":"YulFunctionCall","src":"10473:15:6"},"variableNames":[{"name":"a","nativeSrc":"10469:1:6","nodeType":"YulIdentifier","src":"10469:1:6"}]},{"nativeSrc":"10522:19:6","nodeType":"YulAssignment","src":"10522:19:6","value":{"arguments":[{"name":"a","nativeSrc":"10533:1:6","nodeType":"YulIdentifier","src":"10533:1:6"},{"name":"a","nativeSrc":"10536:1:6","nodeType":"YulIdentifier","src":"10536:1:6"},{"name":"q","nativeSrc":"10539:1:6","nodeType":"YulIdentifier","src":"10539:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"10526:6:6","nodeType":"YulIdentifier","src":"10526:6:6"},"nativeSrc":"10526:15:6","nodeType":"YulFunctionCall","src":"10526:15:6"},"variableNames":[{"name":"a","nativeSrc":"10522:1:6","nodeType":"YulIdentifier","src":"10522:1:6"}]},{"nativeSrc":"10575:19:6","nodeType":"YulAssignment","src":"10575:19:6","value":{"arguments":[{"name":"a","nativeSrc":"10586:1:6","nodeType":"YulIdentifier","src":"10586:1:6"},{"name":"a","nativeSrc":"10589:1:6","nodeType":"YulIdentifier","src":"10589:1:6"},{"name":"q","nativeSrc":"10592:1:6","nodeType":"YulIdentifier","src":"10592:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"10579:6:6","nodeType":"YulIdentifier","src":"10579:6:6"},"nativeSrc":"10579:15:6","nodeType":"YulFunctionCall","src":"10579:15:6"},"variableNames":[{"name":"a","nativeSrc":"10575:1:6","nodeType":"YulIdentifier","src":"10575:1:6"}]},{"nativeSrc":"10628:19:6","nodeType":"YulAssignment","src":"10628:19:6","value":{"arguments":[{"name":"a","nativeSrc":"10639:1:6","nodeType":"YulIdentifier","src":"10639:1:6"},{"name":"a","nativeSrc":"10642:1:6","nodeType":"YulIdentifier","src":"10642:1:6"},{"name":"q","nativeSrc":"10645:1:6","nodeType":"YulIdentifier","src":"10645:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"10632:6:6","nodeType":"YulIdentifier","src":"10632:6:6"},"nativeSrc":"10632:15:6","nodeType":"YulFunctionCall","src":"10632:15:6"},"variableNames":[{"name":"a","nativeSrc":"10628:1:6","nodeType":"YulIdentifier","src":"10628:1:6"}]},{"nativeSrc":"10681:19:6","nodeType":"YulAssignment","src":"10681:19:6","value":{"arguments":[{"name":"a","nativeSrc":"10692:1:6","nodeType":"YulIdentifier","src":"10692:1:6"},{"name":"a","nativeSrc":"10695:1:6","nodeType":"YulIdentifier","src":"10695:1:6"},{"name":"q","nativeSrc":"10698:1:6","nodeType":"YulIdentifier","src":"10698:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"10685:6:6","nodeType":"YulIdentifier","src":"10685:6:6"},"nativeSrc":"10685:15:6","nodeType":"YulFunctionCall","src":"10685:15:6"},"variableNames":[{"name":"a","nativeSrc":"10681:1:6","nodeType":"YulIdentifier","src":"10681:1:6"}]},{"nativeSrc":"10734:19:6","nodeType":"YulAssignment","src":"10734:19:6","value":{"arguments":[{"name":"a","nativeSrc":"10745:1:6","nodeType":"YulIdentifier","src":"10745:1:6"},{"name":"a","nativeSrc":"10748:1:6","nodeType":"YulIdentifier","src":"10748:1:6"},{"name":"q","nativeSrc":"10751:1:6","nodeType":"YulIdentifier","src":"10751:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"10738:6:6","nodeType":"YulIdentifier","src":"10738:6:6"},"nativeSrc":"10738:15:6","nodeType":"YulFunctionCall","src":"10738:15:6"},"variableNames":[{"name":"a","nativeSrc":"10734:1:6","nodeType":"YulIdentifier","src":"10734:1:6"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"10799:4:6","nodeType":"YulIdentifier","src":"10799:4:6"},{"name":"pXin","nativeSrc":"10805:4:6","nodeType":"YulIdentifier","src":"10805:4:6"}],"functionName":{"name":"add","nativeSrc":"10795:3:6","nodeType":"YulIdentifier","src":"10795:3:6"},"nativeSrc":"10795:15:6","nodeType":"YulFunctionCall","src":"10795:15:6"},{"name":"a","nativeSrc":"10812:1:6","nodeType":"YulIdentifier","src":"10812:1:6"}],"functionName":{"name":"mstore","nativeSrc":"10787:6:6","nodeType":"YulIdentifier","src":"10787:6:6"},"nativeSrc":"10787:27:6","nodeType":"YulFunctionCall","src":"10787:27:6"},"nativeSrc":"10787:27:6","nodeType":"YulExpressionStatement","src":"10787:27:6"},{"nativeSrc":"10831:28:6","nodeType":"YulAssignment","src":"10831:28:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"10847:1:6","nodeType":"YulIdentifier","src":"10847:1:6"},{"kind":"number","nativeSrc":"10850:1:6","nodeType":"YulLiteral","src":"10850:1:6","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"10843:3:6","nodeType":"YulIdentifier","src":"10843:3:6"},"nativeSrc":"10843:9:6","nodeType":"YulFunctionCall","src":"10843:9:6"},{"name":"q","nativeSrc":"10853:1:6","nodeType":"YulIdentifier","src":"10853:1:6"}],"functionName":{"name":"add","nativeSrc":"10839:3:6","nodeType":"YulIdentifier","src":"10839:3:6"},"nativeSrc":"10839:16:6","nodeType":"YulFunctionCall","src":"10839:16:6"},{"name":"q","nativeSrc":"10857:1:6","nodeType":"YulIdentifier","src":"10857:1:6"}],"functionName":{"name":"mod","nativeSrc":"10835:3:6","nodeType":"YulIdentifier","src":"10835:3:6"},"nativeSrc":"10835:24:6","nodeType":"YulFunctionCall","src":"10835:24:6"},"variableNames":[{"name":"a","nativeSrc":"10831:1:6","nodeType":"YulIdentifier","src":"10831:1:6"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"10888:4:6","nodeType":"YulIdentifier","src":"10888:4:6"},{"name":"pZh","nativeSrc":"10894:3:6","nodeType":"YulIdentifier","src":"10894:3:6"}],"functionName":{"name":"add","nativeSrc":"10884:3:6","nodeType":"YulIdentifier","src":"10884:3:6"},"nativeSrc":"10884:14:6","nodeType":"YulFunctionCall","src":"10884:14:6"},{"name":"a","nativeSrc":"10900:1:6","nodeType":"YulIdentifier","src":"10900:1:6"}],"functionName":{"name":"mstore","nativeSrc":"10876:6:6","nodeType":"YulIdentifier","src":"10876:6:6"},"nativeSrc":"10876:26:6","nodeType":"YulFunctionCall","src":"10876:26:6"},"nativeSrc":"10876:26:6","nodeType":"YulExpressionStatement","src":"10876:26:6"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"10931:4:6","nodeType":"YulIdentifier","src":"10931:4:6"},{"name":"pZhInv","nativeSrc":"10937:6:6","nodeType":"YulIdentifier","src":"10937:6:6"}],"functionName":{"name":"add","nativeSrc":"10927:3:6","nodeType":"YulIdentifier","src":"10927:3:6"},"nativeSrc":"10927:17:6","nodeType":"YulFunctionCall","src":"10927:17:6"},{"name":"a","nativeSrc":"10946:1:6","nodeType":"YulIdentifier","src":"10946:1:6"}],"functionName":{"name":"mstore","nativeSrc":"10919:6:6","nodeType":"YulIdentifier","src":"10919:6:6"},"nativeSrc":"10919:29:6","nodeType":"YulFunctionCall","src":"10919:29:6"},"nativeSrc":"10919:29:6","nodeType":"YulExpressionStatement","src":"10919:29:6"},{"nativeSrc":"11035:54:6","nodeType":"YulVariableDeclaration","src":"11035:54:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"11063:6:6","nodeType":"YulIdentifier","src":"11063:6:6"},{"name":"pEval_a","nativeSrc":"11071:7:6","nodeType":"YulIdentifier","src":"11071:7:6"}],"functionName":{"name":"add","nativeSrc":"11059:3:6","nodeType":"YulIdentifier","src":"11059:3:6"},"nativeSrc":"11059:20:6","nodeType":"YulFunctionCall","src":"11059:20:6"},{"kind":"number","nativeSrc":"11081:3:6","nodeType":"YulLiteral","src":"11081:3:6","type":"","value":"224"}],"functionName":{"name":"keccak256","nativeSrc":"11049:9:6","nodeType":"YulIdentifier","src":"11049:9:6"},"nativeSrc":"11049:36:6","nodeType":"YulFunctionCall","src":"11049:36:6"},{"name":"q","nativeSrc":"11087:1:6","nodeType":"YulIdentifier","src":"11087:1:6"}],"functionName":{"name":"mod","nativeSrc":"11045:3:6","nodeType":"YulIdentifier","src":"11045:3:6"},"nativeSrc":"11045:44:6","nodeType":"YulFunctionCall","src":"11045:44:6"},"variables":[{"name":"v1","nativeSrc":"11039:2:6","nodeType":"YulTypedName","src":"11039:2:6","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11118:4:6","nodeType":"YulIdentifier","src":"11118:4:6"},{"name":"pV1","nativeSrc":"11124:3:6","nodeType":"YulIdentifier","src":"11124:3:6"}],"functionName":{"name":"add","nativeSrc":"11114:3:6","nodeType":"YulIdentifier","src":"11114:3:6"},"nativeSrc":"11114:14:6","nodeType":"YulFunctionCall","src":"11114:14:6"},{"name":"v1","nativeSrc":"11130:2:6","nodeType":"YulIdentifier","src":"11130:2:6"}],"functionName":{"name":"mstore","nativeSrc":"11106:6:6","nodeType":"YulIdentifier","src":"11106:6:6"},"nativeSrc":"11106:27:6","nodeType":"YulFunctionCall","src":"11106:27:6"},"nativeSrc":"11106:27:6","nodeType":"YulExpressionStatement","src":"11106:27:6"},{"nativeSrc":"11150:22:6","nodeType":"YulAssignment","src":"11150:22:6","value":{"arguments":[{"name":"v1","nativeSrc":"11162:2:6","nodeType":"YulIdentifier","src":"11162:2:6"},{"name":"v1","nativeSrc":"11166:2:6","nodeType":"YulIdentifier","src":"11166:2:6"},{"name":"q","nativeSrc":"11170:1:6","nodeType":"YulIdentifier","src":"11170:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"11155:6:6","nodeType":"YulIdentifier","src":"11155:6:6"},"nativeSrc":"11155:17:6","nodeType":"YulFunctionCall","src":"11155:17:6"},"variableNames":[{"name":"a","nativeSrc":"11150:1:6","nodeType":"YulIdentifier","src":"11150:1:6"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11201:4:6","nodeType":"YulIdentifier","src":"11201:4:6"},{"name":"pV2","nativeSrc":"11207:3:6","nodeType":"YulIdentifier","src":"11207:3:6"}],"functionName":{"name":"add","nativeSrc":"11197:3:6","nodeType":"YulIdentifier","src":"11197:3:6"},"nativeSrc":"11197:14:6","nodeType":"YulFunctionCall","src":"11197:14:6"},{"name":"a","nativeSrc":"11213:1:6","nodeType":"YulIdentifier","src":"11213:1:6"}],"functionName":{"name":"mstore","nativeSrc":"11189:6:6","nodeType":"YulIdentifier","src":"11189:6:6"},"nativeSrc":"11189:26:6","nodeType":"YulFunctionCall","src":"11189:26:6"},"nativeSrc":"11189:26:6","nodeType":"YulExpressionStatement","src":"11189:26:6"},{"nativeSrc":"11232:21:6","nodeType":"YulAssignment","src":"11232:21:6","value":{"arguments":[{"name":"a","nativeSrc":"11244:1:6","nodeType":"YulIdentifier","src":"11244:1:6"},{"name":"v1","nativeSrc":"11247:2:6","nodeType":"YulIdentifier","src":"11247:2:6"},{"name":"q","nativeSrc":"11251:1:6","nodeType":"YulIdentifier","src":"11251:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"11237:6:6","nodeType":"YulIdentifier","src":"11237:6:6"},"nativeSrc":"11237:16:6","nodeType":"YulFunctionCall","src":"11237:16:6"},"variableNames":[{"name":"a","nativeSrc":"11232:1:6","nodeType":"YulIdentifier","src":"11232:1:6"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11282:4:6","nodeType":"YulIdentifier","src":"11282:4:6"},{"name":"pV3","nativeSrc":"11288:3:6","nodeType":"YulIdentifier","src":"11288:3:6"}],"functionName":{"name":"add","nativeSrc":"11278:3:6","nodeType":"YulIdentifier","src":"11278:3:6"},"nativeSrc":"11278:14:6","nodeType":"YulFunctionCall","src":"11278:14:6"},{"name":"a","nativeSrc":"11294:1:6","nodeType":"YulIdentifier","src":"11294:1:6"}],"functionName":{"name":"mstore","nativeSrc":"11270:6:6","nodeType":"YulIdentifier","src":"11270:6:6"},"nativeSrc":"11270:26:6","nodeType":"YulFunctionCall","src":"11270:26:6"},"nativeSrc":"11270:26:6","nodeType":"YulExpressionStatement","src":"11270:26:6"},{"nativeSrc":"11313:21:6","nodeType":"YulAssignment","src":"11313:21:6","value":{"arguments":[{"name":"a","nativeSrc":"11325:1:6","nodeType":"YulIdentifier","src":"11325:1:6"},{"name":"v1","nativeSrc":"11328:2:6","nodeType":"YulIdentifier","src":"11328:2:6"},{"name":"q","nativeSrc":"11332:1:6","nodeType":"YulIdentifier","src":"11332:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"11318:6:6","nodeType":"YulIdentifier","src":"11318:6:6"},"nativeSrc":"11318:16:6","nodeType":"YulFunctionCall","src":"11318:16:6"},"variableNames":[{"name":"a","nativeSrc":"11313:1:6","nodeType":"YulIdentifier","src":"11313:1:6"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11363:4:6","nodeType":"YulIdentifier","src":"11363:4:6"},{"name":"pV4","nativeSrc":"11369:3:6","nodeType":"YulIdentifier","src":"11369:3:6"}],"functionName":{"name":"add","nativeSrc":"11359:3:6","nodeType":"YulIdentifier","src":"11359:3:6"},"nativeSrc":"11359:14:6","nodeType":"YulFunctionCall","src":"11359:14:6"},{"name":"a","nativeSrc":"11375:1:6","nodeType":"YulIdentifier","src":"11375:1:6"}],"functionName":{"name":"mstore","nativeSrc":"11351:6:6","nodeType":"YulIdentifier","src":"11351:6:6"},"nativeSrc":"11351:26:6","nodeType":"YulFunctionCall","src":"11351:26:6"},"nativeSrc":"11351:26:6","nodeType":"YulExpressionStatement","src":"11351:26:6"},{"nativeSrc":"11394:21:6","nodeType":"YulAssignment","src":"11394:21:6","value":{"arguments":[{"name":"a","nativeSrc":"11406:1:6","nodeType":"YulIdentifier","src":"11406:1:6"},{"name":"v1","nativeSrc":"11409:2:6","nodeType":"YulIdentifier","src":"11409:2:6"},{"name":"q","nativeSrc":"11413:1:6","nodeType":"YulIdentifier","src":"11413:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"11399:6:6","nodeType":"YulIdentifier","src":"11399:6:6"},"nativeSrc":"11399:16:6","nodeType":"YulFunctionCall","src":"11399:16:6"},"variableNames":[{"name":"a","nativeSrc":"11394:1:6","nodeType":"YulIdentifier","src":"11394:1:6"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11444:4:6","nodeType":"YulIdentifier","src":"11444:4:6"},{"name":"pV5","nativeSrc":"11450:3:6","nodeType":"YulIdentifier","src":"11450:3:6"}],"functionName":{"name":"add","nativeSrc":"11440:3:6","nodeType":"YulIdentifier","src":"11440:3:6"},"nativeSrc":"11440:14:6","nodeType":"YulFunctionCall","src":"11440:14:6"},{"name":"a","nativeSrc":"11456:1:6","nodeType":"YulIdentifier","src":"11456:1:6"}],"functionName":{"name":"mstore","nativeSrc":"11432:6:6","nodeType":"YulIdentifier","src":"11432:6:6"},"nativeSrc":"11432:26:6","nodeType":"YulFunctionCall","src":"11432:26:6"},"nativeSrc":"11432:26:6","nodeType":"YulExpressionStatement","src":"11432:26:6"},{"nativeSrc":"11475:21:6","nodeType":"YulAssignment","src":"11475:21:6","value":{"arguments":[{"name":"a","nativeSrc":"11487:1:6","nodeType":"YulIdentifier","src":"11487:1:6"},{"name":"v1","nativeSrc":"11490:2:6","nodeType":"YulIdentifier","src":"11490:2:6"},{"name":"q","nativeSrc":"11494:1:6","nodeType":"YulIdentifier","src":"11494:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"11480:6:6","nodeType":"YulIdentifier","src":"11480:6:6"},"nativeSrc":"11480:16:6","nodeType":"YulFunctionCall","src":"11480:16:6"},"variableNames":[{"name":"a","nativeSrc":"11475:1:6","nodeType":"YulIdentifier","src":"11475:1:6"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11525:4:6","nodeType":"YulIdentifier","src":"11525:4:6"},{"name":"pV6","nativeSrc":"11531:3:6","nodeType":"YulIdentifier","src":"11531:3:6"}],"functionName":{"name":"add","nativeSrc":"11521:3:6","nodeType":"YulIdentifier","src":"11521:3:6"},"nativeSrc":"11521:14:6","nodeType":"YulFunctionCall","src":"11521:14:6"},{"name":"a","nativeSrc":"11537:1:6","nodeType":"YulIdentifier","src":"11537:1:6"}],"functionName":{"name":"mstore","nativeSrc":"11513:6:6","nodeType":"YulIdentifier","src":"11513:6:6"},"nativeSrc":"11513:26:6","nodeType":"YulFunctionCall","src":"11513:26:6"},"nativeSrc":"11513:26:6","nodeType":"YulExpressionStatement","src":"11513:26:6"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11585:4:6","nodeType":"YulIdentifier","src":"11585:4:6"},{"name":"pU","nativeSrc":"11591:2:6","nodeType":"YulIdentifier","src":"11591:2:6"}],"functionName":{"name":"add","nativeSrc":"11581:3:6","nodeType":"YulIdentifier","src":"11581:3:6"},"nativeSrc":"11581:13:6","nodeType":"YulFunctionCall","src":"11581:13:6"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"11614:6:6","nodeType":"YulIdentifier","src":"11614:6:6"},{"name":"pWxi","nativeSrc":"11622:4:6","nodeType":"YulIdentifier","src":"11622:4:6"}],"functionName":{"name":"add","nativeSrc":"11610:3:6","nodeType":"YulIdentifier","src":"11610:3:6"},"nativeSrc":"11610:17:6","nodeType":"YulFunctionCall","src":"11610:17:6"},{"kind":"number","nativeSrc":"11629:3:6","nodeType":"YulLiteral","src":"11629:3:6","type":"","value":"128"}],"functionName":{"name":"keccak256","nativeSrc":"11600:9:6","nodeType":"YulIdentifier","src":"11600:9:6"},"nativeSrc":"11600:33:6","nodeType":"YulFunctionCall","src":"11600:33:6"},{"name":"q","nativeSrc":"11635:1:6","nodeType":"YulIdentifier","src":"11635:1:6"}],"functionName":{"name":"mod","nativeSrc":"11596:3:6","nodeType":"YulIdentifier","src":"11596:3:6"},"nativeSrc":"11596:41:6","nodeType":"YulFunctionCall","src":"11596:41:6"}],"functionName":{"name":"mstore","nativeSrc":"11573:6:6","nodeType":"YulIdentifier","src":"11573:6:6"},"nativeSrc":"11573:65:6","nodeType":"YulFunctionCall","src":"11573:65:6"},"nativeSrc":"11573:65:6","nodeType":"YulExpressionStatement","src":"11573:65:6"}]},"name":"calculateChallanges","nativeSrc":"8824:2828:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"pProof","nativeSrc":"8853:6:6","nodeType":"YulTypedName","src":"8853:6:6","type":""},{"name":"pMem","nativeSrc":"8861:4:6","nodeType":"YulTypedName","src":"8861:4:6","type":""},{"name":"pPublic","nativeSrc":"8867:7:6","nodeType":"YulTypedName","src":"8867:7:6","type":""}],"src":"8824:2828:6"},{"body":{"nativeSrc":"11711:1140:6","nodeType":"YulBlock","src":"11711:1140:6","statements":[{"nativeSrc":"11730:10:6","nodeType":"YulVariableDeclaration","src":"11730:10:6","value":{"kind":"number","nativeSrc":"11739:1:6","nodeType":"YulLiteral","src":"11739:1:6","type":"","value":"1"},"variables":[{"name":"w","nativeSrc":"11734:1:6","nodeType":"YulTypedName","src":"11734:1:6","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11822:4:6","nodeType":"YulIdentifier","src":"11822:4:6"},{"name":"pEval_l1","nativeSrc":"11828:8:6","nodeType":"YulIdentifier","src":"11828:8:6"}],"functionName":{"name":"add","nativeSrc":"11818:3:6","nodeType":"YulIdentifier","src":"11818:3:6"},"nativeSrc":"11818:19:6","nodeType":"YulFunctionCall","src":"11818:19:6"},{"arguments":[{"name":"n","nativeSrc":"11892:1:6","nodeType":"YulIdentifier","src":"11892:1:6"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"12041:4:6","nodeType":"YulIdentifier","src":"12041:4:6"},{"name":"pXi","nativeSrc":"12047:3:6","nodeType":"YulIdentifier","src":"12047:3:6"}],"functionName":{"name":"add","nativeSrc":"12037:3:6","nodeType":"YulIdentifier","src":"12037:3:6"},"nativeSrc":"12037:14:6","nodeType":"YulFunctionCall","src":"12037:14:6"}],"functionName":{"name":"mload","nativeSrc":"12031:5:6","nodeType":"YulIdentifier","src":"12031:5:6"},"nativeSrc":"12031:21:6","nodeType":"YulFunctionCall","src":"12031:21:6"},{"name":"w","nativeSrc":"12091:1:6","nodeType":"YulIdentifier","src":"12091:1:6"}],"functionName":{"name":"sub","nativeSrc":"11990:3:6","nodeType":"YulIdentifier","src":"11990:3:6"},"nativeSrc":"11990:136:6","nodeType":"YulFunctionCall","src":"11990:136:6"},{"name":"q","nativeSrc":"12161:1:6","nodeType":"YulIdentifier","src":"12161:1:6"}],"functionName":{"name":"add","nativeSrc":"11953:3:6","nodeType":"YulIdentifier","src":"11953:3:6"},"nativeSrc":"11953:239:6","nodeType":"YulFunctionCall","src":"11953:239:6"},{"name":"q","nativeSrc":"12222:1:6","nodeType":"YulIdentifier","src":"12222:1:6"}],"functionName":{"name":"mod","nativeSrc":"11920:3:6","nodeType":"YulIdentifier","src":"11920:3:6"},"nativeSrc":"11920:329:6","nodeType":"YulFunctionCall","src":"11920:329:6"},{"name":"q","nativeSrc":"12276:1:6","nodeType":"YulIdentifier","src":"12276:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"11860:6:6","nodeType":"YulIdentifier","src":"11860:6:6"},"nativeSrc":"11860:439:6","nodeType":"YulFunctionCall","src":"11860:439:6"}],"functionName":{"name":"mstore","nativeSrc":"11790:6:6","nodeType":"YulIdentifier","src":"11790:6:6"},"nativeSrc":"11790:527:6","nodeType":"YulFunctionCall","src":"11790:527:6"},"nativeSrc":"11790:527:6","nodeType":"YulExpressionStatement","src":"11790:527:6"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"12402:4:6","nodeType":"YulIdentifier","src":"12402:4:6"},{"name":"pZhInv","nativeSrc":"12408:6:6","nodeType":"YulIdentifier","src":"12408:6:6"}],"functionName":{"name":"add","nativeSrc":"12398:3:6","nodeType":"YulIdentifier","src":"12398:3:6"},"nativeSrc":"12398:17:6","nodeType":"YulFunctionCall","src":"12398:17:6"},{"kind":"number","nativeSrc":"12417:1:6","nodeType":"YulLiteral","src":"12417:1:6","type":"","value":"2"}],"functionName":{"name":"inverseArray","nativeSrc":"12385:12:6","nodeType":"YulIdentifier","src":"12385:12:6"},"nativeSrc":"12385:35:6","nodeType":"YulFunctionCall","src":"12385:35:6"},"nativeSrc":"12385:35:6","nodeType":"YulExpressionStatement","src":"12385:35:6"},{"nativeSrc":"12454:31:6","nodeType":"YulVariableDeclaration","src":"12454:31:6","value":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"12474:4:6","nodeType":"YulIdentifier","src":"12474:4:6"},{"name":"pZh","nativeSrc":"12480:3:6","nodeType":"YulIdentifier","src":"12480:3:6"}],"functionName":{"name":"add","nativeSrc":"12470:3:6","nodeType":"YulIdentifier","src":"12470:3:6"},"nativeSrc":"12470:14:6","nodeType":"YulFunctionCall","src":"12470:14:6"}],"functionName":{"name":"mload","nativeSrc":"12464:5:6","nodeType":"YulIdentifier","src":"12464:5:6"},"nativeSrc":"12464:21:6","nodeType":"YulFunctionCall","src":"12464:21:6"},"variables":[{"name":"zh","nativeSrc":"12458:2:6","nodeType":"YulTypedName","src":"12458:2:6","type":""}]},{"nativeSrc":"12502:6:6","nodeType":"YulAssignment","src":"12502:6:6","value":{"kind":"number","nativeSrc":"12507:1:6","nodeType":"YulLiteral","src":"12507:1:6","type":"","value":"1"},"variableNames":[{"name":"w","nativeSrc":"12502:1:6","nodeType":"YulIdentifier","src":"12502:1:6"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"12591:4:6","nodeType":"YulIdentifier","src":"12591:4:6"},{"name":"pEval_l1","nativeSrc":"12597:8:6","nodeType":"YulIdentifier","src":"12597:8:6"}],"functionName":{"name":"add","nativeSrc":"12587:3:6","nodeType":"YulIdentifier","src":"12587:3:6"},"nativeSrc":"12587:20:6","nodeType":"YulFunctionCall","src":"12587:20:6"},{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"12672:4:6","nodeType":"YulIdentifier","src":"12672:4:6"},{"name":"pEval_l1","nativeSrc":"12678:8:6","nodeType":"YulIdentifier","src":"12678:8:6"}],"functionName":{"name":"add","nativeSrc":"12668:3:6","nodeType":"YulIdentifier","src":"12668:3:6"},"nativeSrc":"12668:20:6","nodeType":"YulFunctionCall","src":"12668:20:6"}],"functionName":{"name":"mload","nativeSrc":"12662:5:6","nodeType":"YulIdentifier","src":"12662:5:6"},"nativeSrc":"12662:27:6","nodeType":"YulFunctionCall","src":"12662:27:6"},{"name":"zh","nativeSrc":"12715:2:6","nodeType":"YulIdentifier","src":"12715:2:6"},{"name":"q","nativeSrc":"12743:1:6","nodeType":"YulIdentifier","src":"12743:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"12630:6:6","nodeType":"YulIdentifier","src":"12630:6:6"},"nativeSrc":"12630:136:6","nodeType":"YulFunctionCall","src":"12630:136:6"}],"functionName":{"name":"mstore","nativeSrc":"12559:6:6","nodeType":"YulIdentifier","src":"12559:6:6"},"nativeSrc":"12559:225:6","nodeType":"YulFunctionCall","src":"12559:225:6"},"nativeSrc":"12559:225:6","nodeType":"YulExpressionStatement","src":"12559:225:6"}]},"name":"calculateLagrange","nativeSrc":"11678:1173:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"pMem","nativeSrc":"11705:4:6","nodeType":"YulTypedName","src":"11705:4:6","type":""}],"src":"11678:1173:6"},{"body":{"nativeSrc":"12910:618:6","nodeType":"YulBlock","src":"12910:618:6","statements":[{"nativeSrc":"12928:11:6","nodeType":"YulVariableDeclaration","src":"12928:11:6","value":{"kind":"number","nativeSrc":"12938:1:6","nodeType":"YulLiteral","src":"12938:1:6","type":"","value":"0"},"variables":[{"name":"pl","nativeSrc":"12932:2:6","nodeType":"YulTypedName","src":"12932:2:6","type":""}]},{"nativeSrc":"12991:428:6","nodeType":"YulAssignment","src":"12991:428:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pl","nativeSrc":"13084:2:6","nodeType":"YulIdentifier","src":"13084:2:6"},{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"13168:4:6","nodeType":"YulIdentifier","src":"13168:4:6"},{"name":"pEval_l1","nativeSrc":"13174:8:6","nodeType":"YulIdentifier","src":"13174:8:6"}],"functionName":{"name":"add","nativeSrc":"13164:3:6","nodeType":"YulIdentifier","src":"13164:3:6"},"nativeSrc":"13164:19:6","nodeType":"YulFunctionCall","src":"13164:19:6"}],"functionName":{"name":"mload","nativeSrc":"13158:5:6","nodeType":"YulIdentifier","src":"13158:5:6"},"nativeSrc":"13158:26:6","nodeType":"YulFunctionCall","src":"13158:26:6"},{"arguments":[{"arguments":[{"name":"pPub","nativeSrc":"13228:4:6","nodeType":"YulIdentifier","src":"13228:4:6"},{"kind":"number","nativeSrc":"13234:2:6","nodeType":"YulLiteral","src":"13234:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13224:3:6","nodeType":"YulIdentifier","src":"13224:3:6"},"nativeSrc":"13224:13:6","nodeType":"YulFunctionCall","src":"13224:13:6"}],"functionName":{"name":"mload","nativeSrc":"13218:5:6","nodeType":"YulIdentifier","src":"13218:5:6"},"nativeSrc":"13218:20:6","nodeType":"YulFunctionCall","src":"13218:20:6"},{"name":"q","nativeSrc":"13272:1:6","nodeType":"YulIdentifier","src":"13272:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"13118:6:6","nodeType":"YulIdentifier","src":"13118:6:6"},"nativeSrc":"13118:185:6","nodeType":"YulFunctionCall","src":"13118:185:6"}],"functionName":{"name":"sub","nativeSrc":"13051:3:6","nodeType":"YulIdentifier","src":"13051:3:6"},"nativeSrc":"13051:278:6","nodeType":"YulFunctionCall","src":"13051:278:6"},{"name":"q","nativeSrc":"13355:1:6","nodeType":"YulIdentifier","src":"13355:1:6"}],"functionName":{"name":"add","nativeSrc":"13022:3:6","nodeType":"YulIdentifier","src":"13022:3:6"},"nativeSrc":"13022:356:6","nodeType":"YulFunctionCall","src":"13022:356:6"},{"name":"q","nativeSrc":"13400:1:6","nodeType":"YulIdentifier","src":"13400:1:6"}],"functionName":{"name":"mod","nativeSrc":"12997:3:6","nodeType":"YulIdentifier","src":"12997:3:6"},"nativeSrc":"12997:422:6","nodeType":"YulFunctionCall","src":"12997:422:6"},"variableNames":[{"name":"pl","nativeSrc":"12991:2:6","nodeType":"YulIdentifier","src":"12991:2:6"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"13481:4:6","nodeType":"YulIdentifier","src":"13481:4:6"},{"name":"pPl","nativeSrc":"13487:3:6","nodeType":"YulIdentifier","src":"13487:3:6"}],"functionName":{"name":"add","nativeSrc":"13477:3:6","nodeType":"YulIdentifier","src":"13477:3:6"},"nativeSrc":"13477:14:6","nodeType":"YulFunctionCall","src":"13477:14:6"},{"name":"pl","nativeSrc":"13493:2:6","nodeType":"YulIdentifier","src":"13493:2:6"}],"functionName":{"name":"mstore","nativeSrc":"13470:6:6","nodeType":"YulIdentifier","src":"13470:6:6"},"nativeSrc":"13470:26:6","nodeType":"YulFunctionCall","src":"13470:26:6"},"nativeSrc":"13470:26:6","nodeType":"YulExpressionStatement","src":"13470:26:6"}]},"name":"calculatePl","nativeSrc":"12877:651:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"pMem","nativeSrc":"12898:4:6","nodeType":"YulTypedName","src":"12898:4:6","type":""},{"name":"pPub","nativeSrc":"12904:4:6","nodeType":"YulTypedName","src":"12904:4:6","type":""}],"src":"12877:651:6"},{"body":{"nativeSrc":"13576:2162:6","nodeType":"YulBlock","src":"13576:2162:6","statements":[{"nativeSrc":"13594:5:6","nodeType":"YulVariableDeclaration","src":"13594:5:6","variables":[{"name":"t","nativeSrc":"13598:1:6","nodeType":"YulTypedName","src":"13598:1:6","type":""}]},{"nativeSrc":"13616:6:6","nodeType":"YulVariableDeclaration","src":"13616:6:6","variables":[{"name":"t1","nativeSrc":"13620:2:6","nodeType":"YulTypedName","src":"13620:2:6","type":""}]},{"nativeSrc":"13639:6:6","nodeType":"YulVariableDeclaration","src":"13639:6:6","variables":[{"name":"t2","nativeSrc":"13643:2:6","nodeType":"YulTypedName","src":"13643:2:6","type":""}]},{"nativeSrc":"13662:146:6","nodeType":"YulAssignment","src":"13662:146:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"13705:6:6","nodeType":"YulIdentifier","src":"13705:6:6"},{"name":"pEval_r","nativeSrc":"13713:7:6","nodeType":"YulIdentifier","src":"13713:7:6"}],"functionName":{"name":"add","nativeSrc":"13701:3:6","nodeType":"YulIdentifier","src":"13701:3:6"},"nativeSrc":"13701:20:6","nodeType":"YulFunctionCall","src":"13701:20:6"}],"functionName":{"name":"mload","nativeSrc":"13695:5:6","nodeType":"YulIdentifier","src":"13695:5:6"},"nativeSrc":"13695:27:6","nodeType":"YulFunctionCall","src":"13695:27:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"13755:4:6","nodeType":"YulIdentifier","src":"13755:4:6"},{"name":"pPl","nativeSrc":"13761:3:6","nodeType":"YulIdentifier","src":"13761:3:6"}],"functionName":{"name":"add","nativeSrc":"13751:3:6","nodeType":"YulIdentifier","src":"13751:3:6"},"nativeSrc":"13751:14:6","nodeType":"YulFunctionCall","src":"13751:14:6"}],"functionName":{"name":"mload","nativeSrc":"13745:5:6","nodeType":"YulIdentifier","src":"13745:5:6"},"nativeSrc":"13745:21:6","nodeType":"YulFunctionCall","src":"13745:21:6"},{"name":"q","nativeSrc":"13789:1:6","nodeType":"YulIdentifier","src":"13789:1:6"}],"functionName":{"name":"addmod","nativeSrc":"13667:6:6","nodeType":"YulIdentifier","src":"13667:6:6"},"nativeSrc":"13667:141:6","nodeType":"YulFunctionCall","src":"13667:141:6"},"variableNames":[{"name":"t","nativeSrc":"13662:1:6","nodeType":"YulIdentifier","src":"13662:1:6"}]},{"nativeSrc":"13842:148:6","nodeType":"YulAssignment","src":"13842:148:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"13886:6:6","nodeType":"YulIdentifier","src":"13886:6:6"},{"name":"pEval_s1","nativeSrc":"13894:8:6","nodeType":"YulIdentifier","src":"13894:8:6"}],"functionName":{"name":"add","nativeSrc":"13882:3:6","nodeType":"YulIdentifier","src":"13882:3:6"},"nativeSrc":"13882:21:6","nodeType":"YulFunctionCall","src":"13882:21:6"}],"functionName":{"name":"mload","nativeSrc":"13876:5:6","nodeType":"YulIdentifier","src":"13876:5:6"},"nativeSrc":"13876:28:6","nodeType":"YulFunctionCall","src":"13876:28:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"13936:4:6","nodeType":"YulIdentifier","src":"13936:4:6"},{"name":"pBeta","nativeSrc":"13942:5:6","nodeType":"YulIdentifier","src":"13942:5:6"}],"functionName":{"name":"add","nativeSrc":"13932:3:6","nodeType":"YulIdentifier","src":"13932:3:6"},"nativeSrc":"13932:16:6","nodeType":"YulFunctionCall","src":"13932:16:6"}],"functionName":{"name":"mload","nativeSrc":"13926:5:6","nodeType":"YulIdentifier","src":"13926:5:6"},"nativeSrc":"13926:23:6","nodeType":"YulFunctionCall","src":"13926:23:6"},{"name":"q","nativeSrc":"13971:1:6","nodeType":"YulIdentifier","src":"13971:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"13848:6:6","nodeType":"YulIdentifier","src":"13848:6:6"},"nativeSrc":"13848:142:6","nodeType":"YulFunctionCall","src":"13848:142:6"},"variableNames":[{"name":"t1","nativeSrc":"13842:2:6","nodeType":"YulIdentifier","src":"13842:2:6"}]},{"nativeSrc":"14008:126:6","nodeType":"YulAssignment","src":"14008:126:6","value":{"arguments":[{"name":"t1","nativeSrc":"14042:2:6","nodeType":"YulIdentifier","src":"14042:2:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"14076:6:6","nodeType":"YulIdentifier","src":"14076:6:6"},{"name":"pEval_a","nativeSrc":"14084:7:6","nodeType":"YulIdentifier","src":"14084:7:6"}],"functionName":{"name":"add","nativeSrc":"14072:3:6","nodeType":"YulIdentifier","src":"14072:3:6"},"nativeSrc":"14072:20:6","nodeType":"YulFunctionCall","src":"14072:20:6"}],"functionName":{"name":"mload","nativeSrc":"14066:5:6","nodeType":"YulIdentifier","src":"14066:5:6"},"nativeSrc":"14066:27:6","nodeType":"YulFunctionCall","src":"14066:27:6"},{"name":"q","nativeSrc":"14115:1:6","nodeType":"YulIdentifier","src":"14115:1:6"}],"functionName":{"name":"addmod","nativeSrc":"14014:6:6","nodeType":"YulIdentifier","src":"14014:6:6"},"nativeSrc":"14014:120:6","nodeType":"YulFunctionCall","src":"14014:120:6"},"variableNames":[{"name":"t1","nativeSrc":"14008:2:6","nodeType":"YulIdentifier","src":"14008:2:6"}]},{"nativeSrc":"14168:123:6","nodeType":"YulAssignment","src":"14168:123:6","value":{"arguments":[{"name":"t1","nativeSrc":"14202:2:6","nodeType":"YulIdentifier","src":"14202:2:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"14236:4:6","nodeType":"YulIdentifier","src":"14236:4:6"},{"name":"pGamma","nativeSrc":"14242:6:6","nodeType":"YulIdentifier","src":"14242:6:6"}],"functionName":{"name":"add","nativeSrc":"14232:3:6","nodeType":"YulIdentifier","src":"14232:3:6"},"nativeSrc":"14232:17:6","nodeType":"YulFunctionCall","src":"14232:17:6"}],"functionName":{"name":"mload","nativeSrc":"14226:5:6","nodeType":"YulIdentifier","src":"14226:5:6"},"nativeSrc":"14226:24:6","nodeType":"YulFunctionCall","src":"14226:24:6"},{"name":"q","nativeSrc":"14272:1:6","nodeType":"YulIdentifier","src":"14272:1:6"}],"functionName":{"name":"addmod","nativeSrc":"14174:6:6","nodeType":"YulIdentifier","src":"14174:6:6"},"nativeSrc":"14174:117:6","nodeType":"YulFunctionCall","src":"14174:117:6"},"variableNames":[{"name":"t1","nativeSrc":"14168:2:6","nodeType":"YulIdentifier","src":"14168:2:6"}]},{"nativeSrc":"14309:148:6","nodeType":"YulAssignment","src":"14309:148:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"14353:6:6","nodeType":"YulIdentifier","src":"14353:6:6"},{"name":"pEval_s2","nativeSrc":"14361:8:6","nodeType":"YulIdentifier","src":"14361:8:6"}],"functionName":{"name":"add","nativeSrc":"14349:3:6","nodeType":"YulIdentifier","src":"14349:3:6"},"nativeSrc":"14349:21:6","nodeType":"YulFunctionCall","src":"14349:21:6"}],"functionName":{"name":"mload","nativeSrc":"14343:5:6","nodeType":"YulIdentifier","src":"14343:5:6"},"nativeSrc":"14343:28:6","nodeType":"YulFunctionCall","src":"14343:28:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"14403:4:6","nodeType":"YulIdentifier","src":"14403:4:6"},{"name":"pBeta","nativeSrc":"14409:5:6","nodeType":"YulIdentifier","src":"14409:5:6"}],"functionName":{"name":"add","nativeSrc":"14399:3:6","nodeType":"YulIdentifier","src":"14399:3:6"},"nativeSrc":"14399:16:6","nodeType":"YulFunctionCall","src":"14399:16:6"}],"functionName":{"name":"mload","nativeSrc":"14393:5:6","nodeType":"YulIdentifier","src":"14393:5:6"},"nativeSrc":"14393:23:6","nodeType":"YulFunctionCall","src":"14393:23:6"},{"name":"q","nativeSrc":"14438:1:6","nodeType":"YulIdentifier","src":"14438:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"14315:6:6","nodeType":"YulIdentifier","src":"14315:6:6"},"nativeSrc":"14315:142:6","nodeType":"YulFunctionCall","src":"14315:142:6"},"variableNames":[{"name":"t2","nativeSrc":"14309:2:6","nodeType":"YulIdentifier","src":"14309:2:6"}]},{"nativeSrc":"14475:126:6","nodeType":"YulAssignment","src":"14475:126:6","value":{"arguments":[{"name":"t2","nativeSrc":"14509:2:6","nodeType":"YulIdentifier","src":"14509:2:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"14543:6:6","nodeType":"YulIdentifier","src":"14543:6:6"},{"name":"pEval_b","nativeSrc":"14551:7:6","nodeType":"YulIdentifier","src":"14551:7:6"}],"functionName":{"name":"add","nativeSrc":"14539:3:6","nodeType":"YulIdentifier","src":"14539:3:6"},"nativeSrc":"14539:20:6","nodeType":"YulFunctionCall","src":"14539:20:6"}],"functionName":{"name":"mload","nativeSrc":"14533:5:6","nodeType":"YulIdentifier","src":"14533:5:6"},"nativeSrc":"14533:27:6","nodeType":"YulFunctionCall","src":"14533:27:6"},{"name":"q","nativeSrc":"14582:1:6","nodeType":"YulIdentifier","src":"14582:1:6"}],"functionName":{"name":"addmod","nativeSrc":"14481:6:6","nodeType":"YulIdentifier","src":"14481:6:6"},"nativeSrc":"14481:120:6","nodeType":"YulFunctionCall","src":"14481:120:6"},"variableNames":[{"name":"t2","nativeSrc":"14475:2:6","nodeType":"YulIdentifier","src":"14475:2:6"}]},{"nativeSrc":"14635:123:6","nodeType":"YulAssignment","src":"14635:123:6","value":{"arguments":[{"name":"t2","nativeSrc":"14669:2:6","nodeType":"YulIdentifier","src":"14669:2:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"14703:4:6","nodeType":"YulIdentifier","src":"14703:4:6"},{"name":"pGamma","nativeSrc":"14709:6:6","nodeType":"YulIdentifier","src":"14709:6:6"}],"functionName":{"name":"add","nativeSrc":"14699:3:6","nodeType":"YulIdentifier","src":"14699:3:6"},"nativeSrc":"14699:17:6","nodeType":"YulFunctionCall","src":"14699:17:6"}],"functionName":{"name":"mload","nativeSrc":"14693:5:6","nodeType":"YulIdentifier","src":"14693:5:6"},"nativeSrc":"14693:24:6","nodeType":"YulFunctionCall","src":"14693:24:6"},{"name":"q","nativeSrc":"14739:1:6","nodeType":"YulIdentifier","src":"14739:1:6"}],"functionName":{"name":"addmod","nativeSrc":"14641:6:6","nodeType":"YulIdentifier","src":"14641:6:6"},"nativeSrc":"14641:117:6","nodeType":"YulFunctionCall","src":"14641:117:6"},"variableNames":[{"name":"t2","nativeSrc":"14635:2:6","nodeType":"YulIdentifier","src":"14635:2:6"}]},{"nativeSrc":"14792:23:6","nodeType":"YulAssignment","src":"14792:23:6","value":{"arguments":[{"name":"t1","nativeSrc":"14805:2:6","nodeType":"YulIdentifier","src":"14805:2:6"},{"name":"t2","nativeSrc":"14809:2:6","nodeType":"YulIdentifier","src":"14809:2:6"},{"name":"q","nativeSrc":"14813:1:6","nodeType":"YulIdentifier","src":"14813:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"14798:6:6","nodeType":"YulIdentifier","src":"14798:6:6"},"nativeSrc":"14798:17:6","nodeType":"YulFunctionCall","src":"14798:17:6"},"variableNames":[{"name":"t1","nativeSrc":"14792:2:6","nodeType":"YulIdentifier","src":"14792:2:6"}]},{"nativeSrc":"14849:148:6","nodeType":"YulAssignment","src":"14849:148:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"14893:6:6","nodeType":"YulIdentifier","src":"14893:6:6"},{"name":"pEval_c","nativeSrc":"14901:7:6","nodeType":"YulIdentifier","src":"14901:7:6"}],"functionName":{"name":"add","nativeSrc":"14889:3:6","nodeType":"YulIdentifier","src":"14889:3:6"},"nativeSrc":"14889:20:6","nodeType":"YulFunctionCall","src":"14889:20:6"}],"functionName":{"name":"mload","nativeSrc":"14883:5:6","nodeType":"YulIdentifier","src":"14883:5:6"},"nativeSrc":"14883:27:6","nodeType":"YulFunctionCall","src":"14883:27:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"14942:4:6","nodeType":"YulIdentifier","src":"14942:4:6"},{"name":"pGamma","nativeSrc":"14948:6:6","nodeType":"YulIdentifier","src":"14948:6:6"}],"functionName":{"name":"add","nativeSrc":"14938:3:6","nodeType":"YulIdentifier","src":"14938:3:6"},"nativeSrc":"14938:17:6","nodeType":"YulFunctionCall","src":"14938:17:6"}],"functionName":{"name":"mload","nativeSrc":"14932:5:6","nodeType":"YulIdentifier","src":"14932:5:6"},"nativeSrc":"14932:24:6","nodeType":"YulFunctionCall","src":"14932:24:6"},{"name":"q","nativeSrc":"14978:1:6","nodeType":"YulIdentifier","src":"14978:1:6"}],"functionName":{"name":"addmod","nativeSrc":"14855:6:6","nodeType":"YulIdentifier","src":"14855:6:6"},"nativeSrc":"14855:142:6","nodeType":"YulFunctionCall","src":"14855:142:6"},"variableNames":[{"name":"t2","nativeSrc":"14849:2:6","nodeType":"YulIdentifier","src":"14849:2:6"}]},{"nativeSrc":"15015:23:6","nodeType":"YulAssignment","src":"15015:23:6","value":{"arguments":[{"name":"t1","nativeSrc":"15028:2:6","nodeType":"YulIdentifier","src":"15028:2:6"},{"name":"t2","nativeSrc":"15032:2:6","nodeType":"YulIdentifier","src":"15032:2:6"},{"name":"q","nativeSrc":"15036:1:6","nodeType":"YulIdentifier","src":"15036:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"15021:6:6","nodeType":"YulIdentifier","src":"15021:6:6"},"nativeSrc":"15021:17:6","nodeType":"YulFunctionCall","src":"15021:17:6"},"variableNames":[{"name":"t1","nativeSrc":"15015:2:6","nodeType":"YulIdentifier","src":"15015:2:6"}]},{"nativeSrc":"15055:49:6","nodeType":"YulAssignment","src":"15055:49:6","value":{"arguments":[{"name":"t1","nativeSrc":"15068:2:6","nodeType":"YulIdentifier","src":"15068:2:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"15082:6:6","nodeType":"YulIdentifier","src":"15082:6:6"},{"name":"pEval_zw","nativeSrc":"15090:8:6","nodeType":"YulIdentifier","src":"15090:8:6"}],"functionName":{"name":"add","nativeSrc":"15078:3:6","nodeType":"YulIdentifier","src":"15078:3:6"},"nativeSrc":"15078:21:6","nodeType":"YulFunctionCall","src":"15078:21:6"}],"functionName":{"name":"mload","nativeSrc":"15072:5:6","nodeType":"YulIdentifier","src":"15072:5:6"},"nativeSrc":"15072:28:6","nodeType":"YulFunctionCall","src":"15072:28:6"},{"name":"q","nativeSrc":"15102:1:6","nodeType":"YulIdentifier","src":"15102:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"15061:6:6","nodeType":"YulIdentifier","src":"15061:6:6"},"nativeSrc":"15061:43:6","nodeType":"YulFunctionCall","src":"15061:43:6"},"variableNames":[{"name":"t1","nativeSrc":"15055:2:6","nodeType":"YulIdentifier","src":"15055:2:6"}]},{"nativeSrc":"15121:45:6","nodeType":"YulAssignment","src":"15121:45:6","value":{"arguments":[{"name":"t1","nativeSrc":"15134:2:6","nodeType":"YulIdentifier","src":"15134:2:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15148:4:6","nodeType":"YulIdentifier","src":"15148:4:6"},{"name":"pAlpha","nativeSrc":"15154:6:6","nodeType":"YulIdentifier","src":"15154:6:6"}],"functionName":{"name":"add","nativeSrc":"15144:3:6","nodeType":"YulIdentifier","src":"15144:3:6"},"nativeSrc":"15144:17:6","nodeType":"YulFunctionCall","src":"15144:17:6"}],"functionName":{"name":"mload","nativeSrc":"15138:5:6","nodeType":"YulIdentifier","src":"15138:5:6"},"nativeSrc":"15138:24:6","nodeType":"YulFunctionCall","src":"15138:24:6"},{"name":"q","nativeSrc":"15164:1:6","nodeType":"YulIdentifier","src":"15164:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"15127:6:6","nodeType":"YulIdentifier","src":"15127:6:6"},"nativeSrc":"15127:39:6","nodeType":"YulFunctionCall","src":"15127:39:6"},"variableNames":[{"name":"t1","nativeSrc":"15121:2:6","nodeType":"YulIdentifier","src":"15121:2:6"}]},{"nativeSrc":"15200:149:6","nodeType":"YulAssignment","src":"15200:149:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15244:4:6","nodeType":"YulIdentifier","src":"15244:4:6"},{"name":"pEval_l1","nativeSrc":"15250:8:6","nodeType":"YulIdentifier","src":"15250:8:6"}],"functionName":{"name":"add","nativeSrc":"15240:3:6","nodeType":"YulIdentifier","src":"15240:3:6"},"nativeSrc":"15240:19:6","nodeType":"YulFunctionCall","src":"15240:19:6"}],"functionName":{"name":"mload","nativeSrc":"15234:5:6","nodeType":"YulIdentifier","src":"15234:5:6"},"nativeSrc":"15234:26:6","nodeType":"YulFunctionCall","src":"15234:26:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15293:4:6","nodeType":"YulIdentifier","src":"15293:4:6"},{"name":"pAlpha","nativeSrc":"15299:6:6","nodeType":"YulIdentifier","src":"15299:6:6"}],"functionName":{"name":"add","nativeSrc":"15289:3:6","nodeType":"YulIdentifier","src":"15289:3:6"},"nativeSrc":"15289:17:6","nodeType":"YulFunctionCall","src":"15289:17:6"}],"functionName":{"name":"mload","nativeSrc":"15283:5:6","nodeType":"YulIdentifier","src":"15283:5:6"},"nativeSrc":"15283:24:6","nodeType":"YulFunctionCall","src":"15283:24:6"},{"name":"q","nativeSrc":"15330:1:6","nodeType":"YulIdentifier","src":"15330:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"15206:6:6","nodeType":"YulIdentifier","src":"15206:6:6"},"nativeSrc":"15206:143:6","nodeType":"YulFunctionCall","src":"15206:143:6"},"variableNames":[{"name":"t2","nativeSrc":"15200:2:6","nodeType":"YulIdentifier","src":"15200:2:6"}]},{"nativeSrc":"15367:125:6","nodeType":"YulAssignment","src":"15367:125:6","value":{"arguments":[{"name":"t2","nativeSrc":"15401:2:6","nodeType":"YulIdentifier","src":"15401:2:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15436:4:6","nodeType":"YulIdentifier","src":"15436:4:6"},{"name":"pAlpha","nativeSrc":"15442:6:6","nodeType":"YulIdentifier","src":"15442:6:6"}],"functionName":{"name":"add","nativeSrc":"15432:3:6","nodeType":"YulIdentifier","src":"15432:3:6"},"nativeSrc":"15432:17:6","nodeType":"YulFunctionCall","src":"15432:17:6"}],"functionName":{"name":"mload","nativeSrc":"15426:5:6","nodeType":"YulIdentifier","src":"15426:5:6"},"nativeSrc":"15426:24:6","nodeType":"YulFunctionCall","src":"15426:24:6"},{"name":"q","nativeSrc":"15473:1:6","nodeType":"YulIdentifier","src":"15473:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"15373:6:6","nodeType":"YulIdentifier","src":"15373:6:6"},"nativeSrc":"15373:119:6","nodeType":"YulFunctionCall","src":"15373:119:6"},"variableNames":[{"name":"t2","nativeSrc":"15367:2:6","nodeType":"YulIdentifier","src":"15367:2:6"}]},{"nativeSrc":"15510:23:6","nodeType":"YulAssignment","src":"15510:23:6","value":{"arguments":[{"name":"t1","nativeSrc":"15523:2:6","nodeType":"YulIdentifier","src":"15523:2:6"},{"name":"t2","nativeSrc":"15527:2:6","nodeType":"YulIdentifier","src":"15527:2:6"},{"name":"q","nativeSrc":"15531:1:6","nodeType":"YulIdentifier","src":"15531:1:6"}],"functionName":{"name":"addmod","nativeSrc":"15516:6:6","nodeType":"YulIdentifier","src":"15516:6:6"},"nativeSrc":"15516:17:6","nodeType":"YulFunctionCall","src":"15516:17:6"},"variableNames":[{"name":"t1","nativeSrc":"15510:2:6","nodeType":"YulIdentifier","src":"15510:2:6"}]},{"nativeSrc":"15567:31:6","nodeType":"YulAssignment","src":"15567:31:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"t","nativeSrc":"15584:1:6","nodeType":"YulIdentifier","src":"15584:1:6"},{"name":"q","nativeSrc":"15587:1:6","nodeType":"YulIdentifier","src":"15587:1:6"}],"functionName":{"name":"add","nativeSrc":"15580:3:6","nodeType":"YulIdentifier","src":"15580:3:6"},"nativeSrc":"15580:9:6","nodeType":"YulFunctionCall","src":"15580:9:6"},{"name":"t1","nativeSrc":"15591:2:6","nodeType":"YulIdentifier","src":"15591:2:6"}],"functionName":{"name":"sub","nativeSrc":"15576:3:6","nodeType":"YulIdentifier","src":"15576:3:6"},"nativeSrc":"15576:18:6","nodeType":"YulFunctionCall","src":"15576:18:6"},{"name":"q","nativeSrc":"15596:1:6","nodeType":"YulIdentifier","src":"15596:1:6"}],"functionName":{"name":"mod","nativeSrc":"15572:3:6","nodeType":"YulIdentifier","src":"15572:3:6"},"nativeSrc":"15572:26:6","nodeType":"YulFunctionCall","src":"15572:26:6"},"variableNames":[{"name":"t","nativeSrc":"15567:1:6","nodeType":"YulIdentifier","src":"15567:1:6"}]},{"nativeSrc":"15615:43:6","nodeType":"YulAssignment","src":"15615:43:6","value":{"arguments":[{"name":"t","nativeSrc":"15627:1:6","nodeType":"YulIdentifier","src":"15627:1:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15640:4:6","nodeType":"YulIdentifier","src":"15640:4:6"},{"name":"pZhInv","nativeSrc":"15646:6:6","nodeType":"YulIdentifier","src":"15646:6:6"}],"functionName":{"name":"add","nativeSrc":"15636:3:6","nodeType":"YulIdentifier","src":"15636:3:6"},"nativeSrc":"15636:17:6","nodeType":"YulFunctionCall","src":"15636:17:6"}],"functionName":{"name":"mload","nativeSrc":"15630:5:6","nodeType":"YulIdentifier","src":"15630:5:6"},"nativeSrc":"15630:24:6","nodeType":"YulFunctionCall","src":"15630:24:6"},{"name":"q","nativeSrc":"15656:1:6","nodeType":"YulIdentifier","src":"15656:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"15620:6:6","nodeType":"YulIdentifier","src":"15620:6:6"},"nativeSrc":"15620:38:6","nodeType":"YulFunctionCall","src":"15620:38:6"},"variableNames":[{"name":"t","nativeSrc":"15615:1:6","nodeType":"YulIdentifier","src":"15615:1:6"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15704:4:6","nodeType":"YulIdentifier","src":"15704:4:6"},{"name":"pEval_t","nativeSrc":"15710:7:6","nodeType":"YulIdentifier","src":"15710:7:6"}],"functionName":{"name":"add","nativeSrc":"15700:3:6","nodeType":"YulIdentifier","src":"15700:3:6"},"nativeSrc":"15700:18:6","nodeType":"YulFunctionCall","src":"15700:18:6"},{"name":"t","nativeSrc":"15721:1:6","nodeType":"YulIdentifier","src":"15721:1:6"}],"functionName":{"name":"mstore","nativeSrc":"15692:6:6","nodeType":"YulIdentifier","src":"15692:6:6"},"nativeSrc":"15692:31:6","nodeType":"YulFunctionCall","src":"15692:31:6"},"nativeSrc":"15692:31:6","nodeType":"YulExpressionStatement","src":"15692:31:6"}]},"name":"calculateT","nativeSrc":"13542:2196:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"pProof","nativeSrc":"13562:6:6","nodeType":"YulTypedName","src":"13562:6:6","type":""},{"name":"pMem","nativeSrc":"13570:4:6","nodeType":"YulTypedName","src":"13570:4:6","type":""}],"src":"13542:2196:6"},{"body":{"nativeSrc":"15788:108:6","nodeType":"YulBlock","src":"15788:108:6","statements":[{"expression":{"arguments":[{"name":"pR","nativeSrc":"15813:2:6","nodeType":"YulIdentifier","src":"15813:2:6"},{"arguments":[{"name":"pP","nativeSrc":"15823:2:6","nodeType":"YulIdentifier","src":"15823:2:6"}],"functionName":{"name":"mload","nativeSrc":"15817:5:6","nodeType":"YulIdentifier","src":"15817:5:6"},"nativeSrc":"15817:9:6","nodeType":"YulFunctionCall","src":"15817:9:6"}],"functionName":{"name":"mstore","nativeSrc":"15806:6:6","nodeType":"YulIdentifier","src":"15806:6:6"},"nativeSrc":"15806:21:6","nodeType":"YulFunctionCall","src":"15806:21:6"},"nativeSrc":"15806:21:6","nodeType":"YulExpressionStatement","src":"15806:21:6"},{"expression":{"arguments":[{"arguments":[{"name":"pR","nativeSrc":"15855:2:6","nodeType":"YulIdentifier","src":"15855:2:6"},{"kind":"number","nativeSrc":"15859:2:6","nodeType":"YulLiteral","src":"15859:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15851:3:6","nodeType":"YulIdentifier","src":"15851:3:6"},"nativeSrc":"15851:11:6","nodeType":"YulFunctionCall","src":"15851:11:6"},{"arguments":[{"arguments":[{"name":"pP","nativeSrc":"15874:2:6","nodeType":"YulIdentifier","src":"15874:2:6"},{"kind":"number","nativeSrc":"15877:2:6","nodeType":"YulLiteral","src":"15877:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15870:3:6","nodeType":"YulIdentifier","src":"15870:3:6"},"nativeSrc":"15870:10:6","nodeType":"YulFunctionCall","src":"15870:10:6"}],"functionName":{"name":"mload","nativeSrc":"15864:5:6","nodeType":"YulIdentifier","src":"15864:5:6"},"nativeSrc":"15864:17:6","nodeType":"YulFunctionCall","src":"15864:17:6"}],"functionName":{"name":"mstore","nativeSrc":"15844:6:6","nodeType":"YulIdentifier","src":"15844:6:6"},"nativeSrc":"15844:38:6","nodeType":"YulFunctionCall","src":"15844:38:6"},"nativeSrc":"15844:38:6","nodeType":"YulExpressionStatement","src":"15844:38:6"}]},"name":"g1_set","nativeSrc":"15764:132:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"pR","nativeSrc":"15780:2:6","nodeType":"YulTypedName","src":"15780:2:6","type":""},{"name":"pP","nativeSrc":"15784:2:6","nodeType":"YulTypedName","src":"15784:2:6","type":""}],"src":"15764:132:6"},{"body":{"nativeSrc":"15934:474:6","nodeType":"YulBlock","src":"15934:474:6","statements":[{"nativeSrc":"15952:22:6","nodeType":"YulVariableDeclaration","src":"15952:22:6","value":{"arguments":[{"kind":"number","nativeSrc":"15969:4:6","nodeType":"YulLiteral","src":"15969:4:6","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"15963:5:6","nodeType":"YulIdentifier","src":"15963:5:6"},"nativeSrc":"15963:11:6","nodeType":"YulFunctionCall","src":"15963:11:6"},"variables":[{"name":"mIn","nativeSrc":"15956:3:6","nodeType":"YulTypedName","src":"15956:3:6","type":""}]},{"expression":{"arguments":[{"name":"mIn","nativeSrc":"15998:3:6","nodeType":"YulIdentifier","src":"15998:3:6"},{"arguments":[{"name":"pR","nativeSrc":"16009:2:6","nodeType":"YulIdentifier","src":"16009:2:6"}],"functionName":{"name":"mload","nativeSrc":"16003:5:6","nodeType":"YulIdentifier","src":"16003:5:6"},"nativeSrc":"16003:9:6","nodeType":"YulFunctionCall","src":"16003:9:6"}],"functionName":{"name":"mstore","nativeSrc":"15991:6:6","nodeType":"YulIdentifier","src":"15991:6:6"},"nativeSrc":"15991:22:6","nodeType":"YulFunctionCall","src":"15991:22:6"},"nativeSrc":"15991:22:6","nodeType":"YulExpressionStatement","src":"15991:22:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16041:3:6","nodeType":"YulIdentifier","src":"16041:3:6"},{"kind":"number","nativeSrc":"16045:2:6","nodeType":"YulLiteral","src":"16045:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16037:3:6","nodeType":"YulIdentifier","src":"16037:3:6"},"nativeSrc":"16037:11:6","nodeType":"YulFunctionCall","src":"16037:11:6"},{"arguments":[{"arguments":[{"name":"pR","nativeSrc":"16060:2:6","nodeType":"YulIdentifier","src":"16060:2:6"},{"kind":"number","nativeSrc":"16064:2:6","nodeType":"YulLiteral","src":"16064:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16056:3:6","nodeType":"YulIdentifier","src":"16056:3:6"},"nativeSrc":"16056:11:6","nodeType":"YulFunctionCall","src":"16056:11:6"}],"functionName":{"name":"mload","nativeSrc":"16050:5:6","nodeType":"YulIdentifier","src":"16050:5:6"},"nativeSrc":"16050:18:6","nodeType":"YulFunctionCall","src":"16050:18:6"}],"functionName":{"name":"mstore","nativeSrc":"16030:6:6","nodeType":"YulIdentifier","src":"16030:6:6"},"nativeSrc":"16030:39:6","nodeType":"YulFunctionCall","src":"16030:39:6"},"nativeSrc":"16030:39:6","nodeType":"YulExpressionStatement","src":"16030:39:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16097:3:6","nodeType":"YulIdentifier","src":"16097:3:6"},{"kind":"number","nativeSrc":"16101:2:6","nodeType":"YulLiteral","src":"16101:2:6","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16093:3:6","nodeType":"YulIdentifier","src":"16093:3:6"},"nativeSrc":"16093:11:6","nodeType":"YulFunctionCall","src":"16093:11:6"},{"arguments":[{"name":"pP","nativeSrc":"16112:2:6","nodeType":"YulIdentifier","src":"16112:2:6"}],"functionName":{"name":"mload","nativeSrc":"16106:5:6","nodeType":"YulIdentifier","src":"16106:5:6"},"nativeSrc":"16106:9:6","nodeType":"YulFunctionCall","src":"16106:9:6"}],"functionName":{"name":"mstore","nativeSrc":"16086:6:6","nodeType":"YulIdentifier","src":"16086:6:6"},"nativeSrc":"16086:30:6","nodeType":"YulFunctionCall","src":"16086:30:6"},"nativeSrc":"16086:30:6","nodeType":"YulExpressionStatement","src":"16086:30:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16144:3:6","nodeType":"YulIdentifier","src":"16144:3:6"},{"kind":"number","nativeSrc":"16148:2:6","nodeType":"YulLiteral","src":"16148:2:6","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16140:3:6","nodeType":"YulIdentifier","src":"16140:3:6"},"nativeSrc":"16140:11:6","nodeType":"YulFunctionCall","src":"16140:11:6"},{"arguments":[{"arguments":[{"name":"pP","nativeSrc":"16163:2:6","nodeType":"YulIdentifier","src":"16163:2:6"},{"kind":"number","nativeSrc":"16167:2:6","nodeType":"YulLiteral","src":"16167:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16159:3:6","nodeType":"YulIdentifier","src":"16159:3:6"},"nativeSrc":"16159:11:6","nodeType":"YulFunctionCall","src":"16159:11:6"}],"functionName":{"name":"mload","nativeSrc":"16153:5:6","nodeType":"YulIdentifier","src":"16153:5:6"},"nativeSrc":"16153:18:6","nodeType":"YulFunctionCall","src":"16153:18:6"}],"functionName":{"name":"mstore","nativeSrc":"16133:6:6","nodeType":"YulIdentifier","src":"16133:6:6"},"nativeSrc":"16133:39:6","nodeType":"YulFunctionCall","src":"16133:39:6"},"nativeSrc":"16133:39:6","nodeType":"YulExpressionStatement","src":"16133:39:6"},{"nativeSrc":"16190:64:6","nodeType":"YulVariableDeclaration","src":"16190:64:6","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"16220:3:6","nodeType":"YulIdentifier","src":"16220:3:6"},"nativeSrc":"16220:5:6","nodeType":"YulFunctionCall","src":"16220:5:6"},{"kind":"number","nativeSrc":"16227:4:6","nodeType":"YulLiteral","src":"16227:4:6","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"16216:3:6","nodeType":"YulIdentifier","src":"16216:3:6"},"nativeSrc":"16216:16:6","nodeType":"YulFunctionCall","src":"16216:16:6"},{"kind":"number","nativeSrc":"16234:1:6","nodeType":"YulLiteral","src":"16234:1:6","type":"","value":"6"},{"name":"mIn","nativeSrc":"16237:3:6","nodeType":"YulIdentifier","src":"16237:3:6"},{"kind":"number","nativeSrc":"16242:3:6","nodeType":"YulLiteral","src":"16242:3:6","type":"","value":"128"},{"name":"pR","nativeSrc":"16247:2:6","nodeType":"YulIdentifier","src":"16247:2:6"},{"kind":"number","nativeSrc":"16251:2:6","nodeType":"YulLiteral","src":"16251:2:6","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"16205:10:6","nodeType":"YulIdentifier","src":"16205:10:6"},"nativeSrc":"16205:49:6","nodeType":"YulFunctionCall","src":"16205:49:6"},"variables":[{"name":"success","nativeSrc":"16194:7:6","nodeType":"YulTypedName","src":"16194:7:6","type":""}]},{"body":{"nativeSrc":"16307:87:6","nodeType":"YulBlock","src":"16307:87:6","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16336:1:6","nodeType":"YulLiteral","src":"16336:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"16339:1:6","nodeType":"YulLiteral","src":"16339:1:6","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16329:6:6","nodeType":"YulIdentifier","src":"16329:6:6"},"nativeSrc":"16329:12:6","nodeType":"YulFunctionCall","src":"16329:12:6"},"nativeSrc":"16329:12:6","nodeType":"YulExpressionStatement","src":"16329:12:6"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16369:1:6","nodeType":"YulLiteral","src":"16369:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"16371:4:6","nodeType":"YulLiteral","src":"16371:4:6","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"16362:6:6","nodeType":"YulIdentifier","src":"16362:6:6"},"nativeSrc":"16362:14:6","nodeType":"YulFunctionCall","src":"16362:14:6"},"nativeSrc":"16362:14:6","nodeType":"YulExpressionStatement","src":"16362:14:6"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"16298:7:6","nodeType":"YulIdentifier","src":"16298:7:6"}],"functionName":{"name":"iszero","nativeSrc":"16291:6:6","nodeType":"YulIdentifier","src":"16291:6:6"},"nativeSrc":"16291:15:6","nodeType":"YulFunctionCall","src":"16291:15:6"},"nativeSrc":"16288:106:6","nodeType":"YulIf","src":"16288:106:6"}]},"name":"g1_acc","nativeSrc":"15910:498:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"pR","nativeSrc":"15926:2:6","nodeType":"YulTypedName","src":"15926:2:6","type":""},{"name":"pP","nativeSrc":"15930:2:6","nodeType":"YulTypedName","src":"15930:2:6","type":""}],"src":"15910:498:6"},{"body":{"nativeSrc":"16452:789:6","nodeType":"YulBlock","src":"16452:789:6","statements":[{"nativeSrc":"16470:11:6","nodeType":"YulVariableDeclaration","src":"16470:11:6","variables":[{"name":"success","nativeSrc":"16474:7:6","nodeType":"YulTypedName","src":"16474:7:6","type":""}]},{"nativeSrc":"16498:22:6","nodeType":"YulVariableDeclaration","src":"16498:22:6","value":{"arguments":[{"kind":"number","nativeSrc":"16515:4:6","nodeType":"YulLiteral","src":"16515:4:6","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"16509:5:6","nodeType":"YulIdentifier","src":"16509:5:6"},"nativeSrc":"16509:11:6","nodeType":"YulFunctionCall","src":"16509:11:6"},"variables":[{"name":"mIn","nativeSrc":"16502:3:6","nodeType":"YulTypedName","src":"16502:3:6","type":""}]},{"expression":{"arguments":[{"name":"mIn","nativeSrc":"16544:3:6","nodeType":"YulIdentifier","src":"16544:3:6"},{"arguments":[{"name":"pP","nativeSrc":"16555:2:6","nodeType":"YulIdentifier","src":"16555:2:6"}],"functionName":{"name":"mload","nativeSrc":"16549:5:6","nodeType":"YulIdentifier","src":"16549:5:6"},"nativeSrc":"16549:9:6","nodeType":"YulFunctionCall","src":"16549:9:6"}],"functionName":{"name":"mstore","nativeSrc":"16537:6:6","nodeType":"YulIdentifier","src":"16537:6:6"},"nativeSrc":"16537:22:6","nodeType":"YulFunctionCall","src":"16537:22:6"},"nativeSrc":"16537:22:6","nodeType":"YulExpressionStatement","src":"16537:22:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16587:3:6","nodeType":"YulIdentifier","src":"16587:3:6"},{"kind":"number","nativeSrc":"16591:2:6","nodeType":"YulLiteral","src":"16591:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16583:3:6","nodeType":"YulIdentifier","src":"16583:3:6"},"nativeSrc":"16583:11:6","nodeType":"YulFunctionCall","src":"16583:11:6"},{"arguments":[{"arguments":[{"name":"pP","nativeSrc":"16606:2:6","nodeType":"YulIdentifier","src":"16606:2:6"},{"kind":"number","nativeSrc":"16610:2:6","nodeType":"YulLiteral","src":"16610:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16602:3:6","nodeType":"YulIdentifier","src":"16602:3:6"},"nativeSrc":"16602:11:6","nodeType":"YulFunctionCall","src":"16602:11:6"}],"functionName":{"name":"mload","nativeSrc":"16596:5:6","nodeType":"YulIdentifier","src":"16596:5:6"},"nativeSrc":"16596:18:6","nodeType":"YulFunctionCall","src":"16596:18:6"}],"functionName":{"name":"mstore","nativeSrc":"16576:6:6","nodeType":"YulIdentifier","src":"16576:6:6"},"nativeSrc":"16576:39:6","nodeType":"YulFunctionCall","src":"16576:39:6"},"nativeSrc":"16576:39:6","nodeType":"YulExpressionStatement","src":"16576:39:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16643:3:6","nodeType":"YulIdentifier","src":"16643:3:6"},{"kind":"number","nativeSrc":"16647:2:6","nodeType":"YulLiteral","src":"16647:2:6","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16639:3:6","nodeType":"YulIdentifier","src":"16639:3:6"},"nativeSrc":"16639:11:6","nodeType":"YulFunctionCall","src":"16639:11:6"},{"name":"s","nativeSrc":"16652:1:6","nodeType":"YulIdentifier","src":"16652:1:6"}],"functionName":{"name":"mstore","nativeSrc":"16632:6:6","nodeType":"YulIdentifier","src":"16632:6:6"},"nativeSrc":"16632:22:6","nodeType":"YulFunctionCall","src":"16632:22:6"},"nativeSrc":"16632:22:6","nodeType":"YulExpressionStatement","src":"16632:22:6"},{"nativeSrc":"16672:60:6","nodeType":"YulAssignment","src":"16672:60:6","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"16698:3:6","nodeType":"YulIdentifier","src":"16698:3:6"},"nativeSrc":"16698:5:6","nodeType":"YulFunctionCall","src":"16698:5:6"},{"kind":"number","nativeSrc":"16705:4:6","nodeType":"YulLiteral","src":"16705:4:6","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"16694:3:6","nodeType":"YulIdentifier","src":"16694:3:6"},"nativeSrc":"16694:16:6","nodeType":"YulFunctionCall","src":"16694:16:6"},{"kind":"number","nativeSrc":"16712:1:6","nodeType":"YulLiteral","src":"16712:1:6","type":"","value":"7"},{"name":"mIn","nativeSrc":"16715:3:6","nodeType":"YulIdentifier","src":"16715:3:6"},{"kind":"number","nativeSrc":"16720:2:6","nodeType":"YulLiteral","src":"16720:2:6","type":"","value":"96"},{"name":"mIn","nativeSrc":"16724:3:6","nodeType":"YulIdentifier","src":"16724:3:6"},{"kind":"number","nativeSrc":"16729:2:6","nodeType":"YulLiteral","src":"16729:2:6","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"16683:10:6","nodeType":"YulIdentifier","src":"16683:10:6"},"nativeSrc":"16683:49:6","nodeType":"YulFunctionCall","src":"16683:49:6"},"variableNames":[{"name":"success","nativeSrc":"16672:7:6","nodeType":"YulIdentifier","src":"16672:7:6"}]},{"body":{"nativeSrc":"16785:87:6","nodeType":"YulBlock","src":"16785:87:6","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16814:1:6","nodeType":"YulLiteral","src":"16814:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"16817:1:6","nodeType":"YulLiteral","src":"16817:1:6","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16807:6:6","nodeType":"YulIdentifier","src":"16807:6:6"},"nativeSrc":"16807:12:6","nodeType":"YulFunctionCall","src":"16807:12:6"},"nativeSrc":"16807:12:6","nodeType":"YulExpressionStatement","src":"16807:12:6"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16847:1:6","nodeType":"YulLiteral","src":"16847:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"16849:4:6","nodeType":"YulLiteral","src":"16849:4:6","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"16840:6:6","nodeType":"YulIdentifier","src":"16840:6:6"},"nativeSrc":"16840:14:6","nodeType":"YulFunctionCall","src":"16840:14:6"},"nativeSrc":"16840:14:6","nodeType":"YulExpressionStatement","src":"16840:14:6"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"16776:7:6","nodeType":"YulIdentifier","src":"16776:7:6"}],"functionName":{"name":"iszero","nativeSrc":"16769:6:6","nodeType":"YulIdentifier","src":"16769:6:6"},"nativeSrc":"16769:15:6","nodeType":"YulFunctionCall","src":"16769:15:6"},"nativeSrc":"16766:106:6","nodeType":"YulIf","src":"16766:106:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16917:3:6","nodeType":"YulIdentifier","src":"16917:3:6"},{"kind":"number","nativeSrc":"16921:2:6","nodeType":"YulLiteral","src":"16921:2:6","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16913:3:6","nodeType":"YulIdentifier","src":"16913:3:6"},"nativeSrc":"16913:11:6","nodeType":"YulFunctionCall","src":"16913:11:6"},{"arguments":[{"name":"pR","nativeSrc":"16932:2:6","nodeType":"YulIdentifier","src":"16932:2:6"}],"functionName":{"name":"mload","nativeSrc":"16926:5:6","nodeType":"YulIdentifier","src":"16926:5:6"},"nativeSrc":"16926:9:6","nodeType":"YulFunctionCall","src":"16926:9:6"}],"functionName":{"name":"mstore","nativeSrc":"16906:6:6","nodeType":"YulIdentifier","src":"16906:6:6"},"nativeSrc":"16906:30:6","nodeType":"YulFunctionCall","src":"16906:30:6"},"nativeSrc":"16906:30:6","nodeType":"YulExpressionStatement","src":"16906:30:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16964:3:6","nodeType":"YulIdentifier","src":"16964:3:6"},{"kind":"number","nativeSrc":"16968:2:6","nodeType":"YulLiteral","src":"16968:2:6","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16960:3:6","nodeType":"YulIdentifier","src":"16960:3:6"},"nativeSrc":"16960:11:6","nodeType":"YulFunctionCall","src":"16960:11:6"},{"arguments":[{"arguments":[{"name":"pR","nativeSrc":"16983:2:6","nodeType":"YulIdentifier","src":"16983:2:6"},{"kind":"number","nativeSrc":"16987:2:6","nodeType":"YulLiteral","src":"16987:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16979:3:6","nodeType":"YulIdentifier","src":"16979:3:6"},"nativeSrc":"16979:11:6","nodeType":"YulFunctionCall","src":"16979:11:6"}],"functionName":{"name":"mload","nativeSrc":"16973:5:6","nodeType":"YulIdentifier","src":"16973:5:6"},"nativeSrc":"16973:18:6","nodeType":"YulFunctionCall","src":"16973:18:6"}],"functionName":{"name":"mstore","nativeSrc":"16953:6:6","nodeType":"YulIdentifier","src":"16953:6:6"},"nativeSrc":"16953:39:6","nodeType":"YulFunctionCall","src":"16953:39:6"},"nativeSrc":"16953:39:6","nodeType":"YulExpressionStatement","src":"16953:39:6"},{"nativeSrc":"17010:60:6","nodeType":"YulAssignment","src":"17010:60:6","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"17036:3:6","nodeType":"YulIdentifier","src":"17036:3:6"},"nativeSrc":"17036:5:6","nodeType":"YulFunctionCall","src":"17036:5:6"},{"kind":"number","nativeSrc":"17043:4:6","nodeType":"YulLiteral","src":"17043:4:6","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"17032:3:6","nodeType":"YulIdentifier","src":"17032:3:6"},"nativeSrc":"17032:16:6","nodeType":"YulFunctionCall","src":"17032:16:6"},{"kind":"number","nativeSrc":"17050:1:6","nodeType":"YulLiteral","src":"17050:1:6","type":"","value":"6"},{"name":"mIn","nativeSrc":"17053:3:6","nodeType":"YulIdentifier","src":"17053:3:6"},{"kind":"number","nativeSrc":"17058:3:6","nodeType":"YulLiteral","src":"17058:3:6","type":"","value":"128"},{"name":"pR","nativeSrc":"17063:2:6","nodeType":"YulIdentifier","src":"17063:2:6"},{"kind":"number","nativeSrc":"17067:2:6","nodeType":"YulLiteral","src":"17067:2:6","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"17021:10:6","nodeType":"YulIdentifier","src":"17021:10:6"},"nativeSrc":"17021:49:6","nodeType":"YulFunctionCall","src":"17021:49:6"},"variableNames":[{"name":"success","nativeSrc":"17010:7:6","nodeType":"YulIdentifier","src":"17010:7:6"}]},{"body":{"nativeSrc":"17123:87:6","nodeType":"YulBlock","src":"17123:87:6","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17152:1:6","nodeType":"YulLiteral","src":"17152:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"17155:1:6","nodeType":"YulLiteral","src":"17155:1:6","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17145:6:6","nodeType":"YulIdentifier","src":"17145:6:6"},"nativeSrc":"17145:12:6","nodeType":"YulFunctionCall","src":"17145:12:6"},"nativeSrc":"17145:12:6","nodeType":"YulExpressionStatement","src":"17145:12:6"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17185:1:6","nodeType":"YulLiteral","src":"17185:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"17187:4:6","nodeType":"YulLiteral","src":"17187:4:6","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"17178:6:6","nodeType":"YulIdentifier","src":"17178:6:6"},"nativeSrc":"17178:14:6","nodeType":"YulFunctionCall","src":"17178:14:6"},"nativeSrc":"17178:14:6","nodeType":"YulExpressionStatement","src":"17178:14:6"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"17114:7:6","nodeType":"YulIdentifier","src":"17114:7:6"}],"functionName":{"name":"iszero","nativeSrc":"17107:6:6","nodeType":"YulIdentifier","src":"17107:6:6"},"nativeSrc":"17107:15:6","nodeType":"YulFunctionCall","src":"17107:15:6"},"nativeSrc":"17104:106:6","nodeType":"YulIf","src":"17104:106:6"}]},"name":"g1_mulAcc","nativeSrc":"16422:819:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"pR","nativeSrc":"16441:2:6","nodeType":"YulTypedName","src":"16441:2:6","type":""},{"name":"pP","nativeSrc":"16445:2:6","nodeType":"YulTypedName","src":"16445:2:6","type":""},{"name":"s","nativeSrc":"16449:1:6","nodeType":"YulTypedName","src":"16449:1:6","type":""}],"src":"16422:819:6"},{"body":{"nativeSrc":"17288:747:6","nodeType":"YulBlock","src":"17288:747:6","statements":[{"nativeSrc":"17306:11:6","nodeType":"YulVariableDeclaration","src":"17306:11:6","variables":[{"name":"success","nativeSrc":"17310:7:6","nodeType":"YulTypedName","src":"17310:7:6","type":""}]},{"nativeSrc":"17334:22:6","nodeType":"YulVariableDeclaration","src":"17334:22:6","value":{"arguments":[{"kind":"number","nativeSrc":"17351:4:6","nodeType":"YulLiteral","src":"17351:4:6","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"17345:5:6","nodeType":"YulIdentifier","src":"17345:5:6"},"nativeSrc":"17345:11:6","nodeType":"YulFunctionCall","src":"17345:11:6"},"variables":[{"name":"mIn","nativeSrc":"17338:3:6","nodeType":"YulTypedName","src":"17338:3:6","type":""}]},{"expression":{"arguments":[{"name":"mIn","nativeSrc":"17380:3:6","nodeType":"YulIdentifier","src":"17380:3:6"},{"name":"x","nativeSrc":"17385:1:6","nodeType":"YulIdentifier","src":"17385:1:6"}],"functionName":{"name":"mstore","nativeSrc":"17373:6:6","nodeType":"YulIdentifier","src":"17373:6:6"},"nativeSrc":"17373:14:6","nodeType":"YulFunctionCall","src":"17373:14:6"},"nativeSrc":"17373:14:6","nodeType":"YulExpressionStatement","src":"17373:14:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"17415:3:6","nodeType":"YulIdentifier","src":"17415:3:6"},{"kind":"number","nativeSrc":"17419:2:6","nodeType":"YulLiteral","src":"17419:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17411:3:6","nodeType":"YulIdentifier","src":"17411:3:6"},"nativeSrc":"17411:11:6","nodeType":"YulFunctionCall","src":"17411:11:6"},{"name":"y","nativeSrc":"17424:1:6","nodeType":"YulIdentifier","src":"17424:1:6"}],"functionName":{"name":"mstore","nativeSrc":"17404:6:6","nodeType":"YulIdentifier","src":"17404:6:6"},"nativeSrc":"17404:22:6","nodeType":"YulFunctionCall","src":"17404:22:6"},"nativeSrc":"17404:22:6","nodeType":"YulExpressionStatement","src":"17404:22:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"17454:3:6","nodeType":"YulIdentifier","src":"17454:3:6"},{"kind":"number","nativeSrc":"17458:2:6","nodeType":"YulLiteral","src":"17458:2:6","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17450:3:6","nodeType":"YulIdentifier","src":"17450:3:6"},"nativeSrc":"17450:11:6","nodeType":"YulFunctionCall","src":"17450:11:6"},{"name":"s","nativeSrc":"17463:1:6","nodeType":"YulIdentifier","src":"17463:1:6"}],"functionName":{"name":"mstore","nativeSrc":"17443:6:6","nodeType":"YulIdentifier","src":"17443:6:6"},"nativeSrc":"17443:22:6","nodeType":"YulFunctionCall","src":"17443:22:6"},"nativeSrc":"17443:22:6","nodeType":"YulExpressionStatement","src":"17443:22:6"},{"nativeSrc":"17483:60:6","nodeType":"YulAssignment","src":"17483:60:6","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"17509:3:6","nodeType":"YulIdentifier","src":"17509:3:6"},"nativeSrc":"17509:5:6","nodeType":"YulFunctionCall","src":"17509:5:6"},{"kind":"number","nativeSrc":"17516:4:6","nodeType":"YulLiteral","src":"17516:4:6","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"17505:3:6","nodeType":"YulIdentifier","src":"17505:3:6"},"nativeSrc":"17505:16:6","nodeType":"YulFunctionCall","src":"17505:16:6"},{"kind":"number","nativeSrc":"17523:1:6","nodeType":"YulLiteral","src":"17523:1:6","type":"","value":"7"},{"name":"mIn","nativeSrc":"17526:3:6","nodeType":"YulIdentifier","src":"17526:3:6"},{"kind":"number","nativeSrc":"17531:2:6","nodeType":"YulLiteral","src":"17531:2:6","type":"","value":"96"},{"name":"mIn","nativeSrc":"17535:3:6","nodeType":"YulIdentifier","src":"17535:3:6"},{"kind":"number","nativeSrc":"17540:2:6","nodeType":"YulLiteral","src":"17540:2:6","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"17494:10:6","nodeType":"YulIdentifier","src":"17494:10:6"},"nativeSrc":"17494:49:6","nodeType":"YulFunctionCall","src":"17494:49:6"},"variableNames":[{"name":"success","nativeSrc":"17483:7:6","nodeType":"YulIdentifier","src":"17483:7:6"}]},{"body":{"nativeSrc":"17596:87:6","nodeType":"YulBlock","src":"17596:87:6","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17625:1:6","nodeType":"YulLiteral","src":"17625:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"17628:1:6","nodeType":"YulLiteral","src":"17628:1:6","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17618:6:6","nodeType":"YulIdentifier","src":"17618:6:6"},"nativeSrc":"17618:12:6","nodeType":"YulFunctionCall","src":"17618:12:6"},"nativeSrc":"17618:12:6","nodeType":"YulExpressionStatement","src":"17618:12:6"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17658:1:6","nodeType":"YulLiteral","src":"17658:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"17660:4:6","nodeType":"YulLiteral","src":"17660:4:6","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"17651:6:6","nodeType":"YulIdentifier","src":"17651:6:6"},"nativeSrc":"17651:14:6","nodeType":"YulFunctionCall","src":"17651:14:6"},"nativeSrc":"17651:14:6","nodeType":"YulExpressionStatement","src":"17651:14:6"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"17587:7:6","nodeType":"YulIdentifier","src":"17587:7:6"}],"functionName":{"name":"iszero","nativeSrc":"17580:6:6","nodeType":"YulIdentifier","src":"17580:6:6"},"nativeSrc":"17580:15:6","nodeType":"YulFunctionCall","src":"17580:15:6"},"nativeSrc":"17577:106:6","nodeType":"YulIf","src":"17577:106:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"17728:3:6","nodeType":"YulIdentifier","src":"17728:3:6"},{"kind":"number","nativeSrc":"17732:2:6","nodeType":"YulLiteral","src":"17732:2:6","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17724:3:6","nodeType":"YulIdentifier","src":"17724:3:6"},"nativeSrc":"17724:11:6","nodeType":"YulFunctionCall","src":"17724:11:6"},{"arguments":[{"name":"pR","nativeSrc":"17743:2:6","nodeType":"YulIdentifier","src":"17743:2:6"}],"functionName":{"name":"mload","nativeSrc":"17737:5:6","nodeType":"YulIdentifier","src":"17737:5:6"},"nativeSrc":"17737:9:6","nodeType":"YulFunctionCall","src":"17737:9:6"}],"functionName":{"name":"mstore","nativeSrc":"17717:6:6","nodeType":"YulIdentifier","src":"17717:6:6"},"nativeSrc":"17717:30:6","nodeType":"YulFunctionCall","src":"17717:30:6"},"nativeSrc":"17717:30:6","nodeType":"YulExpressionStatement","src":"17717:30:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"17775:3:6","nodeType":"YulIdentifier","src":"17775:3:6"},{"kind":"number","nativeSrc":"17779:2:6","nodeType":"YulLiteral","src":"17779:2:6","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17771:3:6","nodeType":"YulIdentifier","src":"17771:3:6"},"nativeSrc":"17771:11:6","nodeType":"YulFunctionCall","src":"17771:11:6"},{"arguments":[{"arguments":[{"name":"pR","nativeSrc":"17794:2:6","nodeType":"YulIdentifier","src":"17794:2:6"},{"kind":"number","nativeSrc":"17798:2:6","nodeType":"YulLiteral","src":"17798:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17790:3:6","nodeType":"YulIdentifier","src":"17790:3:6"},"nativeSrc":"17790:11:6","nodeType":"YulFunctionCall","src":"17790:11:6"}],"functionName":{"name":"mload","nativeSrc":"17784:5:6","nodeType":"YulIdentifier","src":"17784:5:6"},"nativeSrc":"17784:18:6","nodeType":"YulFunctionCall","src":"17784:18:6"}],"functionName":{"name":"mstore","nativeSrc":"17764:6:6","nodeType":"YulIdentifier","src":"17764:6:6"},"nativeSrc":"17764:39:6","nodeType":"YulFunctionCall","src":"17764:39:6"},"nativeSrc":"17764:39:6","nodeType":"YulExpressionStatement","src":"17764:39:6"},{"nativeSrc":"17821:60:6","nodeType":"YulAssignment","src":"17821:60:6","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"17847:3:6","nodeType":"YulIdentifier","src":"17847:3:6"},"nativeSrc":"17847:5:6","nodeType":"YulFunctionCall","src":"17847:5:6"},{"kind":"number","nativeSrc":"17854:4:6","nodeType":"YulLiteral","src":"17854:4:6","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"17843:3:6","nodeType":"YulIdentifier","src":"17843:3:6"},"nativeSrc":"17843:16:6","nodeType":"YulFunctionCall","src":"17843:16:6"},{"kind":"number","nativeSrc":"17861:1:6","nodeType":"YulLiteral","src":"17861:1:6","type":"","value":"6"},{"name":"mIn","nativeSrc":"17864:3:6","nodeType":"YulIdentifier","src":"17864:3:6"},{"kind":"number","nativeSrc":"17869:3:6","nodeType":"YulLiteral","src":"17869:3:6","type":"","value":"128"},{"name":"pR","nativeSrc":"17874:2:6","nodeType":"YulIdentifier","src":"17874:2:6"},{"kind":"number","nativeSrc":"17878:2:6","nodeType":"YulLiteral","src":"17878:2:6","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"17832:10:6","nodeType":"YulIdentifier","src":"17832:10:6"},"nativeSrc":"17832:49:6","nodeType":"YulFunctionCall","src":"17832:49:6"},"variableNames":[{"name":"success","nativeSrc":"17821:7:6","nodeType":"YulIdentifier","src":"17821:7:6"}]},{"body":{"nativeSrc":"17934:87:6","nodeType":"YulBlock","src":"17934:87:6","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17963:1:6","nodeType":"YulLiteral","src":"17963:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"17966:1:6","nodeType":"YulLiteral","src":"17966:1:6","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17956:6:6","nodeType":"YulIdentifier","src":"17956:6:6"},"nativeSrc":"17956:12:6","nodeType":"YulFunctionCall","src":"17956:12:6"},"nativeSrc":"17956:12:6","nodeType":"YulExpressionStatement","src":"17956:12:6"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17996:1:6","nodeType":"YulLiteral","src":"17996:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"17998:4:6","nodeType":"YulLiteral","src":"17998:4:6","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"17989:6:6","nodeType":"YulIdentifier","src":"17989:6:6"},"nativeSrc":"17989:14:6","nodeType":"YulFunctionCall","src":"17989:14:6"},"nativeSrc":"17989:14:6","nodeType":"YulExpressionStatement","src":"17989:14:6"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"17925:7:6","nodeType":"YulIdentifier","src":"17925:7:6"}],"functionName":{"name":"iszero","nativeSrc":"17918:6:6","nodeType":"YulIdentifier","src":"17918:6:6"},"nativeSrc":"17918:15:6","nodeType":"YulFunctionCall","src":"17918:15:6"},"nativeSrc":"17915:106:6","nodeType":"YulIf","src":"17915:106:6"}]},"name":"g1_mulAccC","nativeSrc":"17255:780:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"pR","nativeSrc":"17275:2:6","nodeType":"YulTypedName","src":"17275:2:6","type":""},{"name":"x","nativeSrc":"17279:1:6","nodeType":"YulTypedName","src":"17279:1:6","type":""},{"name":"y","nativeSrc":"17282:1:6","nodeType":"YulTypedName","src":"17282:1:6","type":""},{"name":"s","nativeSrc":"17285:1:6","nodeType":"YulTypedName","src":"17285:1:6","type":""}],"src":"17255:780:6"},{"body":{"nativeSrc":"18082:408:6","nodeType":"YulBlock","src":"18082:408:6","statements":[{"nativeSrc":"18100:11:6","nodeType":"YulVariableDeclaration","src":"18100:11:6","variables":[{"name":"success","nativeSrc":"18104:7:6","nodeType":"YulTypedName","src":"18104:7:6","type":""}]},{"nativeSrc":"18128:22:6","nodeType":"YulVariableDeclaration","src":"18128:22:6","value":{"arguments":[{"kind":"number","nativeSrc":"18145:4:6","nodeType":"YulLiteral","src":"18145:4:6","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"18139:5:6","nodeType":"YulIdentifier","src":"18139:5:6"},"nativeSrc":"18139:11:6","nodeType":"YulFunctionCall","src":"18139:11:6"},"variables":[{"name":"mIn","nativeSrc":"18132:3:6","nodeType":"YulTypedName","src":"18132:3:6","type":""}]},{"expression":{"arguments":[{"name":"mIn","nativeSrc":"18174:3:6","nodeType":"YulIdentifier","src":"18174:3:6"},{"name":"x","nativeSrc":"18179:1:6","nodeType":"YulIdentifier","src":"18179:1:6"}],"functionName":{"name":"mstore","nativeSrc":"18167:6:6","nodeType":"YulIdentifier","src":"18167:6:6"},"nativeSrc":"18167:14:6","nodeType":"YulFunctionCall","src":"18167:14:6"},"nativeSrc":"18167:14:6","nodeType":"YulExpressionStatement","src":"18167:14:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"18209:3:6","nodeType":"YulIdentifier","src":"18209:3:6"},{"kind":"number","nativeSrc":"18213:2:6","nodeType":"YulLiteral","src":"18213:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18205:3:6","nodeType":"YulIdentifier","src":"18205:3:6"},"nativeSrc":"18205:11:6","nodeType":"YulFunctionCall","src":"18205:11:6"},{"name":"y","nativeSrc":"18218:1:6","nodeType":"YulIdentifier","src":"18218:1:6"}],"functionName":{"name":"mstore","nativeSrc":"18198:6:6","nodeType":"YulIdentifier","src":"18198:6:6"},"nativeSrc":"18198:22:6","nodeType":"YulFunctionCall","src":"18198:22:6"},"nativeSrc":"18198:22:6","nodeType":"YulExpressionStatement","src":"18198:22:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"18248:3:6","nodeType":"YulIdentifier","src":"18248:3:6"},{"kind":"number","nativeSrc":"18252:2:6","nodeType":"YulLiteral","src":"18252:2:6","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18244:3:6","nodeType":"YulIdentifier","src":"18244:3:6"},"nativeSrc":"18244:11:6","nodeType":"YulFunctionCall","src":"18244:11:6"},{"name":"s","nativeSrc":"18257:1:6","nodeType":"YulIdentifier","src":"18257:1:6"}],"functionName":{"name":"mstore","nativeSrc":"18237:6:6","nodeType":"YulIdentifier","src":"18237:6:6"},"nativeSrc":"18237:22:6","nodeType":"YulFunctionCall","src":"18237:22:6"},"nativeSrc":"18237:22:6","nodeType":"YulExpressionStatement","src":"18237:22:6"},{"nativeSrc":"18277:59:6","nodeType":"YulAssignment","src":"18277:59:6","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18303:3:6","nodeType":"YulIdentifier","src":"18303:3:6"},"nativeSrc":"18303:5:6","nodeType":"YulFunctionCall","src":"18303:5:6"},{"kind":"number","nativeSrc":"18310:4:6","nodeType":"YulLiteral","src":"18310:4:6","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"18299:3:6","nodeType":"YulIdentifier","src":"18299:3:6"},"nativeSrc":"18299:16:6","nodeType":"YulFunctionCall","src":"18299:16:6"},{"kind":"number","nativeSrc":"18317:1:6","nodeType":"YulLiteral","src":"18317:1:6","type":"","value":"7"},{"name":"mIn","nativeSrc":"18320:3:6","nodeType":"YulIdentifier","src":"18320:3:6"},{"kind":"number","nativeSrc":"18325:2:6","nodeType":"YulLiteral","src":"18325:2:6","type":"","value":"96"},{"name":"pR","nativeSrc":"18329:2:6","nodeType":"YulIdentifier","src":"18329:2:6"},{"kind":"number","nativeSrc":"18333:2:6","nodeType":"YulLiteral","src":"18333:2:6","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"18288:10:6","nodeType":"YulIdentifier","src":"18288:10:6"},"nativeSrc":"18288:48:6","nodeType":"YulFunctionCall","src":"18288:48:6"},"variableNames":[{"name":"success","nativeSrc":"18277:7:6","nodeType":"YulIdentifier","src":"18277:7:6"}]},{"body":{"nativeSrc":"18389:87:6","nodeType":"YulBlock","src":"18389:87:6","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18418:1:6","nodeType":"YulLiteral","src":"18418:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"18421:1:6","nodeType":"YulLiteral","src":"18421:1:6","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18411:6:6","nodeType":"YulIdentifier","src":"18411:6:6"},"nativeSrc":"18411:12:6","nodeType":"YulFunctionCall","src":"18411:12:6"},"nativeSrc":"18411:12:6","nodeType":"YulExpressionStatement","src":"18411:12:6"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18451:1:6","nodeType":"YulLiteral","src":"18451:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"18453:4:6","nodeType":"YulLiteral","src":"18453:4:6","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"18444:6:6","nodeType":"YulIdentifier","src":"18444:6:6"},"nativeSrc":"18444:14:6","nodeType":"YulFunctionCall","src":"18444:14:6"},"nativeSrc":"18444:14:6","nodeType":"YulExpressionStatement","src":"18444:14:6"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"18380:7:6","nodeType":"YulIdentifier","src":"18380:7:6"}],"functionName":{"name":"iszero","nativeSrc":"18373:6:6","nodeType":"YulIdentifier","src":"18373:6:6"},"nativeSrc":"18373:15:6","nodeType":"YulFunctionCall","src":"18373:15:6"},"nativeSrc":"18370:106:6","nodeType":"YulIf","src":"18370:106:6"}]},"name":"g1_mulSetC","nativeSrc":"18049:441:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"pR","nativeSrc":"18069:2:6","nodeType":"YulTypedName","src":"18069:2:6","type":""},{"name":"x","nativeSrc":"18073:1:6","nodeType":"YulTypedName","src":"18073:1:6","type":""},{"name":"y","nativeSrc":"18076:1:6","nodeType":"YulTypedName","src":"18076:1:6","type":""},{"name":"s","nativeSrc":"18079:1:6","nodeType":"YulTypedName","src":"18079:1:6","type":""}],"src":"18049:441:6"},{"body":{"nativeSrc":"18540:171:6","nodeType":"YulBlock","src":"18540:171:6","statements":[{"nativeSrc":"18558:23:6","nodeType":"YulVariableDeclaration","src":"18558:23:6","value":{"arguments":[{"name":"pMem","nativeSrc":"18571:4:6","nodeType":"YulIdentifier","src":"18571:4:6"},{"name":"pA1","nativeSrc":"18577:3:6","nodeType":"YulIdentifier","src":"18577:3:6"}],"functionName":{"name":"add","nativeSrc":"18567:3:6","nodeType":"YulIdentifier","src":"18567:3:6"},"nativeSrc":"18567:14:6","nodeType":"YulFunctionCall","src":"18567:14:6"},"variables":[{"name":"p","nativeSrc":"18562:1:6","nodeType":"YulTypedName","src":"18562:1:6","type":""}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"18605:1:6","nodeType":"YulIdentifier","src":"18605:1:6"},{"arguments":[{"name":"pProof","nativeSrc":"18612:6:6","nodeType":"YulIdentifier","src":"18612:6:6"},{"name":"pWxi","nativeSrc":"18620:4:6","nodeType":"YulIdentifier","src":"18620:4:6"}],"functionName":{"name":"add","nativeSrc":"18608:3:6","nodeType":"YulIdentifier","src":"18608:3:6"},"nativeSrc":"18608:17:6","nodeType":"YulFunctionCall","src":"18608:17:6"}],"functionName":{"name":"g1_set","nativeSrc":"18598:6:6","nodeType":"YulIdentifier","src":"18598:6:6"},"nativeSrc":"18598:28:6","nodeType":"YulFunctionCall","src":"18598:28:6"},"nativeSrc":"18598:28:6","nodeType":"YulExpressionStatement","src":"18598:28:6"},{"expression":{"arguments":[{"name":"p","nativeSrc":"18653:1:6","nodeType":"YulIdentifier","src":"18653:1:6"},{"arguments":[{"name":"pProof","nativeSrc":"18660:6:6","nodeType":"YulIdentifier","src":"18660:6:6"},{"name":"pWxiw","nativeSrc":"18668:5:6","nodeType":"YulIdentifier","src":"18668:5:6"}],"functionName":{"name":"add","nativeSrc":"18656:3:6","nodeType":"YulIdentifier","src":"18656:3:6"},"nativeSrc":"18656:18:6","nodeType":"YulFunctionCall","src":"18656:18:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"18686:4:6","nodeType":"YulIdentifier","src":"18686:4:6"},{"name":"pU","nativeSrc":"18692:2:6","nodeType":"YulIdentifier","src":"18692:2:6"}],"functionName":{"name":"add","nativeSrc":"18682:3:6","nodeType":"YulIdentifier","src":"18682:3:6"},"nativeSrc":"18682:13:6","nodeType":"YulFunctionCall","src":"18682:13:6"}],"functionName":{"name":"mload","nativeSrc":"18676:5:6","nodeType":"YulIdentifier","src":"18676:5:6"},"nativeSrc":"18676:20:6","nodeType":"YulFunctionCall","src":"18676:20:6"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"18643:9:6","nodeType":"YulIdentifier","src":"18643:9:6"},"nativeSrc":"18643:54:6","nodeType":"YulFunctionCall","src":"18643:54:6"},"nativeSrc":"18643:54:6","nodeType":"YulExpressionStatement","src":"18643:54:6"}]},"name":"calculateA1","nativeSrc":"18505:206:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"pProof","nativeSrc":"18526:6:6","nodeType":"YulTypedName","src":"18526:6:6","type":""},{"name":"pMem","nativeSrc":"18534:4:6","nodeType":"YulTypedName","src":"18534:4:6","type":""}],"src":"18505:206:6"},{"body":{"nativeSrc":"18785:4443:6","nodeType":"YulBlock","src":"18785:4443:6","statements":[{"nativeSrc":"18803:5:6","nodeType":"YulVariableDeclaration","src":"18803:5:6","variables":[{"name":"s","nativeSrc":"18807:1:6","nodeType":"YulTypedName","src":"18807:1:6","type":""}]},{"nativeSrc":"18825:6:6","nodeType":"YulVariableDeclaration","src":"18825:6:6","variables":[{"name":"s1","nativeSrc":"18829:2:6","nodeType":"YulTypedName","src":"18829:2:6","type":""}]},{"nativeSrc":"18848:23:6","nodeType":"YulVariableDeclaration","src":"18848:23:6","value":{"arguments":[{"name":"pMem","nativeSrc":"18861:4:6","nodeType":"YulIdentifier","src":"18861:4:6"},{"name":"pB1","nativeSrc":"18867:3:6","nodeType":"YulIdentifier","src":"18867:3:6"}],"functionName":{"name":"add","nativeSrc":"18857:3:6","nodeType":"YulIdentifier","src":"18857:3:6"},"nativeSrc":"18857:14:6","nodeType":"YulFunctionCall","src":"18857:14:6"},"variables":[{"name":"p","nativeSrc":"18852:1:6","nodeType":"YulTypedName","src":"18852:1:6","type":""}]},{"nativeSrc":"18936:67:6","nodeType":"YulAssignment","src":"18936:67:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"18959:6:6","nodeType":"YulIdentifier","src":"18959:6:6"},{"name":"pEval_a","nativeSrc":"18967:7:6","nodeType":"YulIdentifier","src":"18967:7:6"}],"functionName":{"name":"add","nativeSrc":"18955:3:6","nodeType":"YulIdentifier","src":"18955:3:6"},"nativeSrc":"18955:20:6","nodeType":"YulFunctionCall","src":"18955:20:6"}],"functionName":{"name":"mload","nativeSrc":"18949:5:6","nodeType":"YulIdentifier","src":"18949:5:6"},"nativeSrc":"18949:27:6","nodeType":"YulFunctionCall","src":"18949:27:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"18988:4:6","nodeType":"YulIdentifier","src":"18988:4:6"},{"name":"pV1","nativeSrc":"18994:3:6","nodeType":"YulIdentifier","src":"18994:3:6"}],"functionName":{"name":"add","nativeSrc":"18984:3:6","nodeType":"YulIdentifier","src":"18984:3:6"},"nativeSrc":"18984:14:6","nodeType":"YulFunctionCall","src":"18984:14:6"}],"functionName":{"name":"mload","nativeSrc":"18978:5:6","nodeType":"YulIdentifier","src":"18978:5:6"},"nativeSrc":"18978:21:6","nodeType":"YulFunctionCall","src":"18978:21:6"},{"name":"q","nativeSrc":"19001:1:6","nodeType":"YulIdentifier","src":"19001:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"18941:6:6","nodeType":"YulIdentifier","src":"18941:6:6"},"nativeSrc":"18941:62:6","nodeType":"YulFunctionCall","src":"18941:62:6"},"variableNames":[{"name":"s","nativeSrc":"18936:1:6","nodeType":"YulIdentifier","src":"18936:1:6"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"19031:1:6","nodeType":"YulIdentifier","src":"19031:1:6"},{"name":"Qlx","nativeSrc":"19034:3:6","nodeType":"YulIdentifier","src":"19034:3:6"},{"name":"Qly","nativeSrc":"19039:3:6","nodeType":"YulIdentifier","src":"19039:3:6"},{"name":"s","nativeSrc":"19044:1:6","nodeType":"YulIdentifier","src":"19044:1:6"}],"functionName":{"name":"g1_mulSetC","nativeSrc":"19020:10:6","nodeType":"YulIdentifier","src":"19020:10:6"},"nativeSrc":"19020:26:6","nodeType":"YulFunctionCall","src":"19020:26:6"},"nativeSrc":"19020:26:6","nodeType":"YulExpressionStatement","src":"19020:26:6"},{"nativeSrc":"19064:47:6","nodeType":"YulAssignment","src":"19064:47:6","value":{"arguments":[{"name":"s","nativeSrc":"19077:1:6","nodeType":"YulIdentifier","src":"19077:1:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"19090:6:6","nodeType":"YulIdentifier","src":"19090:6:6"},{"name":"pEval_b","nativeSrc":"19098:7:6","nodeType":"YulIdentifier","src":"19098:7:6"}],"functionName":{"name":"add","nativeSrc":"19086:3:6","nodeType":"YulIdentifier","src":"19086:3:6"},"nativeSrc":"19086:20:6","nodeType":"YulFunctionCall","src":"19086:20:6"}],"functionName":{"name":"mload","nativeSrc":"19080:5:6","nodeType":"YulIdentifier","src":"19080:5:6"},"nativeSrc":"19080:27:6","nodeType":"YulFunctionCall","src":"19080:27:6"},{"name":"q","nativeSrc":"19109:1:6","nodeType":"YulIdentifier","src":"19109:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"19069:6:6","nodeType":"YulIdentifier","src":"19069:6:6"},"nativeSrc":"19069:42:6","nodeType":"YulFunctionCall","src":"19069:42:6"},"variableNames":[{"name":"s","nativeSrc":"19064:1:6","nodeType":"YulIdentifier","src":"19064:1:6"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"19155:1:6","nodeType":"YulIdentifier","src":"19155:1:6"},{"name":"Qmx","nativeSrc":"19158:3:6","nodeType":"YulIdentifier","src":"19158:3:6"},{"name":"Qmy","nativeSrc":"19163:3:6","nodeType":"YulIdentifier","src":"19163:3:6"},{"name":"s","nativeSrc":"19168:1:6","nodeType":"YulIdentifier","src":"19168:1:6"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"19144:10:6","nodeType":"YulIdentifier","src":"19144:10:6"},"nativeSrc":"19144:26:6","nodeType":"YulFunctionCall","src":"19144:26:6"},"nativeSrc":"19144:26:6","nodeType":"YulExpressionStatement","src":"19144:26:6"},{"nativeSrc":"19188:67:6","nodeType":"YulAssignment","src":"19188:67:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"19211:6:6","nodeType":"YulIdentifier","src":"19211:6:6"},{"name":"pEval_b","nativeSrc":"19219:7:6","nodeType":"YulIdentifier","src":"19219:7:6"}],"functionName":{"name":"add","nativeSrc":"19207:3:6","nodeType":"YulIdentifier","src":"19207:3:6"},"nativeSrc":"19207:20:6","nodeType":"YulFunctionCall","src":"19207:20:6"}],"functionName":{"name":"mload","nativeSrc":"19201:5:6","nodeType":"YulIdentifier","src":"19201:5:6"},"nativeSrc":"19201:27:6","nodeType":"YulFunctionCall","src":"19201:27:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19240:4:6","nodeType":"YulIdentifier","src":"19240:4:6"},{"name":"pV1","nativeSrc":"19246:3:6","nodeType":"YulIdentifier","src":"19246:3:6"}],"functionName":{"name":"add","nativeSrc":"19236:3:6","nodeType":"YulIdentifier","src":"19236:3:6"},"nativeSrc":"19236:14:6","nodeType":"YulFunctionCall","src":"19236:14:6"}],"functionName":{"name":"mload","nativeSrc":"19230:5:6","nodeType":"YulIdentifier","src":"19230:5:6"},"nativeSrc":"19230:21:6","nodeType":"YulFunctionCall","src":"19230:21:6"},{"name":"q","nativeSrc":"19253:1:6","nodeType":"YulIdentifier","src":"19253:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"19193:6:6","nodeType":"YulIdentifier","src":"19193:6:6"},"nativeSrc":"19193:62:6","nodeType":"YulFunctionCall","src":"19193:62:6"},"variableNames":[{"name":"s","nativeSrc":"19188:1:6","nodeType":"YulIdentifier","src":"19188:1:6"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"19283:1:6","nodeType":"YulIdentifier","src":"19283:1:6"},{"name":"Qrx","nativeSrc":"19286:3:6","nodeType":"YulIdentifier","src":"19286:3:6"},{"name":"Qry","nativeSrc":"19291:3:6","nodeType":"YulIdentifier","src":"19291:3:6"},{"name":"s","nativeSrc":"19296:1:6","nodeType":"YulIdentifier","src":"19296:1:6"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"19272:10:6","nodeType":"YulIdentifier","src":"19272:10:6"},"nativeSrc":"19272:26:6","nodeType":"YulFunctionCall","src":"19272:26:6"},"nativeSrc":"19272:26:6","nodeType":"YulExpressionStatement","src":"19272:26:6"},{"nativeSrc":"19332:67:6","nodeType":"YulAssignment","src":"19332:67:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"19355:6:6","nodeType":"YulIdentifier","src":"19355:6:6"},{"name":"pEval_c","nativeSrc":"19363:7:6","nodeType":"YulIdentifier","src":"19363:7:6"}],"functionName":{"name":"add","nativeSrc":"19351:3:6","nodeType":"YulIdentifier","src":"19351:3:6"},"nativeSrc":"19351:20:6","nodeType":"YulFunctionCall","src":"19351:20:6"}],"functionName":{"name":"mload","nativeSrc":"19345:5:6","nodeType":"YulIdentifier","src":"19345:5:6"},"nativeSrc":"19345:27:6","nodeType":"YulFunctionCall","src":"19345:27:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19384:4:6","nodeType":"YulIdentifier","src":"19384:4:6"},{"name":"pV1","nativeSrc":"19390:3:6","nodeType":"YulIdentifier","src":"19390:3:6"}],"functionName":{"name":"add","nativeSrc":"19380:3:6","nodeType":"YulIdentifier","src":"19380:3:6"},"nativeSrc":"19380:14:6","nodeType":"YulFunctionCall","src":"19380:14:6"}],"functionName":{"name":"mload","nativeSrc":"19374:5:6","nodeType":"YulIdentifier","src":"19374:5:6"},"nativeSrc":"19374:21:6","nodeType":"YulFunctionCall","src":"19374:21:6"},{"name":"q","nativeSrc":"19397:1:6","nodeType":"YulIdentifier","src":"19397:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"19337:6:6","nodeType":"YulIdentifier","src":"19337:6:6"},"nativeSrc":"19337:62:6","nodeType":"YulFunctionCall","src":"19337:62:6"},"variableNames":[{"name":"s","nativeSrc":"19332:1:6","nodeType":"YulIdentifier","src":"19332:1:6"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"19427:1:6","nodeType":"YulIdentifier","src":"19427:1:6"},{"name":"Qox","nativeSrc":"19430:3:6","nodeType":"YulIdentifier","src":"19430:3:6"},{"name":"Qoy","nativeSrc":"19435:3:6","nodeType":"YulIdentifier","src":"19435:3:6"},{"name":"s","nativeSrc":"19440:1:6","nodeType":"YulIdentifier","src":"19440:1:6"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"19416:10:6","nodeType":"YulIdentifier","src":"19416:10:6"},"nativeSrc":"19416:26:6","nodeType":"YulFunctionCall","src":"19416:26:6"},"nativeSrc":"19416:26:6","nodeType":"YulExpressionStatement","src":"19416:26:6"},{"nativeSrc":"19460:25:6","nodeType":"YulAssignment","src":"19460:25:6","value":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19474:4:6","nodeType":"YulIdentifier","src":"19474:4:6"},{"name":"pV1","nativeSrc":"19480:3:6","nodeType":"YulIdentifier","src":"19480:3:6"}],"functionName":{"name":"add","nativeSrc":"19470:3:6","nodeType":"YulIdentifier","src":"19470:3:6"},"nativeSrc":"19470:14:6","nodeType":"YulFunctionCall","src":"19470:14:6"}],"functionName":{"name":"mload","nativeSrc":"19464:5:6","nodeType":"YulIdentifier","src":"19464:5:6"},"nativeSrc":"19464:21:6","nodeType":"YulFunctionCall","src":"19464:21:6"},"variableNames":[{"name":"s","nativeSrc":"19460:1:6","nodeType":"YulIdentifier","src":"19460:1:6"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"19513:1:6","nodeType":"YulIdentifier","src":"19513:1:6"},{"name":"Qcx","nativeSrc":"19516:3:6","nodeType":"YulIdentifier","src":"19516:3:6"},{"name":"Qcy","nativeSrc":"19521:3:6","nodeType":"YulIdentifier","src":"19521:3:6"},{"name":"s","nativeSrc":"19526:1:6","nodeType":"YulIdentifier","src":"19526:1:6"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"19502:10:6","nodeType":"YulIdentifier","src":"19502:10:6"},"nativeSrc":"19502:26:6","nodeType":"YulFunctionCall","src":"19502:26:6"},"nativeSrc":"19502:26:6","nodeType":"YulExpressionStatement","src":"19502:26:6"},{"nativeSrc":"19546:70:6","nodeType":"YulAssignment","src":"19546:70:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"19568:6:6","nodeType":"YulIdentifier","src":"19568:6:6"},{"name":"pEval_a","nativeSrc":"19576:7:6","nodeType":"YulIdentifier","src":"19576:7:6"}],"functionName":{"name":"add","nativeSrc":"19564:3:6","nodeType":"YulIdentifier","src":"19564:3:6"},"nativeSrc":"19564:20:6","nodeType":"YulFunctionCall","src":"19564:20:6"}],"functionName":{"name":"mload","nativeSrc":"19558:5:6","nodeType":"YulIdentifier","src":"19558:5:6"},"nativeSrc":"19558:27:6","nodeType":"YulFunctionCall","src":"19558:27:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19597:4:6","nodeType":"YulIdentifier","src":"19597:4:6"},{"name":"pBetaXi","nativeSrc":"19603:7:6","nodeType":"YulIdentifier","src":"19603:7:6"}],"functionName":{"name":"add","nativeSrc":"19593:3:6","nodeType":"YulIdentifier","src":"19593:3:6"},"nativeSrc":"19593:18:6","nodeType":"YulFunctionCall","src":"19593:18:6"}],"functionName":{"name":"mload","nativeSrc":"19587:5:6","nodeType":"YulIdentifier","src":"19587:5:6"},"nativeSrc":"19587:25:6","nodeType":"YulFunctionCall","src":"19587:25:6"},{"name":"q","nativeSrc":"19614:1:6","nodeType":"YulIdentifier","src":"19614:1:6"}],"functionName":{"name":"addmod","nativeSrc":"19551:6:6","nodeType":"YulIdentifier","src":"19551:6:6"},"nativeSrc":"19551:65:6","nodeType":"YulFunctionCall","src":"19551:65:6"},"variableNames":[{"name":"s","nativeSrc":"19546:1:6","nodeType":"YulIdentifier","src":"19546:1:6"}]},{"nativeSrc":"19633:43:6","nodeType":"YulAssignment","src":"19633:43:6","value":{"arguments":[{"name":"s","nativeSrc":"19645:1:6","nodeType":"YulIdentifier","src":"19645:1:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19658:4:6","nodeType":"YulIdentifier","src":"19658:4:6"},{"name":"pGamma","nativeSrc":"19664:6:6","nodeType":"YulIdentifier","src":"19664:6:6"}],"functionName":{"name":"add","nativeSrc":"19654:3:6","nodeType":"YulIdentifier","src":"19654:3:6"},"nativeSrc":"19654:17:6","nodeType":"YulFunctionCall","src":"19654:17:6"}],"functionName":{"name":"mload","nativeSrc":"19648:5:6","nodeType":"YulIdentifier","src":"19648:5:6"},"nativeSrc":"19648:24:6","nodeType":"YulFunctionCall","src":"19648:24:6"},{"name":"q","nativeSrc":"19674:1:6","nodeType":"YulIdentifier","src":"19674:1:6"}],"functionName":{"name":"addmod","nativeSrc":"19638:6:6","nodeType":"YulIdentifier","src":"19638:6:6"},"nativeSrc":"19638:38:6","nodeType":"YulFunctionCall","src":"19638:38:6"},"variableNames":[{"name":"s","nativeSrc":"19633:1:6","nodeType":"YulIdentifier","src":"19633:1:6"}]},{"nativeSrc":"19693:46:6","nodeType":"YulAssignment","src":"19693:46:6","value":{"arguments":[{"name":"k1","nativeSrc":"19706:2:6","nodeType":"YulIdentifier","src":"19706:2:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19720:4:6","nodeType":"YulIdentifier","src":"19720:4:6"},{"name":"pBetaXi","nativeSrc":"19726:7:6","nodeType":"YulIdentifier","src":"19726:7:6"}],"functionName":{"name":"add","nativeSrc":"19716:3:6","nodeType":"YulIdentifier","src":"19716:3:6"},"nativeSrc":"19716:18:6","nodeType":"YulFunctionCall","src":"19716:18:6"}],"functionName":{"name":"mload","nativeSrc":"19710:5:6","nodeType":"YulIdentifier","src":"19710:5:6"},"nativeSrc":"19710:25:6","nodeType":"YulFunctionCall","src":"19710:25:6"},{"name":"q","nativeSrc":"19737:1:6","nodeType":"YulIdentifier","src":"19737:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"19699:6:6","nodeType":"YulIdentifier","src":"19699:6:6"},"nativeSrc":"19699:40:6","nodeType":"YulFunctionCall","src":"19699:40:6"},"variableNames":[{"name":"s1","nativeSrc":"19693:2:6","nodeType":"YulIdentifier","src":"19693:2:6"}]},{"nativeSrc":"19756:48:6","nodeType":"YulAssignment","src":"19756:48:6","value":{"arguments":[{"name":"s1","nativeSrc":"19769:2:6","nodeType":"YulIdentifier","src":"19769:2:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"19783:6:6","nodeType":"YulIdentifier","src":"19783:6:6"},{"name":"pEval_b","nativeSrc":"19791:7:6","nodeType":"YulIdentifier","src":"19791:7:6"}],"functionName":{"name":"add","nativeSrc":"19779:3:6","nodeType":"YulIdentifier","src":"19779:3:6"},"nativeSrc":"19779:20:6","nodeType":"YulFunctionCall","src":"19779:20:6"}],"functionName":{"name":"mload","nativeSrc":"19773:5:6","nodeType":"YulIdentifier","src":"19773:5:6"},"nativeSrc":"19773:27:6","nodeType":"YulFunctionCall","src":"19773:27:6"},{"name":"q","nativeSrc":"19802:1:6","nodeType":"YulIdentifier","src":"19802:1:6"}],"functionName":{"name":"addmod","nativeSrc":"19762:6:6","nodeType":"YulIdentifier","src":"19762:6:6"},"nativeSrc":"19762:42:6","nodeType":"YulFunctionCall","src":"19762:42:6"},"variableNames":[{"name":"s1","nativeSrc":"19756:2:6","nodeType":"YulIdentifier","src":"19756:2:6"}]},{"nativeSrc":"19821:45:6","nodeType":"YulAssignment","src":"19821:45:6","value":{"arguments":[{"name":"s1","nativeSrc":"19834:2:6","nodeType":"YulIdentifier","src":"19834:2:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19848:4:6","nodeType":"YulIdentifier","src":"19848:4:6"},{"name":"pGamma","nativeSrc":"19854:6:6","nodeType":"YulIdentifier","src":"19854:6:6"}],"functionName":{"name":"add","nativeSrc":"19844:3:6","nodeType":"YulIdentifier","src":"19844:3:6"},"nativeSrc":"19844:17:6","nodeType":"YulFunctionCall","src":"19844:17:6"}],"functionName":{"name":"mload","nativeSrc":"19838:5:6","nodeType":"YulIdentifier","src":"19838:5:6"},"nativeSrc":"19838:24:6","nodeType":"YulFunctionCall","src":"19838:24:6"},{"name":"q","nativeSrc":"19864:1:6","nodeType":"YulIdentifier","src":"19864:1:6"}],"functionName":{"name":"addmod","nativeSrc":"19827:6:6","nodeType":"YulIdentifier","src":"19827:6:6"},"nativeSrc":"19827:39:6","nodeType":"YulFunctionCall","src":"19827:39:6"},"variableNames":[{"name":"s1","nativeSrc":"19821:2:6","nodeType":"YulIdentifier","src":"19821:2:6"}]},{"nativeSrc":"19883:21:6","nodeType":"YulAssignment","src":"19883:21:6","value":{"arguments":[{"name":"s","nativeSrc":"19895:1:6","nodeType":"YulIdentifier","src":"19895:1:6"},{"name":"s1","nativeSrc":"19898:2:6","nodeType":"YulIdentifier","src":"19898:2:6"},{"name":"q","nativeSrc":"19902:1:6","nodeType":"YulIdentifier","src":"19902:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"19888:6:6","nodeType":"YulIdentifier","src":"19888:6:6"},"nativeSrc":"19888:16:6","nodeType":"YulFunctionCall","src":"19888:16:6"},"variableNames":[{"name":"s","nativeSrc":"19883:1:6","nodeType":"YulIdentifier","src":"19883:1:6"}]},{"nativeSrc":"19921:46:6","nodeType":"YulAssignment","src":"19921:46:6","value":{"arguments":[{"name":"k2","nativeSrc":"19934:2:6","nodeType":"YulIdentifier","src":"19934:2:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19948:4:6","nodeType":"YulIdentifier","src":"19948:4:6"},{"name":"pBetaXi","nativeSrc":"19954:7:6","nodeType":"YulIdentifier","src":"19954:7:6"}],"functionName":{"name":"add","nativeSrc":"19944:3:6","nodeType":"YulIdentifier","src":"19944:3:6"},"nativeSrc":"19944:18:6","nodeType":"YulFunctionCall","src":"19944:18:6"}],"functionName":{"name":"mload","nativeSrc":"19938:5:6","nodeType":"YulIdentifier","src":"19938:5:6"},"nativeSrc":"19938:25:6","nodeType":"YulFunctionCall","src":"19938:25:6"},{"name":"q","nativeSrc":"19965:1:6","nodeType":"YulIdentifier","src":"19965:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"19927:6:6","nodeType":"YulIdentifier","src":"19927:6:6"},"nativeSrc":"19927:40:6","nodeType":"YulFunctionCall","src":"19927:40:6"},"variableNames":[{"name":"s1","nativeSrc":"19921:2:6","nodeType":"YulIdentifier","src":"19921:2:6"}]},{"nativeSrc":"19984:48:6","nodeType":"YulAssignment","src":"19984:48:6","value":{"arguments":[{"name":"s1","nativeSrc":"19997:2:6","nodeType":"YulIdentifier","src":"19997:2:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"20011:6:6","nodeType":"YulIdentifier","src":"20011:6:6"},{"name":"pEval_c","nativeSrc":"20019:7:6","nodeType":"YulIdentifier","src":"20019:7:6"}],"functionName":{"name":"add","nativeSrc":"20007:3:6","nodeType":"YulIdentifier","src":"20007:3:6"},"nativeSrc":"20007:20:6","nodeType":"YulFunctionCall","src":"20007:20:6"}],"functionName":{"name":"mload","nativeSrc":"20001:5:6","nodeType":"YulIdentifier","src":"20001:5:6"},"nativeSrc":"20001:27:6","nodeType":"YulFunctionCall","src":"20001:27:6"},{"name":"q","nativeSrc":"20030:1:6","nodeType":"YulIdentifier","src":"20030:1:6"}],"functionName":{"name":"addmod","nativeSrc":"19990:6:6","nodeType":"YulIdentifier","src":"19990:6:6"},"nativeSrc":"19990:42:6","nodeType":"YulFunctionCall","src":"19990:42:6"},"variableNames":[{"name":"s1","nativeSrc":"19984:2:6","nodeType":"YulIdentifier","src":"19984:2:6"}]},{"nativeSrc":"20049:45:6","nodeType":"YulAssignment","src":"20049:45:6","value":{"arguments":[{"name":"s1","nativeSrc":"20062:2:6","nodeType":"YulIdentifier","src":"20062:2:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20076:4:6","nodeType":"YulIdentifier","src":"20076:4:6"},{"name":"pGamma","nativeSrc":"20082:6:6","nodeType":"YulIdentifier","src":"20082:6:6"}],"functionName":{"name":"add","nativeSrc":"20072:3:6","nodeType":"YulIdentifier","src":"20072:3:6"},"nativeSrc":"20072:17:6","nodeType":"YulFunctionCall","src":"20072:17:6"}],"functionName":{"name":"mload","nativeSrc":"20066:5:6","nodeType":"YulIdentifier","src":"20066:5:6"},"nativeSrc":"20066:24:6","nodeType":"YulFunctionCall","src":"20066:24:6"},{"name":"q","nativeSrc":"20092:1:6","nodeType":"YulIdentifier","src":"20092:1:6"}],"functionName":{"name":"addmod","nativeSrc":"20055:6:6","nodeType":"YulIdentifier","src":"20055:6:6"},"nativeSrc":"20055:39:6","nodeType":"YulFunctionCall","src":"20055:39:6"},"variableNames":[{"name":"s1","nativeSrc":"20049:2:6","nodeType":"YulIdentifier","src":"20049:2:6"}]},{"nativeSrc":"20111:21:6","nodeType":"YulAssignment","src":"20111:21:6","value":{"arguments":[{"name":"s","nativeSrc":"20123:1:6","nodeType":"YulIdentifier","src":"20123:1:6"},{"name":"s1","nativeSrc":"20126:2:6","nodeType":"YulIdentifier","src":"20126:2:6"},{"name":"q","nativeSrc":"20130:1:6","nodeType":"YulIdentifier","src":"20130:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"20116:6:6","nodeType":"YulIdentifier","src":"20116:6:6"},"nativeSrc":"20116:16:6","nodeType":"YulFunctionCall","src":"20116:16:6"},"variableNames":[{"name":"s","nativeSrc":"20111:1:6","nodeType":"YulIdentifier","src":"20111:1:6"}]},{"nativeSrc":"20149:43:6","nodeType":"YulAssignment","src":"20149:43:6","value":{"arguments":[{"name":"s","nativeSrc":"20161:1:6","nodeType":"YulIdentifier","src":"20161:1:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20174:4:6","nodeType":"YulIdentifier","src":"20174:4:6"},{"name":"pAlpha","nativeSrc":"20180:6:6","nodeType":"YulIdentifier","src":"20180:6:6"}],"functionName":{"name":"add","nativeSrc":"20170:3:6","nodeType":"YulIdentifier","src":"20170:3:6"},"nativeSrc":"20170:17:6","nodeType":"YulFunctionCall","src":"20170:17:6"}],"functionName":{"name":"mload","nativeSrc":"20164:5:6","nodeType":"YulIdentifier","src":"20164:5:6"},"nativeSrc":"20164:24:6","nodeType":"YulFunctionCall","src":"20164:24:6"},{"name":"q","nativeSrc":"20190:1:6","nodeType":"YulIdentifier","src":"20190:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"20154:6:6","nodeType":"YulIdentifier","src":"20154:6:6"},"nativeSrc":"20154:38:6","nodeType":"YulFunctionCall","src":"20154:38:6"},"variableNames":[{"name":"s","nativeSrc":"20149:1:6","nodeType":"YulIdentifier","src":"20149:1:6"}]},{"nativeSrc":"20209:40:6","nodeType":"YulAssignment","src":"20209:40:6","value":{"arguments":[{"name":"s","nativeSrc":"20221:1:6","nodeType":"YulIdentifier","src":"20221:1:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20234:4:6","nodeType":"YulIdentifier","src":"20234:4:6"},{"name":"pV1","nativeSrc":"20240:3:6","nodeType":"YulIdentifier","src":"20240:3:6"}],"functionName":{"name":"add","nativeSrc":"20230:3:6","nodeType":"YulIdentifier","src":"20230:3:6"},"nativeSrc":"20230:14:6","nodeType":"YulFunctionCall","src":"20230:14:6"}],"functionName":{"name":"mload","nativeSrc":"20224:5:6","nodeType":"YulIdentifier","src":"20224:5:6"},"nativeSrc":"20224:21:6","nodeType":"YulFunctionCall","src":"20224:21:6"},{"name":"q","nativeSrc":"20247:1:6","nodeType":"YulIdentifier","src":"20247:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"20214:6:6","nodeType":"YulIdentifier","src":"20214:6:6"},"nativeSrc":"20214:35:6","nodeType":"YulFunctionCall","src":"20214:35:6"},"variableNames":[{"name":"s","nativeSrc":"20209:1:6","nodeType":"YulIdentifier","src":"20209:1:6"}]},{"nativeSrc":"20266:69:6","nodeType":"YulAssignment","src":"20266:69:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20289:4:6","nodeType":"YulIdentifier","src":"20289:4:6"},{"name":"pEval_l1","nativeSrc":"20295:8:6","nodeType":"YulIdentifier","src":"20295:8:6"}],"functionName":{"name":"add","nativeSrc":"20285:3:6","nodeType":"YulIdentifier","src":"20285:3:6"},"nativeSrc":"20285:19:6","nodeType":"YulFunctionCall","src":"20285:19:6"}],"functionName":{"name":"mload","nativeSrc":"20279:5:6","nodeType":"YulIdentifier","src":"20279:5:6"},"nativeSrc":"20279:26:6","nodeType":"YulFunctionCall","src":"20279:26:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20317:4:6","nodeType":"YulIdentifier","src":"20317:4:6"},{"name":"pAlpha","nativeSrc":"20323:6:6","nodeType":"YulIdentifier","src":"20323:6:6"}],"functionName":{"name":"add","nativeSrc":"20313:3:6","nodeType":"YulIdentifier","src":"20313:3:6"},"nativeSrc":"20313:17:6","nodeType":"YulFunctionCall","src":"20313:17:6"}],"functionName":{"name":"mload","nativeSrc":"20307:5:6","nodeType":"YulIdentifier","src":"20307:5:6"},"nativeSrc":"20307:24:6","nodeType":"YulFunctionCall","src":"20307:24:6"},{"name":"q","nativeSrc":"20333:1:6","nodeType":"YulIdentifier","src":"20333:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"20272:6:6","nodeType":"YulIdentifier","src":"20272:6:6"},"nativeSrc":"20272:63:6","nodeType":"YulFunctionCall","src":"20272:63:6"},"variableNames":[{"name":"s1","nativeSrc":"20266:2:6","nodeType":"YulIdentifier","src":"20266:2:6"}]},{"nativeSrc":"20352:45:6","nodeType":"YulAssignment","src":"20352:45:6","value":{"arguments":[{"name":"s1","nativeSrc":"20365:2:6","nodeType":"YulIdentifier","src":"20365:2:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20379:4:6","nodeType":"YulIdentifier","src":"20379:4:6"},{"name":"pAlpha","nativeSrc":"20385:6:6","nodeType":"YulIdentifier","src":"20385:6:6"}],"functionName":{"name":"add","nativeSrc":"20375:3:6","nodeType":"YulIdentifier","src":"20375:3:6"},"nativeSrc":"20375:17:6","nodeType":"YulFunctionCall","src":"20375:17:6"}],"functionName":{"name":"mload","nativeSrc":"20369:5:6","nodeType":"YulIdentifier","src":"20369:5:6"},"nativeSrc":"20369:24:6","nodeType":"YulFunctionCall","src":"20369:24:6"},{"name":"q","nativeSrc":"20395:1:6","nodeType":"YulIdentifier","src":"20395:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"20358:6:6","nodeType":"YulIdentifier","src":"20358:6:6"},"nativeSrc":"20358:39:6","nodeType":"YulFunctionCall","src":"20358:39:6"},"variableNames":[{"name":"s1","nativeSrc":"20352:2:6","nodeType":"YulIdentifier","src":"20352:2:6"}]},{"nativeSrc":"20414:42:6","nodeType":"YulAssignment","src":"20414:42:6","value":{"arguments":[{"name":"s1","nativeSrc":"20427:2:6","nodeType":"YulIdentifier","src":"20427:2:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20441:4:6","nodeType":"YulIdentifier","src":"20441:4:6"},{"name":"pV1","nativeSrc":"20447:3:6","nodeType":"YulIdentifier","src":"20447:3:6"}],"functionName":{"name":"add","nativeSrc":"20437:3:6","nodeType":"YulIdentifier","src":"20437:3:6"},"nativeSrc":"20437:14:6","nodeType":"YulFunctionCall","src":"20437:14:6"}],"functionName":{"name":"mload","nativeSrc":"20431:5:6","nodeType":"YulIdentifier","src":"20431:5:6"},"nativeSrc":"20431:21:6","nodeType":"YulFunctionCall","src":"20431:21:6"},{"name":"q","nativeSrc":"20454:1:6","nodeType":"YulIdentifier","src":"20454:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"20420:6:6","nodeType":"YulIdentifier","src":"20420:6:6"},"nativeSrc":"20420:36:6","nodeType":"YulFunctionCall","src":"20420:36:6"},"variableNames":[{"name":"s1","nativeSrc":"20414:2:6","nodeType":"YulIdentifier","src":"20414:2:6"}]},{"nativeSrc":"20473:21:6","nodeType":"YulAssignment","src":"20473:21:6","value":{"arguments":[{"name":"s","nativeSrc":"20485:1:6","nodeType":"YulIdentifier","src":"20485:1:6"},{"name":"s1","nativeSrc":"20488:2:6","nodeType":"YulIdentifier","src":"20488:2:6"},{"name":"q","nativeSrc":"20492:1:6","nodeType":"YulIdentifier","src":"20492:1:6"}],"functionName":{"name":"addmod","nativeSrc":"20478:6:6","nodeType":"YulIdentifier","src":"20478:6:6"},"nativeSrc":"20478:16:6","nodeType":"YulFunctionCall","src":"20478:16:6"},"variableNames":[{"name":"s","nativeSrc":"20473:1:6","nodeType":"YulIdentifier","src":"20473:1:6"}]},{"nativeSrc":"20511:39:6","nodeType":"YulAssignment","src":"20511:39:6","value":{"arguments":[{"name":"s","nativeSrc":"20523:1:6","nodeType":"YulIdentifier","src":"20523:1:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20536:4:6","nodeType":"YulIdentifier","src":"20536:4:6"},{"name":"pU","nativeSrc":"20542:2:6","nodeType":"YulIdentifier","src":"20542:2:6"}],"functionName":{"name":"add","nativeSrc":"20532:3:6","nodeType":"YulIdentifier","src":"20532:3:6"},"nativeSrc":"20532:13:6","nodeType":"YulFunctionCall","src":"20532:13:6"}],"functionName":{"name":"mload","nativeSrc":"20526:5:6","nodeType":"YulIdentifier","src":"20526:5:6"},"nativeSrc":"20526:20:6","nodeType":"YulFunctionCall","src":"20526:20:6"},{"name":"q","nativeSrc":"20548:1:6","nodeType":"YulIdentifier","src":"20548:1:6"}],"functionName":{"name":"addmod","nativeSrc":"20516:6:6","nodeType":"YulIdentifier","src":"20516:6:6"},"nativeSrc":"20516:34:6","nodeType":"YulFunctionCall","src":"20516:34:6"},"variableNames":[{"name":"s","nativeSrc":"20511:1:6","nodeType":"YulIdentifier","src":"20511:1:6"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"20577:1:6","nodeType":"YulIdentifier","src":"20577:1:6"},{"arguments":[{"name":"pProof","nativeSrc":"20584:6:6","nodeType":"YulIdentifier","src":"20584:6:6"},{"name":"pZ","nativeSrc":"20592:2:6","nodeType":"YulIdentifier","src":"20592:2:6"}],"functionName":{"name":"add","nativeSrc":"20580:3:6","nodeType":"YulIdentifier","src":"20580:3:6"},"nativeSrc":"20580:15:6","nodeType":"YulFunctionCall","src":"20580:15:6"},{"name":"s","nativeSrc":"20597:1:6","nodeType":"YulIdentifier","src":"20597:1:6"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"20567:9:6","nodeType":"YulIdentifier","src":"20567:9:6"},"nativeSrc":"20567:32:6","nodeType":"YulFunctionCall","src":"20567:32:6"},"nativeSrc":"20567:32:6","nodeType":"YulExpressionStatement","src":"20567:32:6"},{"nativeSrc":"20633:69:6","nodeType":"YulAssignment","src":"20633:69:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20655:4:6","nodeType":"YulIdentifier","src":"20655:4:6"},{"name":"pBeta","nativeSrc":"20661:5:6","nodeType":"YulIdentifier","src":"20661:5:6"}],"functionName":{"name":"add","nativeSrc":"20651:3:6","nodeType":"YulIdentifier","src":"20651:3:6"},"nativeSrc":"20651:16:6","nodeType":"YulFunctionCall","src":"20651:16:6"}],"functionName":{"name":"mload","nativeSrc":"20645:5:6","nodeType":"YulIdentifier","src":"20645:5:6"},"nativeSrc":"20645:23:6","nodeType":"YulFunctionCall","src":"20645:23:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"20680:6:6","nodeType":"YulIdentifier","src":"20680:6:6"},{"name":"pEval_s1","nativeSrc":"20688:8:6","nodeType":"YulIdentifier","src":"20688:8:6"}],"functionName":{"name":"add","nativeSrc":"20676:3:6","nodeType":"YulIdentifier","src":"20676:3:6"},"nativeSrc":"20676:21:6","nodeType":"YulFunctionCall","src":"20676:21:6"}],"functionName":{"name":"mload","nativeSrc":"20670:5:6","nodeType":"YulIdentifier","src":"20670:5:6"},"nativeSrc":"20670:28:6","nodeType":"YulFunctionCall","src":"20670:28:6"},{"name":"q","nativeSrc":"20700:1:6","nodeType":"YulIdentifier","src":"20700:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"20638:6:6","nodeType":"YulIdentifier","src":"20638:6:6"},"nativeSrc":"20638:64:6","nodeType":"YulFunctionCall","src":"20638:64:6"},"variableNames":[{"name":"s","nativeSrc":"20633:1:6","nodeType":"YulIdentifier","src":"20633:1:6"}]},{"nativeSrc":"20719:46:6","nodeType":"YulAssignment","src":"20719:46:6","value":{"arguments":[{"name":"s","nativeSrc":"20731:1:6","nodeType":"YulIdentifier","src":"20731:1:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"20744:6:6","nodeType":"YulIdentifier","src":"20744:6:6"},{"name":"pEval_a","nativeSrc":"20752:7:6","nodeType":"YulIdentifier","src":"20752:7:6"}],"functionName":{"name":"add","nativeSrc":"20740:3:6","nodeType":"YulIdentifier","src":"20740:3:6"},"nativeSrc":"20740:20:6","nodeType":"YulFunctionCall","src":"20740:20:6"}],"functionName":{"name":"mload","nativeSrc":"20734:5:6","nodeType":"YulIdentifier","src":"20734:5:6"},"nativeSrc":"20734:27:6","nodeType":"YulFunctionCall","src":"20734:27:6"},{"name":"q","nativeSrc":"20763:1:6","nodeType":"YulIdentifier","src":"20763:1:6"}],"functionName":{"name":"addmod","nativeSrc":"20724:6:6","nodeType":"YulIdentifier","src":"20724:6:6"},"nativeSrc":"20724:41:6","nodeType":"YulFunctionCall","src":"20724:41:6"},"variableNames":[{"name":"s","nativeSrc":"20719:1:6","nodeType":"YulIdentifier","src":"20719:1:6"}]},{"nativeSrc":"20782:43:6","nodeType":"YulAssignment","src":"20782:43:6","value":{"arguments":[{"name":"s","nativeSrc":"20794:1:6","nodeType":"YulIdentifier","src":"20794:1:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20807:4:6","nodeType":"YulIdentifier","src":"20807:4:6"},{"name":"pGamma","nativeSrc":"20813:6:6","nodeType":"YulIdentifier","src":"20813:6:6"}],"functionName":{"name":"add","nativeSrc":"20803:3:6","nodeType":"YulIdentifier","src":"20803:3:6"},"nativeSrc":"20803:17:6","nodeType":"YulFunctionCall","src":"20803:17:6"}],"functionName":{"name":"mload","nativeSrc":"20797:5:6","nodeType":"YulIdentifier","src":"20797:5:6"},"nativeSrc":"20797:24:6","nodeType":"YulFunctionCall","src":"20797:24:6"},{"name":"q","nativeSrc":"20823:1:6","nodeType":"YulIdentifier","src":"20823:1:6"}],"functionName":{"name":"addmod","nativeSrc":"20787:6:6","nodeType":"YulIdentifier","src":"20787:6:6"},"nativeSrc":"20787:38:6","nodeType":"YulFunctionCall","src":"20787:38:6"},"variableNames":[{"name":"s","nativeSrc":"20782:1:6","nodeType":"YulIdentifier","src":"20782:1:6"}]},{"nativeSrc":"20842:70:6","nodeType":"YulAssignment","src":"20842:70:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20865:4:6","nodeType":"YulIdentifier","src":"20865:4:6"},{"name":"pBeta","nativeSrc":"20871:5:6","nodeType":"YulIdentifier","src":"20871:5:6"}],"functionName":{"name":"add","nativeSrc":"20861:3:6","nodeType":"YulIdentifier","src":"20861:3:6"},"nativeSrc":"20861:16:6","nodeType":"YulFunctionCall","src":"20861:16:6"}],"functionName":{"name":"mload","nativeSrc":"20855:5:6","nodeType":"YulIdentifier","src":"20855:5:6"},"nativeSrc":"20855:23:6","nodeType":"YulFunctionCall","src":"20855:23:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"20890:6:6","nodeType":"YulIdentifier","src":"20890:6:6"},{"name":"pEval_s2","nativeSrc":"20898:8:6","nodeType":"YulIdentifier","src":"20898:8:6"}],"functionName":{"name":"add","nativeSrc":"20886:3:6","nodeType":"YulIdentifier","src":"20886:3:6"},"nativeSrc":"20886:21:6","nodeType":"YulFunctionCall","src":"20886:21:6"}],"functionName":{"name":"mload","nativeSrc":"20880:5:6","nodeType":"YulIdentifier","src":"20880:5:6"},"nativeSrc":"20880:28:6","nodeType":"YulFunctionCall","src":"20880:28:6"},{"name":"q","nativeSrc":"20910:1:6","nodeType":"YulIdentifier","src":"20910:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"20848:6:6","nodeType":"YulIdentifier","src":"20848:6:6"},"nativeSrc":"20848:64:6","nodeType":"YulFunctionCall","src":"20848:64:6"},"variableNames":[{"name":"s1","nativeSrc":"20842:2:6","nodeType":"YulIdentifier","src":"20842:2:6"}]},{"nativeSrc":"20929:48:6","nodeType":"YulAssignment","src":"20929:48:6","value":{"arguments":[{"name":"s1","nativeSrc":"20942:2:6","nodeType":"YulIdentifier","src":"20942:2:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"20956:6:6","nodeType":"YulIdentifier","src":"20956:6:6"},{"name":"pEval_b","nativeSrc":"20964:7:6","nodeType":"YulIdentifier","src":"20964:7:6"}],"functionName":{"name":"add","nativeSrc":"20952:3:6","nodeType":"YulIdentifier","src":"20952:3:6"},"nativeSrc":"20952:20:6","nodeType":"YulFunctionCall","src":"20952:20:6"}],"functionName":{"name":"mload","nativeSrc":"20946:5:6","nodeType":"YulIdentifier","src":"20946:5:6"},"nativeSrc":"20946:27:6","nodeType":"YulFunctionCall","src":"20946:27:6"},{"name":"q","nativeSrc":"20975:1:6","nodeType":"YulIdentifier","src":"20975:1:6"}],"functionName":{"name":"addmod","nativeSrc":"20935:6:6","nodeType":"YulIdentifier","src":"20935:6:6"},"nativeSrc":"20935:42:6","nodeType":"YulFunctionCall","src":"20935:42:6"},"variableNames":[{"name":"s1","nativeSrc":"20929:2:6","nodeType":"YulIdentifier","src":"20929:2:6"}]},{"nativeSrc":"20994:45:6","nodeType":"YulAssignment","src":"20994:45:6","value":{"arguments":[{"name":"s1","nativeSrc":"21007:2:6","nodeType":"YulIdentifier","src":"21007:2:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21021:4:6","nodeType":"YulIdentifier","src":"21021:4:6"},{"name":"pGamma","nativeSrc":"21027:6:6","nodeType":"YulIdentifier","src":"21027:6:6"}],"functionName":{"name":"add","nativeSrc":"21017:3:6","nodeType":"YulIdentifier","src":"21017:3:6"},"nativeSrc":"21017:17:6","nodeType":"YulFunctionCall","src":"21017:17:6"}],"functionName":{"name":"mload","nativeSrc":"21011:5:6","nodeType":"YulIdentifier","src":"21011:5:6"},"nativeSrc":"21011:24:6","nodeType":"YulFunctionCall","src":"21011:24:6"},{"name":"q","nativeSrc":"21037:1:6","nodeType":"YulIdentifier","src":"21037:1:6"}],"functionName":{"name":"addmod","nativeSrc":"21000:6:6","nodeType":"YulIdentifier","src":"21000:6:6"},"nativeSrc":"21000:39:6","nodeType":"YulFunctionCall","src":"21000:39:6"},"variableNames":[{"name":"s1","nativeSrc":"20994:2:6","nodeType":"YulIdentifier","src":"20994:2:6"}]},{"nativeSrc":"21056:21:6","nodeType":"YulAssignment","src":"21056:21:6","value":{"arguments":[{"name":"s","nativeSrc":"21068:1:6","nodeType":"YulIdentifier","src":"21068:1:6"},{"name":"s1","nativeSrc":"21071:2:6","nodeType":"YulIdentifier","src":"21071:2:6"},{"name":"q","nativeSrc":"21075:1:6","nodeType":"YulIdentifier","src":"21075:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"21061:6:6","nodeType":"YulIdentifier","src":"21061:6:6"},"nativeSrc":"21061:16:6","nodeType":"YulFunctionCall","src":"21061:16:6"},"variableNames":[{"name":"s","nativeSrc":"21056:1:6","nodeType":"YulIdentifier","src":"21056:1:6"}]},{"nativeSrc":"21094:43:6","nodeType":"YulAssignment","src":"21094:43:6","value":{"arguments":[{"name":"s","nativeSrc":"21106:1:6","nodeType":"YulIdentifier","src":"21106:1:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21119:4:6","nodeType":"YulIdentifier","src":"21119:4:6"},{"name":"pAlpha","nativeSrc":"21125:6:6","nodeType":"YulIdentifier","src":"21125:6:6"}],"functionName":{"name":"add","nativeSrc":"21115:3:6","nodeType":"YulIdentifier","src":"21115:3:6"},"nativeSrc":"21115:17:6","nodeType":"YulFunctionCall","src":"21115:17:6"}],"functionName":{"name":"mload","nativeSrc":"21109:5:6","nodeType":"YulIdentifier","src":"21109:5:6"},"nativeSrc":"21109:24:6","nodeType":"YulFunctionCall","src":"21109:24:6"},{"name":"q","nativeSrc":"21135:1:6","nodeType":"YulIdentifier","src":"21135:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"21099:6:6","nodeType":"YulIdentifier","src":"21099:6:6"},"nativeSrc":"21099:38:6","nodeType":"YulFunctionCall","src":"21099:38:6"},"variableNames":[{"name":"s","nativeSrc":"21094:1:6","nodeType":"YulIdentifier","src":"21094:1:6"}]},{"nativeSrc":"21154:40:6","nodeType":"YulAssignment","src":"21154:40:6","value":{"arguments":[{"name":"s","nativeSrc":"21166:1:6","nodeType":"YulIdentifier","src":"21166:1:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21179:4:6","nodeType":"YulIdentifier","src":"21179:4:6"},{"name":"pV1","nativeSrc":"21185:3:6","nodeType":"YulIdentifier","src":"21185:3:6"}],"functionName":{"name":"add","nativeSrc":"21175:3:6","nodeType":"YulIdentifier","src":"21175:3:6"},"nativeSrc":"21175:14:6","nodeType":"YulFunctionCall","src":"21175:14:6"}],"functionName":{"name":"mload","nativeSrc":"21169:5:6","nodeType":"YulIdentifier","src":"21169:5:6"},"nativeSrc":"21169:21:6","nodeType":"YulFunctionCall","src":"21169:21:6"},{"name":"q","nativeSrc":"21192:1:6","nodeType":"YulIdentifier","src":"21192:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"21159:6:6","nodeType":"YulIdentifier","src":"21159:6:6"},"nativeSrc":"21159:35:6","nodeType":"YulFunctionCall","src":"21159:35:6"},"variableNames":[{"name":"s","nativeSrc":"21154:1:6","nodeType":"YulIdentifier","src":"21154:1:6"}]},{"nativeSrc":"21211:42:6","nodeType":"YulAssignment","src":"21211:42:6","value":{"arguments":[{"name":"s","nativeSrc":"21223:1:6","nodeType":"YulIdentifier","src":"21223:1:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21236:4:6","nodeType":"YulIdentifier","src":"21236:4:6"},{"name":"pBeta","nativeSrc":"21242:5:6","nodeType":"YulIdentifier","src":"21242:5:6"}],"functionName":{"name":"add","nativeSrc":"21232:3:6","nodeType":"YulIdentifier","src":"21232:3:6"},"nativeSrc":"21232:16:6","nodeType":"YulFunctionCall","src":"21232:16:6"}],"functionName":{"name":"mload","nativeSrc":"21226:5:6","nodeType":"YulIdentifier","src":"21226:5:6"},"nativeSrc":"21226:23:6","nodeType":"YulFunctionCall","src":"21226:23:6"},{"name":"q","nativeSrc":"21251:1:6","nodeType":"YulIdentifier","src":"21251:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"21216:6:6","nodeType":"YulIdentifier","src":"21216:6:6"},"nativeSrc":"21216:37:6","nodeType":"YulFunctionCall","src":"21216:37:6"},"variableNames":[{"name":"s","nativeSrc":"21211:1:6","nodeType":"YulIdentifier","src":"21211:1:6"}]},{"nativeSrc":"21270:47:6","nodeType":"YulAssignment","src":"21270:47:6","value":{"arguments":[{"name":"s","nativeSrc":"21282:1:6","nodeType":"YulIdentifier","src":"21282:1:6"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"21295:6:6","nodeType":"YulIdentifier","src":"21295:6:6"},{"name":"pEval_zw","nativeSrc":"21303:8:6","nodeType":"YulIdentifier","src":"21303:8:6"}],"functionName":{"name":"add","nativeSrc":"21291:3:6","nodeType":"YulIdentifier","src":"21291:3:6"},"nativeSrc":"21291:21:6","nodeType":"YulFunctionCall","src":"21291:21:6"}],"functionName":{"name":"mload","nativeSrc":"21285:5:6","nodeType":"YulIdentifier","src":"21285:5:6"},"nativeSrc":"21285:28:6","nodeType":"YulFunctionCall","src":"21285:28:6"},{"name":"q","nativeSrc":"21315:1:6","nodeType":"YulIdentifier","src":"21315:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"21275:6:6","nodeType":"YulIdentifier","src":"21275:6:6"},"nativeSrc":"21275:42:6","nodeType":"YulFunctionCall","src":"21275:42:6"},"variableNames":[{"name":"s","nativeSrc":"21270:1:6","nodeType":"YulIdentifier","src":"21270:1:6"}]},{"nativeSrc":"21334:22:6","nodeType":"YulAssignment","src":"21334:22:6","value":{"arguments":[{"arguments":[{"name":"q","nativeSrc":"21347:1:6","nodeType":"YulIdentifier","src":"21347:1:6"},{"name":"s","nativeSrc":"21350:1:6","nodeType":"YulIdentifier","src":"21350:1:6"}],"functionName":{"name":"sub","nativeSrc":"21343:3:6","nodeType":"YulIdentifier","src":"21343:3:6"},"nativeSrc":"21343:9:6","nodeType":"YulFunctionCall","src":"21343:9:6"},{"name":"q","nativeSrc":"21354:1:6","nodeType":"YulIdentifier","src":"21354:1:6"}],"functionName":{"name":"mod","nativeSrc":"21339:3:6","nodeType":"YulIdentifier","src":"21339:3:6"},"nativeSrc":"21339:17:6","nodeType":"YulFunctionCall","src":"21339:17:6"},"variableNames":[{"name":"s","nativeSrc":"21334:1:6","nodeType":"YulIdentifier","src":"21334:1:6"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"21384:1:6","nodeType":"YulIdentifier","src":"21384:1:6"},{"name":"S3x","nativeSrc":"21387:3:6","nodeType":"YulIdentifier","src":"21387:3:6"},{"name":"S3y","nativeSrc":"21392:3:6","nodeType":"YulIdentifier","src":"21392:3:6"},{"name":"s","nativeSrc":"21397:1:6","nodeType":"YulIdentifier","src":"21397:1:6"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"21373:10:6","nodeType":"YulIdentifier","src":"21373:10:6"},"nativeSrc":"21373:26:6","nodeType":"YulFunctionCall","src":"21373:26:6"},"nativeSrc":"21373:26:6","nodeType":"YulExpressionStatement","src":"21373:26:6"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21456:1:6","nodeType":"YulIdentifier","src":"21456:1:6"},{"arguments":[{"name":"pProof","nativeSrc":"21464:6:6","nodeType":"YulIdentifier","src":"21464:6:6"},{"name":"pT1","nativeSrc":"21472:3:6","nodeType":"YulIdentifier","src":"21472:3:6"}],"functionName":{"name":"add","nativeSrc":"21460:3:6","nodeType":"YulIdentifier","src":"21460:3:6"},"nativeSrc":"21460:16:6","nodeType":"YulFunctionCall","src":"21460:16:6"}],"functionName":{"name":"g1_acc","nativeSrc":"21449:6:6","nodeType":"YulIdentifier","src":"21449:6:6"},"nativeSrc":"21449:28:6","nodeType":"YulFunctionCall","src":"21449:28:6"},"nativeSrc":"21449:28:6","nodeType":"YulExpressionStatement","src":"21449:28:6"},{"nativeSrc":"21495:27:6","nodeType":"YulAssignment","src":"21495:27:6","value":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21510:4:6","nodeType":"YulIdentifier","src":"21510:4:6"},{"name":"pXin","nativeSrc":"21516:4:6","nodeType":"YulIdentifier","src":"21516:4:6"}],"functionName":{"name":"add","nativeSrc":"21506:3:6","nodeType":"YulIdentifier","src":"21506:3:6"},"nativeSrc":"21506:15:6","nodeType":"YulFunctionCall","src":"21506:15:6"}],"functionName":{"name":"mload","nativeSrc":"21500:5:6","nodeType":"YulIdentifier","src":"21500:5:6"},"nativeSrc":"21500:22:6","nodeType":"YulFunctionCall","src":"21500:22:6"},"variableNames":[{"name":"s","nativeSrc":"21495:1:6","nodeType":"YulIdentifier","src":"21495:1:6"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"21549:1:6","nodeType":"YulIdentifier","src":"21549:1:6"},{"arguments":[{"name":"pProof","nativeSrc":"21556:6:6","nodeType":"YulIdentifier","src":"21556:6:6"},{"name":"pT2","nativeSrc":"21564:3:6","nodeType":"YulIdentifier","src":"21564:3:6"}],"functionName":{"name":"add","nativeSrc":"21552:3:6","nodeType":"YulIdentifier","src":"21552:3:6"},"nativeSrc":"21552:16:6","nodeType":"YulFunctionCall","src":"21552:16:6"},{"name":"s","nativeSrc":"21570:1:6","nodeType":"YulIdentifier","src":"21570:1:6"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"21539:9:6","nodeType":"YulIdentifier","src":"21539:9:6"},"nativeSrc":"21539:33:6","nodeType":"YulFunctionCall","src":"21539:33:6"},"nativeSrc":"21539:33:6","nodeType":"YulExpressionStatement","src":"21539:33:6"},{"nativeSrc":"21606:20:6","nodeType":"YulAssignment","src":"21606:20:6","value":{"arguments":[{"name":"s","nativeSrc":"21618:1:6","nodeType":"YulIdentifier","src":"21618:1:6"},{"name":"s","nativeSrc":"21621:1:6","nodeType":"YulIdentifier","src":"21621:1:6"},{"name":"q","nativeSrc":"21624:1:6","nodeType":"YulIdentifier","src":"21624:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"21611:6:6","nodeType":"YulIdentifier","src":"21611:6:6"},"nativeSrc":"21611:15:6","nodeType":"YulFunctionCall","src":"21611:15:6"},"variableNames":[{"name":"s","nativeSrc":"21606:1:6","nodeType":"YulIdentifier","src":"21606:1:6"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"21653:1:6","nodeType":"YulIdentifier","src":"21653:1:6"},{"arguments":[{"name":"pProof","nativeSrc":"21660:6:6","nodeType":"YulIdentifier","src":"21660:6:6"},{"name":"pT3","nativeSrc":"21668:3:6","nodeType":"YulIdentifier","src":"21668:3:6"}],"functionName":{"name":"add","nativeSrc":"21656:3:6","nodeType":"YulIdentifier","src":"21656:3:6"},"nativeSrc":"21656:16:6","nodeType":"YulFunctionCall","src":"21656:16:6"},{"name":"s","nativeSrc":"21674:1:6","nodeType":"YulIdentifier","src":"21674:1:6"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"21643:9:6","nodeType":"YulIdentifier","src":"21643:9:6"},"nativeSrc":"21643:33:6","nodeType":"YulFunctionCall","src":"21643:33:6"},"nativeSrc":"21643:33:6","nodeType":"YulExpressionStatement","src":"21643:33:6"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21720:1:6","nodeType":"YulIdentifier","src":"21720:1:6"},{"arguments":[{"name":"pProof","nativeSrc":"21727:6:6","nodeType":"YulIdentifier","src":"21727:6:6"},{"name":"pA","nativeSrc":"21735:2:6","nodeType":"YulIdentifier","src":"21735:2:6"}],"functionName":{"name":"add","nativeSrc":"21723:3:6","nodeType":"YulIdentifier","src":"21723:3:6"},"nativeSrc":"21723:15:6","nodeType":"YulFunctionCall","src":"21723:15:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21750:4:6","nodeType":"YulIdentifier","src":"21750:4:6"},{"name":"pV2","nativeSrc":"21756:3:6","nodeType":"YulIdentifier","src":"21756:3:6"}],"functionName":{"name":"add","nativeSrc":"21746:3:6","nodeType":"YulIdentifier","src":"21746:3:6"},"nativeSrc":"21746:14:6","nodeType":"YulFunctionCall","src":"21746:14:6"}],"functionName":{"name":"mload","nativeSrc":"21740:5:6","nodeType":"YulIdentifier","src":"21740:5:6"},"nativeSrc":"21740:21:6","nodeType":"YulFunctionCall","src":"21740:21:6"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"21710:9:6","nodeType":"YulIdentifier","src":"21710:9:6"},"nativeSrc":"21710:52:6","nodeType":"YulFunctionCall","src":"21710:52:6"},"nativeSrc":"21710:52:6","nodeType":"YulExpressionStatement","src":"21710:52:6"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21789:1:6","nodeType":"YulIdentifier","src":"21789:1:6"},{"arguments":[{"name":"pProof","nativeSrc":"21796:6:6","nodeType":"YulIdentifier","src":"21796:6:6"},{"name":"pB","nativeSrc":"21804:2:6","nodeType":"YulIdentifier","src":"21804:2:6"}],"functionName":{"name":"add","nativeSrc":"21792:3:6","nodeType":"YulIdentifier","src":"21792:3:6"},"nativeSrc":"21792:15:6","nodeType":"YulFunctionCall","src":"21792:15:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21819:4:6","nodeType":"YulIdentifier","src":"21819:4:6"},{"name":"pV3","nativeSrc":"21825:3:6","nodeType":"YulIdentifier","src":"21825:3:6"}],"functionName":{"name":"add","nativeSrc":"21815:3:6","nodeType":"YulIdentifier","src":"21815:3:6"},"nativeSrc":"21815:14:6","nodeType":"YulFunctionCall","src":"21815:14:6"}],"functionName":{"name":"mload","nativeSrc":"21809:5:6","nodeType":"YulIdentifier","src":"21809:5:6"},"nativeSrc":"21809:21:6","nodeType":"YulFunctionCall","src":"21809:21:6"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"21779:9:6","nodeType":"YulIdentifier","src":"21779:9:6"},"nativeSrc":"21779:52:6","nodeType":"YulFunctionCall","src":"21779:52:6"},"nativeSrc":"21779:52:6","nodeType":"YulExpressionStatement","src":"21779:52:6"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21858:1:6","nodeType":"YulIdentifier","src":"21858:1:6"},{"arguments":[{"name":"pProof","nativeSrc":"21865:6:6","nodeType":"YulIdentifier","src":"21865:6:6"},{"name":"pC","nativeSrc":"21873:2:6","nodeType":"YulIdentifier","src":"21873:2:6"}],"functionName":{"name":"add","nativeSrc":"21861:3:6","nodeType":"YulIdentifier","src":"21861:3:6"},"nativeSrc":"21861:15:6","nodeType":"YulFunctionCall","src":"21861:15:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21888:4:6","nodeType":"YulIdentifier","src":"21888:4:6"},{"name":"pV4","nativeSrc":"21894:3:6","nodeType":"YulIdentifier","src":"21894:3:6"}],"functionName":{"name":"add","nativeSrc":"21884:3:6","nodeType":"YulIdentifier","src":"21884:3:6"},"nativeSrc":"21884:14:6","nodeType":"YulFunctionCall","src":"21884:14:6"}],"functionName":{"name":"mload","nativeSrc":"21878:5:6","nodeType":"YulIdentifier","src":"21878:5:6"},"nativeSrc":"21878:21:6","nodeType":"YulFunctionCall","src":"21878:21:6"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"21848:9:6","nodeType":"YulIdentifier","src":"21848:9:6"},"nativeSrc":"21848:52:6","nodeType":"YulFunctionCall","src":"21848:52:6"},"nativeSrc":"21848:52:6","nodeType":"YulExpressionStatement","src":"21848:52:6"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21928:1:6","nodeType":"YulIdentifier","src":"21928:1:6"},{"name":"S1x","nativeSrc":"21931:3:6","nodeType":"YulIdentifier","src":"21931:3:6"},{"name":"S1y","nativeSrc":"21936:3:6","nodeType":"YulIdentifier","src":"21936:3:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21951:4:6","nodeType":"YulIdentifier","src":"21951:4:6"},{"name":"pV5","nativeSrc":"21957:3:6","nodeType":"YulIdentifier","src":"21957:3:6"}],"functionName":{"name":"add","nativeSrc":"21947:3:6","nodeType":"YulIdentifier","src":"21947:3:6"},"nativeSrc":"21947:14:6","nodeType":"YulFunctionCall","src":"21947:14:6"}],"functionName":{"name":"mload","nativeSrc":"21941:5:6","nodeType":"YulIdentifier","src":"21941:5:6"},"nativeSrc":"21941:21:6","nodeType":"YulFunctionCall","src":"21941:21:6"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"21917:10:6","nodeType":"YulIdentifier","src":"21917:10:6"},"nativeSrc":"21917:46:6","nodeType":"YulFunctionCall","src":"21917:46:6"},"nativeSrc":"21917:46:6","nodeType":"YulExpressionStatement","src":"21917:46:6"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21991:1:6","nodeType":"YulIdentifier","src":"21991:1:6"},{"name":"S2x","nativeSrc":"21994:3:6","nodeType":"YulIdentifier","src":"21994:3:6"},{"name":"S2y","nativeSrc":"21999:3:6","nodeType":"YulIdentifier","src":"21999:3:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22014:4:6","nodeType":"YulIdentifier","src":"22014:4:6"},{"name":"pV6","nativeSrc":"22020:3:6","nodeType":"YulIdentifier","src":"22020:3:6"}],"functionName":{"name":"add","nativeSrc":"22010:3:6","nodeType":"YulIdentifier","src":"22010:3:6"},"nativeSrc":"22010:14:6","nodeType":"YulFunctionCall","src":"22010:14:6"}],"functionName":{"name":"mload","nativeSrc":"22004:5:6","nodeType":"YulIdentifier","src":"22004:5:6"},"nativeSrc":"22004:21:6","nodeType":"YulFunctionCall","src":"22004:21:6"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"21980:10:6","nodeType":"YulIdentifier","src":"21980:10:6"},"nativeSrc":"21980:46:6","nodeType":"YulFunctionCall","src":"21980:46:6"},"nativeSrc":"21980:46:6","nodeType":"YulExpressionStatement","src":"21980:46:6"},{"nativeSrc":"22091:30:6","nodeType":"YulAssignment","src":"22091:30:6","value":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22106:4:6","nodeType":"YulIdentifier","src":"22106:4:6"},{"name":"pEval_t","nativeSrc":"22112:7:6","nodeType":"YulIdentifier","src":"22112:7:6"}],"functionName":{"name":"add","nativeSrc":"22102:3:6","nodeType":"YulIdentifier","src":"22102:3:6"},"nativeSrc":"22102:18:6","nodeType":"YulFunctionCall","src":"22102:18:6"}],"functionName":{"name":"mload","nativeSrc":"22096:5:6","nodeType":"YulIdentifier","src":"22096:5:6"},"nativeSrc":"22096:25:6","nodeType":"YulFunctionCall","src":"22096:25:6"},"variableNames":[{"name":"s","nativeSrc":"22091:1:6","nodeType":"YulIdentifier","src":"22091:1:6"}]},{"nativeSrc":"22138:80:6","nodeType":"YulAssignment","src":"22138:80:6","value":{"arguments":[{"name":"s","nativeSrc":"22150:1:6","nodeType":"YulIdentifier","src":"22150:1:6"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22170:6:6","nodeType":"YulIdentifier","src":"22170:6:6"},{"name":"pEval_r","nativeSrc":"22178:7:6","nodeType":"YulIdentifier","src":"22178:7:6"}],"functionName":{"name":"add","nativeSrc":"22166:3:6","nodeType":"YulIdentifier","src":"22166:3:6"},"nativeSrc":"22166:20:6","nodeType":"YulFunctionCall","src":"22166:20:6"}],"functionName":{"name":"mload","nativeSrc":"22160:5:6","nodeType":"YulIdentifier","src":"22160:5:6"},"nativeSrc":"22160:27:6","nodeType":"YulFunctionCall","src":"22160:27:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22199:4:6","nodeType":"YulIdentifier","src":"22199:4:6"},{"name":"pV1","nativeSrc":"22205:3:6","nodeType":"YulIdentifier","src":"22205:3:6"}],"functionName":{"name":"add","nativeSrc":"22195:3:6","nodeType":"YulIdentifier","src":"22195:3:6"},"nativeSrc":"22195:14:6","nodeType":"YulFunctionCall","src":"22195:14:6"}],"functionName":{"name":"mload","nativeSrc":"22189:5:6","nodeType":"YulIdentifier","src":"22189:5:6"},"nativeSrc":"22189:21:6","nodeType":"YulFunctionCall","src":"22189:21:6"},{"name":"q","nativeSrc":"22212:1:6","nodeType":"YulIdentifier","src":"22212:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"22153:6:6","nodeType":"YulIdentifier","src":"22153:6:6"},"nativeSrc":"22153:61:6","nodeType":"YulFunctionCall","src":"22153:61:6"},{"name":"q","nativeSrc":"22216:1:6","nodeType":"YulIdentifier","src":"22216:1:6"}],"functionName":{"name":"addmod","nativeSrc":"22143:6:6","nodeType":"YulIdentifier","src":"22143:6:6"},"nativeSrc":"22143:75:6","nodeType":"YulFunctionCall","src":"22143:75:6"},"variableNames":[{"name":"s","nativeSrc":"22138:1:6","nodeType":"YulIdentifier","src":"22138:1:6"}]},{"nativeSrc":"22235:80:6","nodeType":"YulAssignment","src":"22235:80:6","value":{"arguments":[{"name":"s","nativeSrc":"22247:1:6","nodeType":"YulIdentifier","src":"22247:1:6"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22267:6:6","nodeType":"YulIdentifier","src":"22267:6:6"},{"name":"pEval_a","nativeSrc":"22275:7:6","nodeType":"YulIdentifier","src":"22275:7:6"}],"functionName":{"name":"add","nativeSrc":"22263:3:6","nodeType":"YulIdentifier","src":"22263:3:6"},"nativeSrc":"22263:20:6","nodeType":"YulFunctionCall","src":"22263:20:6"}],"functionName":{"name":"mload","nativeSrc":"22257:5:6","nodeType":"YulIdentifier","src":"22257:5:6"},"nativeSrc":"22257:27:6","nodeType":"YulFunctionCall","src":"22257:27:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22296:4:6","nodeType":"YulIdentifier","src":"22296:4:6"},{"name":"pV2","nativeSrc":"22302:3:6","nodeType":"YulIdentifier","src":"22302:3:6"}],"functionName":{"name":"add","nativeSrc":"22292:3:6","nodeType":"YulIdentifier","src":"22292:3:6"},"nativeSrc":"22292:14:6","nodeType":"YulFunctionCall","src":"22292:14:6"}],"functionName":{"name":"mload","nativeSrc":"22286:5:6","nodeType":"YulIdentifier","src":"22286:5:6"},"nativeSrc":"22286:21:6","nodeType":"YulFunctionCall","src":"22286:21:6"},{"name":"q","nativeSrc":"22309:1:6","nodeType":"YulIdentifier","src":"22309:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"22250:6:6","nodeType":"YulIdentifier","src":"22250:6:6"},"nativeSrc":"22250:61:6","nodeType":"YulFunctionCall","src":"22250:61:6"},{"name":"q","nativeSrc":"22313:1:6","nodeType":"YulIdentifier","src":"22313:1:6"}],"functionName":{"name":"addmod","nativeSrc":"22240:6:6","nodeType":"YulIdentifier","src":"22240:6:6"},"nativeSrc":"22240:75:6","nodeType":"YulFunctionCall","src":"22240:75:6"},"variableNames":[{"name":"s","nativeSrc":"22235:1:6","nodeType":"YulIdentifier","src":"22235:1:6"}]},{"nativeSrc":"22332:80:6","nodeType":"YulAssignment","src":"22332:80:6","value":{"arguments":[{"name":"s","nativeSrc":"22344:1:6","nodeType":"YulIdentifier","src":"22344:1:6"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22364:6:6","nodeType":"YulIdentifier","src":"22364:6:6"},{"name":"pEval_b","nativeSrc":"22372:7:6","nodeType":"YulIdentifier","src":"22372:7:6"}],"functionName":{"name":"add","nativeSrc":"22360:3:6","nodeType":"YulIdentifier","src":"22360:3:6"},"nativeSrc":"22360:20:6","nodeType":"YulFunctionCall","src":"22360:20:6"}],"functionName":{"name":"mload","nativeSrc":"22354:5:6","nodeType":"YulIdentifier","src":"22354:5:6"},"nativeSrc":"22354:27:6","nodeType":"YulFunctionCall","src":"22354:27:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22393:4:6","nodeType":"YulIdentifier","src":"22393:4:6"},{"name":"pV3","nativeSrc":"22399:3:6","nodeType":"YulIdentifier","src":"22399:3:6"}],"functionName":{"name":"add","nativeSrc":"22389:3:6","nodeType":"YulIdentifier","src":"22389:3:6"},"nativeSrc":"22389:14:6","nodeType":"YulFunctionCall","src":"22389:14:6"}],"functionName":{"name":"mload","nativeSrc":"22383:5:6","nodeType":"YulIdentifier","src":"22383:5:6"},"nativeSrc":"22383:21:6","nodeType":"YulFunctionCall","src":"22383:21:6"},{"name":"q","nativeSrc":"22406:1:6","nodeType":"YulIdentifier","src":"22406:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"22347:6:6","nodeType":"YulIdentifier","src":"22347:6:6"},"nativeSrc":"22347:61:6","nodeType":"YulFunctionCall","src":"22347:61:6"},{"name":"q","nativeSrc":"22410:1:6","nodeType":"YulIdentifier","src":"22410:1:6"}],"functionName":{"name":"addmod","nativeSrc":"22337:6:6","nodeType":"YulIdentifier","src":"22337:6:6"},"nativeSrc":"22337:75:6","nodeType":"YulFunctionCall","src":"22337:75:6"},"variableNames":[{"name":"s","nativeSrc":"22332:1:6","nodeType":"YulIdentifier","src":"22332:1:6"}]},{"nativeSrc":"22429:80:6","nodeType":"YulAssignment","src":"22429:80:6","value":{"arguments":[{"name":"s","nativeSrc":"22441:1:6","nodeType":"YulIdentifier","src":"22441:1:6"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22461:6:6","nodeType":"YulIdentifier","src":"22461:6:6"},{"name":"pEval_c","nativeSrc":"22469:7:6","nodeType":"YulIdentifier","src":"22469:7:6"}],"functionName":{"name":"add","nativeSrc":"22457:3:6","nodeType":"YulIdentifier","src":"22457:3:6"},"nativeSrc":"22457:20:6","nodeType":"YulFunctionCall","src":"22457:20:6"}],"functionName":{"name":"mload","nativeSrc":"22451:5:6","nodeType":"YulIdentifier","src":"22451:5:6"},"nativeSrc":"22451:27:6","nodeType":"YulFunctionCall","src":"22451:27:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22490:4:6","nodeType":"YulIdentifier","src":"22490:4:6"},{"name":"pV4","nativeSrc":"22496:3:6","nodeType":"YulIdentifier","src":"22496:3:6"}],"functionName":{"name":"add","nativeSrc":"22486:3:6","nodeType":"YulIdentifier","src":"22486:3:6"},"nativeSrc":"22486:14:6","nodeType":"YulFunctionCall","src":"22486:14:6"}],"functionName":{"name":"mload","nativeSrc":"22480:5:6","nodeType":"YulIdentifier","src":"22480:5:6"},"nativeSrc":"22480:21:6","nodeType":"YulFunctionCall","src":"22480:21:6"},{"name":"q","nativeSrc":"22503:1:6","nodeType":"YulIdentifier","src":"22503:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"22444:6:6","nodeType":"YulIdentifier","src":"22444:6:6"},"nativeSrc":"22444:61:6","nodeType":"YulFunctionCall","src":"22444:61:6"},{"name":"q","nativeSrc":"22507:1:6","nodeType":"YulIdentifier","src":"22507:1:6"}],"functionName":{"name":"addmod","nativeSrc":"22434:6:6","nodeType":"YulIdentifier","src":"22434:6:6"},"nativeSrc":"22434:75:6","nodeType":"YulFunctionCall","src":"22434:75:6"},"variableNames":[{"name":"s","nativeSrc":"22429:1:6","nodeType":"YulIdentifier","src":"22429:1:6"}]},{"nativeSrc":"22526:81:6","nodeType":"YulAssignment","src":"22526:81:6","value":{"arguments":[{"name":"s","nativeSrc":"22538:1:6","nodeType":"YulIdentifier","src":"22538:1:6"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22558:6:6","nodeType":"YulIdentifier","src":"22558:6:6"},{"name":"pEval_s1","nativeSrc":"22566:8:6","nodeType":"YulIdentifier","src":"22566:8:6"}],"functionName":{"name":"add","nativeSrc":"22554:3:6","nodeType":"YulIdentifier","src":"22554:3:6"},"nativeSrc":"22554:21:6","nodeType":"YulFunctionCall","src":"22554:21:6"}],"functionName":{"name":"mload","nativeSrc":"22548:5:6","nodeType":"YulIdentifier","src":"22548:5:6"},"nativeSrc":"22548:28:6","nodeType":"YulFunctionCall","src":"22548:28:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22588:4:6","nodeType":"YulIdentifier","src":"22588:4:6"},{"name":"pV5","nativeSrc":"22594:3:6","nodeType":"YulIdentifier","src":"22594:3:6"}],"functionName":{"name":"add","nativeSrc":"22584:3:6","nodeType":"YulIdentifier","src":"22584:3:6"},"nativeSrc":"22584:14:6","nodeType":"YulFunctionCall","src":"22584:14:6"}],"functionName":{"name":"mload","nativeSrc":"22578:5:6","nodeType":"YulIdentifier","src":"22578:5:6"},"nativeSrc":"22578:21:6","nodeType":"YulFunctionCall","src":"22578:21:6"},{"name":"q","nativeSrc":"22601:1:6","nodeType":"YulIdentifier","src":"22601:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"22541:6:6","nodeType":"YulIdentifier","src":"22541:6:6"},"nativeSrc":"22541:62:6","nodeType":"YulFunctionCall","src":"22541:62:6"},{"name":"q","nativeSrc":"22605:1:6","nodeType":"YulIdentifier","src":"22605:1:6"}],"functionName":{"name":"addmod","nativeSrc":"22531:6:6","nodeType":"YulIdentifier","src":"22531:6:6"},"nativeSrc":"22531:76:6","nodeType":"YulFunctionCall","src":"22531:76:6"},"variableNames":[{"name":"s","nativeSrc":"22526:1:6","nodeType":"YulIdentifier","src":"22526:1:6"}]},{"nativeSrc":"22624:81:6","nodeType":"YulAssignment","src":"22624:81:6","value":{"arguments":[{"name":"s","nativeSrc":"22636:1:6","nodeType":"YulIdentifier","src":"22636:1:6"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22656:6:6","nodeType":"YulIdentifier","src":"22656:6:6"},{"name":"pEval_s2","nativeSrc":"22664:8:6","nodeType":"YulIdentifier","src":"22664:8:6"}],"functionName":{"name":"add","nativeSrc":"22652:3:6","nodeType":"YulIdentifier","src":"22652:3:6"},"nativeSrc":"22652:21:6","nodeType":"YulFunctionCall","src":"22652:21:6"}],"functionName":{"name":"mload","nativeSrc":"22646:5:6","nodeType":"YulIdentifier","src":"22646:5:6"},"nativeSrc":"22646:28:6","nodeType":"YulFunctionCall","src":"22646:28:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22686:4:6","nodeType":"YulIdentifier","src":"22686:4:6"},{"name":"pV6","nativeSrc":"22692:3:6","nodeType":"YulIdentifier","src":"22692:3:6"}],"functionName":{"name":"add","nativeSrc":"22682:3:6","nodeType":"YulIdentifier","src":"22682:3:6"},"nativeSrc":"22682:14:6","nodeType":"YulFunctionCall","src":"22682:14:6"}],"functionName":{"name":"mload","nativeSrc":"22676:5:6","nodeType":"YulIdentifier","src":"22676:5:6"},"nativeSrc":"22676:21:6","nodeType":"YulFunctionCall","src":"22676:21:6"},{"name":"q","nativeSrc":"22699:1:6","nodeType":"YulIdentifier","src":"22699:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"22639:6:6","nodeType":"YulIdentifier","src":"22639:6:6"},"nativeSrc":"22639:62:6","nodeType":"YulFunctionCall","src":"22639:62:6"},{"name":"q","nativeSrc":"22703:1:6","nodeType":"YulIdentifier","src":"22703:1:6"}],"functionName":{"name":"addmod","nativeSrc":"22629:6:6","nodeType":"YulIdentifier","src":"22629:6:6"},"nativeSrc":"22629:76:6","nodeType":"YulFunctionCall","src":"22629:76:6"},"variableNames":[{"name":"s","nativeSrc":"22624:1:6","nodeType":"YulIdentifier","src":"22624:1:6"}]},{"nativeSrc":"22722:80:6","nodeType":"YulAssignment","src":"22722:80:6","value":{"arguments":[{"name":"s","nativeSrc":"22734:1:6","nodeType":"YulIdentifier","src":"22734:1:6"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22754:6:6","nodeType":"YulIdentifier","src":"22754:6:6"},{"name":"pEval_zw","nativeSrc":"22762:8:6","nodeType":"YulIdentifier","src":"22762:8:6"}],"functionName":{"name":"add","nativeSrc":"22750:3:6","nodeType":"YulIdentifier","src":"22750:3:6"},"nativeSrc":"22750:21:6","nodeType":"YulFunctionCall","src":"22750:21:6"}],"functionName":{"name":"mload","nativeSrc":"22744:5:6","nodeType":"YulIdentifier","src":"22744:5:6"},"nativeSrc":"22744:28:6","nodeType":"YulFunctionCall","src":"22744:28:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22784:4:6","nodeType":"YulIdentifier","src":"22784:4:6"},{"name":"pU","nativeSrc":"22790:2:6","nodeType":"YulIdentifier","src":"22790:2:6"}],"functionName":{"name":"add","nativeSrc":"22780:3:6","nodeType":"YulIdentifier","src":"22780:3:6"},"nativeSrc":"22780:13:6","nodeType":"YulFunctionCall","src":"22780:13:6"}],"functionName":{"name":"mload","nativeSrc":"22774:5:6","nodeType":"YulIdentifier","src":"22774:5:6"},"nativeSrc":"22774:20:6","nodeType":"YulFunctionCall","src":"22774:20:6"},{"name":"q","nativeSrc":"22796:1:6","nodeType":"YulIdentifier","src":"22796:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"22737:6:6","nodeType":"YulIdentifier","src":"22737:6:6"},"nativeSrc":"22737:61:6","nodeType":"YulFunctionCall","src":"22737:61:6"},{"name":"q","nativeSrc":"22800:1:6","nodeType":"YulIdentifier","src":"22800:1:6"}],"functionName":{"name":"addmod","nativeSrc":"22727:6:6","nodeType":"YulIdentifier","src":"22727:6:6"},"nativeSrc":"22727:75:6","nodeType":"YulFunctionCall","src":"22727:75:6"},"variableNames":[{"name":"s","nativeSrc":"22722:1:6","nodeType":"YulIdentifier","src":"22722:1:6"}]},{"nativeSrc":"22819:22:6","nodeType":"YulAssignment","src":"22819:22:6","value":{"arguments":[{"arguments":[{"name":"q","nativeSrc":"22832:1:6","nodeType":"YulIdentifier","src":"22832:1:6"},{"name":"s","nativeSrc":"22835:1:6","nodeType":"YulIdentifier","src":"22835:1:6"}],"functionName":{"name":"sub","nativeSrc":"22828:3:6","nodeType":"YulIdentifier","src":"22828:3:6"},"nativeSrc":"22828:9:6","nodeType":"YulFunctionCall","src":"22828:9:6"},{"name":"q","nativeSrc":"22839:1:6","nodeType":"YulIdentifier","src":"22839:1:6"}],"functionName":{"name":"mod","nativeSrc":"22824:3:6","nodeType":"YulIdentifier","src":"22824:3:6"},"nativeSrc":"22824:17:6","nodeType":"YulFunctionCall","src":"22824:17:6"},"variableNames":[{"name":"s","nativeSrc":"22819:1:6","nodeType":"YulIdentifier","src":"22819:1:6"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"22869:1:6","nodeType":"YulIdentifier","src":"22869:1:6"},{"name":"G1x","nativeSrc":"22872:3:6","nodeType":"YulIdentifier","src":"22872:3:6"},{"name":"G1y","nativeSrc":"22877:3:6","nodeType":"YulIdentifier","src":"22877:3:6"},{"name":"s","nativeSrc":"22882:1:6","nodeType":"YulIdentifier","src":"22882:1:6"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"22858:10:6","nodeType":"YulIdentifier","src":"22858:10:6"},"nativeSrc":"22858:26:6","nodeType":"YulFunctionCall","src":"22858:26:6"},"nativeSrc":"22858:26:6","nodeType":"YulExpressionStatement","src":"22858:26:6"},{"nativeSrc":"22969:26:6","nodeType":"YulAssignment","src":"22969:26:6","value":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22984:4:6","nodeType":"YulIdentifier","src":"22984:4:6"},{"name":"pXi","nativeSrc":"22990:3:6","nodeType":"YulIdentifier","src":"22990:3:6"}],"functionName":{"name":"add","nativeSrc":"22980:3:6","nodeType":"YulIdentifier","src":"22980:3:6"},"nativeSrc":"22980:14:6","nodeType":"YulFunctionCall","src":"22980:14:6"}],"functionName":{"name":"mload","nativeSrc":"22974:5:6","nodeType":"YulIdentifier","src":"22974:5:6"},"nativeSrc":"22974:21:6","nodeType":"YulFunctionCall","src":"22974:21:6"},"variableNames":[{"name":"s","nativeSrc":"22969:1:6","nodeType":"YulIdentifier","src":"22969:1:6"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"23022:1:6","nodeType":"YulIdentifier","src":"23022:1:6"},{"arguments":[{"name":"pProof","nativeSrc":"23029:6:6","nodeType":"YulIdentifier","src":"23029:6:6"},{"name":"pWxi","nativeSrc":"23037:4:6","nodeType":"YulIdentifier","src":"23037:4:6"}],"functionName":{"name":"add","nativeSrc":"23025:3:6","nodeType":"YulIdentifier","src":"23025:3:6"},"nativeSrc":"23025:17:6","nodeType":"YulFunctionCall","src":"23025:17:6"},{"name":"s","nativeSrc":"23044:1:6","nodeType":"YulIdentifier","src":"23044:1:6"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"23012:9:6","nodeType":"YulIdentifier","src":"23012:9:6"},"nativeSrc":"23012:34:6","nodeType":"YulFunctionCall","src":"23012:34:6"},"nativeSrc":"23012:34:6","nodeType":"YulExpressionStatement","src":"23012:34:6"},{"nativeSrc":"23064:59:6","nodeType":"YulAssignment","src":"23064:59:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23086:4:6","nodeType":"YulIdentifier","src":"23086:4:6"},{"name":"pU","nativeSrc":"23092:2:6","nodeType":"YulIdentifier","src":"23092:2:6"}],"functionName":{"name":"add","nativeSrc":"23082:3:6","nodeType":"YulIdentifier","src":"23082:3:6"},"nativeSrc":"23082:13:6","nodeType":"YulFunctionCall","src":"23082:13:6"}],"functionName":{"name":"mload","nativeSrc":"23076:5:6","nodeType":"YulIdentifier","src":"23076:5:6"},"nativeSrc":"23076:20:6","nodeType":"YulFunctionCall","src":"23076:20:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23108:4:6","nodeType":"YulIdentifier","src":"23108:4:6"},{"name":"pXi","nativeSrc":"23114:3:6","nodeType":"YulIdentifier","src":"23114:3:6"}],"functionName":{"name":"add","nativeSrc":"23104:3:6","nodeType":"YulIdentifier","src":"23104:3:6"},"nativeSrc":"23104:14:6","nodeType":"YulFunctionCall","src":"23104:14:6"}],"functionName":{"name":"mload","nativeSrc":"23098:5:6","nodeType":"YulIdentifier","src":"23098:5:6"},"nativeSrc":"23098:21:6","nodeType":"YulFunctionCall","src":"23098:21:6"},{"name":"q","nativeSrc":"23121:1:6","nodeType":"YulIdentifier","src":"23121:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"23069:6:6","nodeType":"YulIdentifier","src":"23069:6:6"},"nativeSrc":"23069:54:6","nodeType":"YulFunctionCall","src":"23069:54:6"},"variableNames":[{"name":"s","nativeSrc":"23064:1:6","nodeType":"YulIdentifier","src":"23064:1:6"}]},{"nativeSrc":"23140:21:6","nodeType":"YulAssignment","src":"23140:21:6","value":{"arguments":[{"name":"s","nativeSrc":"23152:1:6","nodeType":"YulIdentifier","src":"23152:1:6"},{"name":"w1","nativeSrc":"23155:2:6","nodeType":"YulIdentifier","src":"23155:2:6"},{"name":"q","nativeSrc":"23159:1:6","nodeType":"YulIdentifier","src":"23159:1:6"}],"functionName":{"name":"mulmod","nativeSrc":"23145:6:6","nodeType":"YulIdentifier","src":"23145:6:6"},"nativeSrc":"23145:16:6","nodeType":"YulFunctionCall","src":"23145:16:6"},"variableNames":[{"name":"s","nativeSrc":"23140:1:6","nodeType":"YulIdentifier","src":"23140:1:6"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"23188:1:6","nodeType":"YulIdentifier","src":"23188:1:6"},{"arguments":[{"name":"pProof","nativeSrc":"23195:6:6","nodeType":"YulIdentifier","src":"23195:6:6"},{"name":"pWxiw","nativeSrc":"23203:5:6","nodeType":"YulIdentifier","src":"23203:5:6"}],"functionName":{"name":"add","nativeSrc":"23191:3:6","nodeType":"YulIdentifier","src":"23191:3:6"},"nativeSrc":"23191:18:6","nodeType":"YulFunctionCall","src":"23191:18:6"},{"name":"s","nativeSrc":"23211:1:6","nodeType":"YulIdentifier","src":"23211:1:6"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"23178:9:6","nodeType":"YulIdentifier","src":"23178:9:6"},"nativeSrc":"23178:35:6","nodeType":"YulFunctionCall","src":"23178:35:6"},"nativeSrc":"23178:35:6","nodeType":"YulExpressionStatement","src":"23178:35:6"}]},"name":"calculateB1","nativeSrc":"18750:4478:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"pProof","nativeSrc":"18771:6:6","nodeType":"YulTypedName","src":"18771:6:6","type":""},{"name":"pMem","nativeSrc":"18779:4:6","nodeType":"YulTypedName","src":"18779:4:6","type":""}],"src":"18750:4478:6"},{"body":{"nativeSrc":"23290:879:6","nodeType":"YulBlock","src":"23290:879:6","statements":[{"nativeSrc":"23308:22:6","nodeType":"YulVariableDeclaration","src":"23308:22:6","value":{"arguments":[{"kind":"number","nativeSrc":"23325:4:6","nodeType":"YulLiteral","src":"23325:4:6","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"23319:5:6","nodeType":"YulIdentifier","src":"23319:5:6"},"nativeSrc":"23319:11:6","nodeType":"YulFunctionCall","src":"23319:11:6"},"variables":[{"name":"mIn","nativeSrc":"23312:3:6","nodeType":"YulTypedName","src":"23312:3:6","type":""}]},{"expression":{"arguments":[{"name":"mIn","nativeSrc":"23354:3:6","nodeType":"YulIdentifier","src":"23354:3:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23369:4:6","nodeType":"YulIdentifier","src":"23369:4:6"},{"name":"pA1","nativeSrc":"23375:3:6","nodeType":"YulIdentifier","src":"23375:3:6"}],"functionName":{"name":"add","nativeSrc":"23365:3:6","nodeType":"YulIdentifier","src":"23365:3:6"},"nativeSrc":"23365:14:6","nodeType":"YulFunctionCall","src":"23365:14:6"}],"functionName":{"name":"mload","nativeSrc":"23359:5:6","nodeType":"YulIdentifier","src":"23359:5:6"},"nativeSrc":"23359:21:6","nodeType":"YulFunctionCall","src":"23359:21:6"}],"functionName":{"name":"mstore","nativeSrc":"23347:6:6","nodeType":"YulIdentifier","src":"23347:6:6"},"nativeSrc":"23347:34:6","nodeType":"YulFunctionCall","src":"23347:34:6"},"nativeSrc":"23347:34:6","nodeType":"YulExpressionStatement","src":"23347:34:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23409:3:6","nodeType":"YulIdentifier","src":"23409:3:6"},{"kind":"number","nativeSrc":"23413:2:6","nodeType":"YulLiteral","src":"23413:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23405:3:6","nodeType":"YulIdentifier","src":"23405:3:6"},"nativeSrc":"23405:11:6","nodeType":"YulFunctionCall","src":"23405:11:6"},{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23432:4:6","nodeType":"YulIdentifier","src":"23432:4:6"},{"name":"pA1","nativeSrc":"23438:3:6","nodeType":"YulIdentifier","src":"23438:3:6"}],"functionName":{"name":"add","nativeSrc":"23428:3:6","nodeType":"YulIdentifier","src":"23428:3:6"},"nativeSrc":"23428:14:6","nodeType":"YulFunctionCall","src":"23428:14:6"},{"kind":"number","nativeSrc":"23444:2:6","nodeType":"YulLiteral","src":"23444:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23424:3:6","nodeType":"YulIdentifier","src":"23424:3:6"},"nativeSrc":"23424:23:6","nodeType":"YulFunctionCall","src":"23424:23:6"}],"functionName":{"name":"mload","nativeSrc":"23418:5:6","nodeType":"YulIdentifier","src":"23418:5:6"},"nativeSrc":"23418:30:6","nodeType":"YulFunctionCall","src":"23418:30:6"}],"functionName":{"name":"mstore","nativeSrc":"23398:6:6","nodeType":"YulIdentifier","src":"23398:6:6"},"nativeSrc":"23398:51:6","nodeType":"YulFunctionCall","src":"23398:51:6"},"nativeSrc":"23398:51:6","nodeType":"YulExpressionStatement","src":"23398:51:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23477:3:6","nodeType":"YulIdentifier","src":"23477:3:6"},{"kind":"number","nativeSrc":"23481:2:6","nodeType":"YulLiteral","src":"23481:2:6","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23473:3:6","nodeType":"YulIdentifier","src":"23473:3:6"},"nativeSrc":"23473:11:6","nodeType":"YulFunctionCall","src":"23473:11:6"},{"name":"X2x2","nativeSrc":"23486:4:6","nodeType":"YulIdentifier","src":"23486:4:6"}],"functionName":{"name":"mstore","nativeSrc":"23466:6:6","nodeType":"YulIdentifier","src":"23466:6:6"},"nativeSrc":"23466:25:6","nodeType":"YulFunctionCall","src":"23466:25:6"},"nativeSrc":"23466:25:6","nodeType":"YulExpressionStatement","src":"23466:25:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23519:3:6","nodeType":"YulIdentifier","src":"23519:3:6"},{"kind":"number","nativeSrc":"23523:2:6","nodeType":"YulLiteral","src":"23523:2:6","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23515:3:6","nodeType":"YulIdentifier","src":"23515:3:6"},"nativeSrc":"23515:11:6","nodeType":"YulFunctionCall","src":"23515:11:6"},{"name":"X2x1","nativeSrc":"23528:4:6","nodeType":"YulIdentifier","src":"23528:4:6"}],"functionName":{"name":"mstore","nativeSrc":"23508:6:6","nodeType":"YulIdentifier","src":"23508:6:6"},"nativeSrc":"23508:25:6","nodeType":"YulFunctionCall","src":"23508:25:6"},"nativeSrc":"23508:25:6","nodeType":"YulExpressionStatement","src":"23508:25:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23561:3:6","nodeType":"YulIdentifier","src":"23561:3:6"},{"kind":"number","nativeSrc":"23565:3:6","nodeType":"YulLiteral","src":"23565:3:6","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23557:3:6","nodeType":"YulIdentifier","src":"23557:3:6"},"nativeSrc":"23557:12:6","nodeType":"YulFunctionCall","src":"23557:12:6"},{"name":"X2y2","nativeSrc":"23571:4:6","nodeType":"YulIdentifier","src":"23571:4:6"}],"functionName":{"name":"mstore","nativeSrc":"23550:6:6","nodeType":"YulIdentifier","src":"23550:6:6"},"nativeSrc":"23550:26:6","nodeType":"YulFunctionCall","src":"23550:26:6"},"nativeSrc":"23550:26:6","nodeType":"YulExpressionStatement","src":"23550:26:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23604:3:6","nodeType":"YulIdentifier","src":"23604:3:6"},{"kind":"number","nativeSrc":"23608:3:6","nodeType":"YulLiteral","src":"23608:3:6","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"23600:3:6","nodeType":"YulIdentifier","src":"23600:3:6"},"nativeSrc":"23600:12:6","nodeType":"YulFunctionCall","src":"23600:12:6"},{"name":"X2y1","nativeSrc":"23614:4:6","nodeType":"YulIdentifier","src":"23614:4:6"}],"functionName":{"name":"mstore","nativeSrc":"23593:6:6","nodeType":"YulIdentifier","src":"23593:6:6"},"nativeSrc":"23593:26:6","nodeType":"YulFunctionCall","src":"23593:26:6"},"nativeSrc":"23593:26:6","nodeType":"YulExpressionStatement","src":"23593:26:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23647:3:6","nodeType":"YulIdentifier","src":"23647:3:6"},{"kind":"number","nativeSrc":"23651:3:6","nodeType":"YulLiteral","src":"23651:3:6","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"23643:3:6","nodeType":"YulIdentifier","src":"23643:3:6"},"nativeSrc":"23643:12:6","nodeType":"YulFunctionCall","src":"23643:12:6"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23667:4:6","nodeType":"YulIdentifier","src":"23667:4:6"},{"name":"pB1","nativeSrc":"23673:3:6","nodeType":"YulIdentifier","src":"23673:3:6"}],"functionName":{"name":"add","nativeSrc":"23663:3:6","nodeType":"YulIdentifier","src":"23663:3:6"},"nativeSrc":"23663:14:6","nodeType":"YulFunctionCall","src":"23663:14:6"}],"functionName":{"name":"mload","nativeSrc":"23657:5:6","nodeType":"YulIdentifier","src":"23657:5:6"},"nativeSrc":"23657:21:6","nodeType":"YulFunctionCall","src":"23657:21:6"}],"functionName":{"name":"mstore","nativeSrc":"23636:6:6","nodeType":"YulIdentifier","src":"23636:6:6"},"nativeSrc":"23636:43:6","nodeType":"YulFunctionCall","src":"23636:43:6"},"nativeSrc":"23636:43:6","nodeType":"YulExpressionStatement","src":"23636:43:6"},{"nativeSrc":"23696:39:6","nodeType":"YulVariableDeclaration","src":"23696:39:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23719:4:6","nodeType":"YulIdentifier","src":"23719:4:6"},{"name":"pB1","nativeSrc":"23725:3:6","nodeType":"YulIdentifier","src":"23725:3:6"}],"functionName":{"name":"add","nativeSrc":"23715:3:6","nodeType":"YulIdentifier","src":"23715:3:6"},"nativeSrc":"23715:14:6","nodeType":"YulFunctionCall","src":"23715:14:6"},{"kind":"number","nativeSrc":"23731:2:6","nodeType":"YulLiteral","src":"23731:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23711:3:6","nodeType":"YulIdentifier","src":"23711:3:6"},"nativeSrc":"23711:23:6","nodeType":"YulFunctionCall","src":"23711:23:6"}],"functionName":{"name":"mload","nativeSrc":"23705:5:6","nodeType":"YulIdentifier","src":"23705:5:6"},"nativeSrc":"23705:30:6","nodeType":"YulFunctionCall","src":"23705:30:6"},"variables":[{"name":"s","nativeSrc":"23700:1:6","nodeType":"YulTypedName","src":"23700:1:6","type":""}]},{"nativeSrc":"23752:24:6","nodeType":"YulAssignment","src":"23752:24:6","value":{"arguments":[{"arguments":[{"name":"qf","nativeSrc":"23765:2:6","nodeType":"YulIdentifier","src":"23765:2:6"},{"name":"s","nativeSrc":"23769:1:6","nodeType":"YulIdentifier","src":"23769:1:6"}],"functionName":{"name":"sub","nativeSrc":"23761:3:6","nodeType":"YulIdentifier","src":"23761:3:6"},"nativeSrc":"23761:10:6","nodeType":"YulFunctionCall","src":"23761:10:6"},{"name":"qf","nativeSrc":"23773:2:6","nodeType":"YulIdentifier","src":"23773:2:6"}],"functionName":{"name":"mod","nativeSrc":"23757:3:6","nodeType":"YulIdentifier","src":"23757:3:6"},"nativeSrc":"23757:19:6","nodeType":"YulFunctionCall","src":"23757:19:6"},"variableNames":[{"name":"s","nativeSrc":"23752:1:6","nodeType":"YulIdentifier","src":"23752:1:6"}]},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23804:3:6","nodeType":"YulIdentifier","src":"23804:3:6"},{"kind":"number","nativeSrc":"23808:3:6","nodeType":"YulLiteral","src":"23808:3:6","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"23800:3:6","nodeType":"YulIdentifier","src":"23800:3:6"},"nativeSrc":"23800:12:6","nodeType":"YulFunctionCall","src":"23800:12:6"},{"name":"s","nativeSrc":"23814:1:6","nodeType":"YulIdentifier","src":"23814:1:6"}],"functionName":{"name":"mstore","nativeSrc":"23793:6:6","nodeType":"YulIdentifier","src":"23793:6:6"},"nativeSrc":"23793:23:6","nodeType":"YulFunctionCall","src":"23793:23:6"},"nativeSrc":"23793:23:6","nodeType":"YulExpressionStatement","src":"23793:23:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23844:3:6","nodeType":"YulIdentifier","src":"23844:3:6"},{"kind":"number","nativeSrc":"23848:3:6","nodeType":"YulLiteral","src":"23848:3:6","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"23840:3:6","nodeType":"YulIdentifier","src":"23840:3:6"},"nativeSrc":"23840:12:6","nodeType":"YulFunctionCall","src":"23840:12:6"},{"name":"G2x2","nativeSrc":"23854:4:6","nodeType":"YulIdentifier","src":"23854:4:6"}],"functionName":{"name":"mstore","nativeSrc":"23833:6:6","nodeType":"YulIdentifier","src":"23833:6:6"},"nativeSrc":"23833:26:6","nodeType":"YulFunctionCall","src":"23833:26:6"},"nativeSrc":"23833:26:6","nodeType":"YulExpressionStatement","src":"23833:26:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23887:3:6","nodeType":"YulIdentifier","src":"23887:3:6"},{"kind":"number","nativeSrc":"23891:3:6","nodeType":"YulLiteral","src":"23891:3:6","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"23883:3:6","nodeType":"YulIdentifier","src":"23883:3:6"},"nativeSrc":"23883:12:6","nodeType":"YulFunctionCall","src":"23883:12:6"},{"name":"G2x1","nativeSrc":"23897:4:6","nodeType":"YulIdentifier","src":"23897:4:6"}],"functionName":{"name":"mstore","nativeSrc":"23876:6:6","nodeType":"YulIdentifier","src":"23876:6:6"},"nativeSrc":"23876:26:6","nodeType":"YulFunctionCall","src":"23876:26:6"},"nativeSrc":"23876:26:6","nodeType":"YulExpressionStatement","src":"23876:26:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23930:3:6","nodeType":"YulIdentifier","src":"23930:3:6"},{"kind":"number","nativeSrc":"23934:3:6","nodeType":"YulLiteral","src":"23934:3:6","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"23926:3:6","nodeType":"YulIdentifier","src":"23926:3:6"},"nativeSrc":"23926:12:6","nodeType":"YulFunctionCall","src":"23926:12:6"},{"name":"G2y2","nativeSrc":"23940:4:6","nodeType":"YulIdentifier","src":"23940:4:6"}],"functionName":{"name":"mstore","nativeSrc":"23919:6:6","nodeType":"YulIdentifier","src":"23919:6:6"},"nativeSrc":"23919:26:6","nodeType":"YulFunctionCall","src":"23919:26:6"},"nativeSrc":"23919:26:6","nodeType":"YulExpressionStatement","src":"23919:26:6"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23973:3:6","nodeType":"YulIdentifier","src":"23973:3:6"},{"kind":"number","nativeSrc":"23977:3:6","nodeType":"YulLiteral","src":"23977:3:6","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"23969:3:6","nodeType":"YulIdentifier","src":"23969:3:6"},"nativeSrc":"23969:12:6","nodeType":"YulFunctionCall","src":"23969:12:6"},{"name":"G2y1","nativeSrc":"23983:4:6","nodeType":"YulIdentifier","src":"23983:4:6"}],"functionName":{"name":"mstore","nativeSrc":"23962:6:6","nodeType":"YulIdentifier","src":"23962:6:6"},"nativeSrc":"23962:26:6","nodeType":"YulFunctionCall","src":"23962:26:6"},"nativeSrc":"23962:26:6","nodeType":"YulExpressionStatement","src":"23962:26:6"},{"nativeSrc":"24022:67:6","nodeType":"YulVariableDeclaration","src":"24022:67:6","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"24052:3:6","nodeType":"YulIdentifier","src":"24052:3:6"},"nativeSrc":"24052:5:6","nodeType":"YulFunctionCall","src":"24052:5:6"},{"kind":"number","nativeSrc":"24059:4:6","nodeType":"YulLiteral","src":"24059:4:6","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"24048:3:6","nodeType":"YulIdentifier","src":"24048:3:6"},"nativeSrc":"24048:16:6","nodeType":"YulFunctionCall","src":"24048:16:6"},{"kind":"number","nativeSrc":"24066:1:6","nodeType":"YulLiteral","src":"24066:1:6","type":"","value":"8"},{"name":"mIn","nativeSrc":"24069:3:6","nodeType":"YulIdentifier","src":"24069:3:6"},{"kind":"number","nativeSrc":"24074:3:6","nodeType":"YulLiteral","src":"24074:3:6","type":"","value":"384"},{"name":"mIn","nativeSrc":"24079:3:6","nodeType":"YulIdentifier","src":"24079:3:6"},{"kind":"number","nativeSrc":"24084:4:6","nodeType":"YulLiteral","src":"24084:4:6","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"24037:10:6","nodeType":"YulIdentifier","src":"24037:10:6"},"nativeSrc":"24037:52:6","nodeType":"YulFunctionCall","src":"24037:52:6"},"variables":[{"name":"success","nativeSrc":"24026:7:6","nodeType":"YulTypedName","src":"24026:7:6","type":""}]},{"nativeSrc":"24123:32:6","nodeType":"YulAssignment","src":"24123:32:6","value":{"arguments":[{"name":"success","nativeSrc":"24135:7:6","nodeType":"YulIdentifier","src":"24135:7:6"},{"arguments":[{"name":"mIn","nativeSrc":"24150:3:6","nodeType":"YulIdentifier","src":"24150:3:6"}],"functionName":{"name":"mload","nativeSrc":"24144:5:6","nodeType":"YulIdentifier","src":"24144:5:6"},"nativeSrc":"24144:10:6","nodeType":"YulFunctionCall","src":"24144:10:6"}],"functionName":{"name":"and","nativeSrc":"24131:3:6","nodeType":"YulIdentifier","src":"24131:3:6"},"nativeSrc":"24131:24:6","nodeType":"YulFunctionCall","src":"24131:24:6"},"variableNames":[{"name":"isOk","nativeSrc":"24123:4:6","nodeType":"YulIdentifier","src":"24123:4:6"}]}]},"name":"checkPairing","nativeSrc":"23254:915:6","nodeType":"YulFunctionDefinition","parameters":[{"name":"pMem","nativeSrc":"23276:4:6","nodeType":"YulTypedName","src":"23276:4:6","type":""}],"returnVariables":[{"name":"isOk","nativeSrc":"23285:4:6","nodeType":"YulTypedName","src":"23285:4:6","type":""}],"src":"23254:915:6"},{"nativeSrc":"24195:23:6","nodeType":"YulVariableDeclaration","src":"24195:23:6","value":{"arguments":[{"kind":"number","nativeSrc":"24213:4:6","nodeType":"YulLiteral","src":"24213:4:6","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"24207:5:6","nodeType":"YulIdentifier","src":"24207:5:6"},"nativeSrc":"24207:11:6","nodeType":"YulFunctionCall","src":"24207:11:6"},"variables":[{"name":"pMem","nativeSrc":"24199:4:6","nodeType":"YulTypedName","src":"24199:4:6","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24238:4:6","nodeType":"YulLiteral","src":"24238:4:6","type":"","value":"0x40"},{"arguments":[{"name":"pMem","nativeSrc":"24248:4:6","nodeType":"YulIdentifier","src":"24248:4:6"},{"name":"lastMem","nativeSrc":"24254:7:6","nodeType":"YulIdentifier","src":"24254:7:6"}],"functionName":{"name":"add","nativeSrc":"24244:3:6","nodeType":"YulIdentifier","src":"24244:3:6"},"nativeSrc":"24244:18:6","nodeType":"YulFunctionCall","src":"24244:18:6"}],"functionName":{"name":"mstore","nativeSrc":"24231:6:6","nodeType":"YulIdentifier","src":"24231:6:6"},"nativeSrc":"24231:32:6","nodeType":"YulFunctionCall","src":"24231:32:6"},"nativeSrc":"24231:32:6","nodeType":"YulExpressionStatement","src":"24231:32:6"},{"expression":{"arguments":[{"name":"proof","nativeSrc":"24300:5:6","nodeType":"YulIdentifier","src":"24300:5:6"}],"functionName":{"name":"checkInput","nativeSrc":"24289:10:6","nodeType":"YulIdentifier","src":"24289:10:6"},"nativeSrc":"24289:17:6","nodeType":"YulFunctionCall","src":"24289:17:6"},"nativeSrc":"24289:17:6","nodeType":"YulExpressionStatement","src":"24289:17:6"},{"expression":{"arguments":[{"name":"proof","nativeSrc":"24339:5:6","nodeType":"YulIdentifier","src":"24339:5:6"},{"name":"pMem","nativeSrc":"24346:4:6","nodeType":"YulIdentifier","src":"24346:4:6"},{"name":"pubSignals","nativeSrc":"24352:10:6","nodeType":"YulIdentifier","src":"24352:10:6"}],"functionName":{"name":"calculateChallanges","nativeSrc":"24319:19:6","nodeType":"YulIdentifier","src":"24319:19:6"},"nativeSrc":"24319:44:6","nodeType":"YulFunctionCall","src":"24319:44:6"},"nativeSrc":"24319:44:6","nodeType":"YulExpressionStatement","src":"24319:44:6"},{"expression":{"arguments":[{"name":"pMem","nativeSrc":"24394:4:6","nodeType":"YulIdentifier","src":"24394:4:6"}],"functionName":{"name":"calculateLagrange","nativeSrc":"24376:17:6","nodeType":"YulIdentifier","src":"24376:17:6"},"nativeSrc":"24376:23:6","nodeType":"YulFunctionCall","src":"24376:23:6"},"nativeSrc":"24376:23:6","nodeType":"YulExpressionStatement","src":"24376:23:6"},{"expression":{"arguments":[{"name":"pMem","nativeSrc":"24424:4:6","nodeType":"YulIdentifier","src":"24424:4:6"},{"name":"pubSignals","nativeSrc":"24430:10:6","nodeType":"YulIdentifier","src":"24430:10:6"}],"functionName":{"name":"calculatePl","nativeSrc":"24412:11:6","nodeType":"YulIdentifier","src":"24412:11:6"},"nativeSrc":"24412:29:6","nodeType":"YulFunctionCall","src":"24412:29:6"},"nativeSrc":"24412:29:6","nodeType":"YulExpressionStatement","src":"24412:29:6"},{"expression":{"arguments":[{"name":"proof","nativeSrc":"24465:5:6","nodeType":"YulIdentifier","src":"24465:5:6"},{"name":"pMem","nativeSrc":"24472:4:6","nodeType":"YulIdentifier","src":"24472:4:6"}],"functionName":{"name":"calculateT","nativeSrc":"24454:10:6","nodeType":"YulIdentifier","src":"24454:10:6"},"nativeSrc":"24454:23:6","nodeType":"YulFunctionCall","src":"24454:23:6"},"nativeSrc":"24454:23:6","nodeType":"YulExpressionStatement","src":"24454:23:6"},{"expression":{"arguments":[{"name":"proof","nativeSrc":"24502:5:6","nodeType":"YulIdentifier","src":"24502:5:6"},{"name":"pMem","nativeSrc":"24509:4:6","nodeType":"YulIdentifier","src":"24509:4:6"}],"functionName":{"name":"calculateA1","nativeSrc":"24490:11:6","nodeType":"YulIdentifier","src":"24490:11:6"},"nativeSrc":"24490:24:6","nodeType":"YulFunctionCall","src":"24490:24:6"},"nativeSrc":"24490:24:6","nodeType":"YulExpressionStatement","src":"24490:24:6"},{"expression":{"arguments":[{"name":"proof","nativeSrc":"24539:5:6","nodeType":"YulIdentifier","src":"24539:5:6"},{"name":"pMem","nativeSrc":"24546:4:6","nodeType":"YulIdentifier","src":"24546:4:6"}],"functionName":{"name":"calculateB1","nativeSrc":"24527:11:6","nodeType":"YulIdentifier","src":"24527:11:6"},"nativeSrc":"24527:24:6","nodeType":"YulFunctionCall","src":"24527:24:6"},"nativeSrc":"24527:24:6","nodeType":"YulExpressionStatement","src":"24527:24:6"},{"nativeSrc":"24564:33:6","nodeType":"YulVariableDeclaration","src":"24564:33:6","value":{"arguments":[{"name":"pMem","nativeSrc":"24592:4:6","nodeType":"YulIdentifier","src":"24592:4:6"}],"functionName":{"name":"checkPairing","nativeSrc":"24579:12:6","nodeType":"YulIdentifier","src":"24579:12:6"},"nativeSrc":"24579:18:6","nodeType":"YulFunctionCall","src":"24579:18:6"},"variables":[{"name":"isValid","nativeSrc":"24568:7:6","nodeType":"YulTypedName","src":"24568:7:6","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24630:4:6","nodeType":"YulLiteral","src":"24630:4:6","type":"","value":"0x40"},{"arguments":[{"name":"pMem","nativeSrc":"24640:4:6","nodeType":"YulIdentifier","src":"24640:4:6"},{"name":"lastMem","nativeSrc":"24646:7:6","nodeType":"YulIdentifier","src":"24646:7:6"}],"functionName":{"name":"sub","nativeSrc":"24636:3:6","nodeType":"YulIdentifier","src":"24636:3:6"},"nativeSrc":"24636:18:6","nodeType":"YulFunctionCall","src":"24636:18:6"}],"functionName":{"name":"mstore","nativeSrc":"24623:6:6","nodeType":"YulIdentifier","src":"24623:6:6"},"nativeSrc":"24623:32:6","nodeType":"YulFunctionCall","src":"24623:32:6"},"nativeSrc":"24623:32:6","nodeType":"YulExpressionStatement","src":"24623:32:6"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24675:1:6","nodeType":"YulLiteral","src":"24675:1:6","type":"","value":"0"},{"name":"isValid","nativeSrc":"24678:7:6","nodeType":"YulIdentifier","src":"24678:7:6"}],"functionName":{"name":"mstore","nativeSrc":"24668:6:6","nodeType":"YulIdentifier","src":"24668:6:6"},"nativeSrc":"24668:18:6","nodeType":"YulFunctionCall","src":"24668:18:6"},"nativeSrc":"24668:18:6","nodeType":"YulExpressionStatement","src":"24668:18:6"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24706:1:6","nodeType":"YulLiteral","src":"24706:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"24708:4:6","nodeType":"YulLiteral","src":"24708:4:6","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"24699:6:6","nodeType":"YulIdentifier","src":"24699:6:6"},"nativeSrc":"24699:14:6","nodeType":"YulFunctionCall","src":"24699:14:6"},"nativeSrc":"24699:14:6","nodeType":"YulExpressionStatement","src":"24699:14:6"}]},"evmVersion":"paris","externalReferences":[{"declaration":677,"isOffset":false,"isSlot":false,"src":"22872:3:6","valueSize":1},{"declaration":680,"isOffset":false,"isSlot":false,"src":"22877:3:6","valueSize":1},{"declaration":683,"isOffset":false,"isSlot":false,"src":"23897:4:6","valueSize":1},{"declaration":686,"isOffset":false,"isSlot":false,"src":"23854:4:6","valueSize":1},{"declaration":689,"isOffset":false,"isSlot":false,"src":"23983:4:6","valueSize":1},{"declaration":692,"isOffset":false,"isSlot":false,"src":"23940:4:6","valueSize":1},{"declaration":626,"isOffset":false,"isSlot":false,"src":"19516:3:6","valueSize":1},{"declaration":629,"isOffset":false,"isSlot":false,"src":"19521:3:6","valueSize":1},{"declaration":608,"isOffset":false,"isSlot":false,"src":"19034:3:6","valueSize":1},{"declaration":611,"isOffset":false,"isSlot":false,"src":"19039:3:6","valueSize":1},{"declaration":602,"isOffset":false,"isSlot":false,"src":"19158:3:6","valueSize":1},{"declaration":605,"isOffset":false,"isSlot":false,"src":"19163:3:6","valueSize":1},{"declaration":620,"isOffset":false,"isSlot":false,"src":"19430:3:6","valueSize":1},{"declaration":623,"isOffset":false,"isSlot":false,"src":"19435:3:6","valueSize":1},{"declaration":614,"isOffset":false,"isSlot":false,"src":"19286:3:6","valueSize":1},{"declaration":617,"isOffset":false,"isSlot":false,"src":"19291:3:6","valueSize":1},{"declaration":632,"isOffset":false,"isSlot":false,"src":"21931:3:6","valueSize":1},{"declaration":635,"isOffset":false,"isSlot":false,"src":"21936:3:6","valueSize":1},{"declaration":638,"isOffset":false,"isSlot":false,"src":"21994:3:6","valueSize":1},{"declaration":641,"isOffset":false,"isSlot":false,"src":"21999:3:6","valueSize":1},{"declaration":644,"isOffset":false,"isSlot":false,"src":"21387:3:6","valueSize":1},{"declaration":647,"isOffset":false,"isSlot":false,"src":"21392:3:6","valueSize":1},{"declaration":656,"isOffset":false,"isSlot":false,"src":"23528:4:6","valueSize":1},{"declaration":659,"isOffset":false,"isSlot":false,"src":"23486:4:6","valueSize":1},{"declaration":662,"isOffset":false,"isSlot":false,"src":"23614:4:6","valueSize":1},{"declaration":665,"isOffset":false,"isSlot":false,"src":"23571:4:6","valueSize":1},{"declaration":650,"isOffset":false,"isSlot":false,"src":"19706:2:6","valueSize":1},{"declaration":653,"isOffset":false,"isSlot":false,"src":"19934:2:6","valueSize":1},{"declaration":803,"isOffset":false,"isSlot":false,"src":"24254:7:6","valueSize":1},{"declaration":803,"isOffset":false,"isSlot":false,"src":"24646:7:6","valueSize":1},{"declaration":803,"isOffset":false,"isSlot":false,"src":"9544:7:6","valueSize":1},{"declaration":593,"isOffset":false,"isSlot":false,"src":"11892:1:6","valueSize":1},{"declaration":695,"isOffset":false,"isSlot":false,"src":"21735:2:6","valueSize":1},{"declaration":695,"isOffset":false,"isSlot":false,"src":"9099:2:6","valueSize":1},{"declaration":695,"isOffset":false,"isSlot":false,"src":"9170:2:6","valueSize":1},{"declaration":695,"isOffset":false,"isSlot":false,"src":"9245:2:6","valueSize":1},{"declaration":695,"isOffset":false,"isSlot":false,"src":"9320:2:6","valueSize":1},{"declaration":695,"isOffset":false,"isSlot":false,"src":"9395:2:6","valueSize":1},{"declaration":695,"isOffset":false,"isSlot":false,"src":"9471:2:6","valueSize":1},{"declaration":788,"isOffset":false,"isSlot":false,"src":"18577:3:6","valueSize":1},{"declaration":788,"isOffset":false,"isSlot":false,"src":"23375:3:6","valueSize":1},{"declaration":788,"isOffset":false,"isSlot":false,"src":"23438:3:6","valueSize":1},{"declaration":743,"isOffset":false,"isSlot":false,"src":"15154:6:6","valueSize":1},{"declaration":743,"isOffset":false,"isSlot":false,"src":"15299:6:6","valueSize":1},{"declaration":743,"isOffset":false,"isSlot":false,"src":"15442:6:6","valueSize":1},{"declaration":743,"isOffset":false,"isSlot":false,"src":"20180:6:6","valueSize":1},{"declaration":743,"isOffset":false,"isSlot":false,"src":"20323:6:6","valueSize":1},{"declaration":743,"isOffset":false,"isSlot":false,"src":"20385:6:6","valueSize":1},{"declaration":743,"isOffset":false,"isSlot":false,"src":"21125:6:6","valueSize":1},{"declaration":743,"isOffset":false,"isSlot":false,"src":"9727:6:6","valueSize":1},{"declaration":698,"isOffset":false,"isSlot":false,"src":"21804:2:6","valueSize":1},{"declaration":791,"isOffset":false,"isSlot":false,"src":"18867:3:6","valueSize":1},{"declaration":791,"isOffset":false,"isSlot":false,"src":"23673:3:6","valueSize":1},{"declaration":791,"isOffset":false,"isSlot":false,"src":"23725:3:6","valueSize":1},{"declaration":746,"isOffset":false,"isSlot":false,"src":"13942:5:6","valueSize":1},{"declaration":746,"isOffset":false,"isSlot":false,"src":"14409:5:6","valueSize":1},{"declaration":746,"isOffset":false,"isSlot":false,"src":"20661:5:6","valueSize":1},{"declaration":746,"isOffset":false,"isSlot":false,"src":"20871:5:6","valueSize":1},{"declaration":746,"isOffset":false,"isSlot":false,"src":"21242:5:6","valueSize":1},{"declaration":746,"isOffset":false,"isSlot":false,"src":"9598:5:6","valueSize":1},{"declaration":746,"isOffset":false,"isSlot":false,"src":"9676:5:6","valueSize":1},{"declaration":758,"isOffset":false,"isSlot":false,"src":"19603:7:6","valueSize":1},{"declaration":758,"isOffset":false,"isSlot":false,"src":"19726:7:6","valueSize":1},{"declaration":758,"isOffset":false,"isSlot":false,"src":"19954:7:6","valueSize":1},{"declaration":758,"isOffset":false,"isSlot":false,"src":"9932:7:6","valueSize":1},{"declaration":701,"isOffset":false,"isSlot":false,"src":"21873:2:6","valueSize":1},{"declaration":722,"isOffset":false,"isSlot":false,"src":"11071:7:6","valueSize":1},{"declaration":722,"isOffset":false,"isSlot":false,"src":"14084:7:6","valueSize":1},{"declaration":722,"isOffset":false,"isSlot":false,"src":"18967:7:6","valueSize":1},{"declaration":722,"isOffset":false,"isSlot":false,"src":"19576:7:6","valueSize":1},{"declaration":722,"isOffset":false,"isSlot":false,"src":"20752:7:6","valueSize":1},{"declaration":722,"isOffset":false,"isSlot":false,"src":"22275:7:6","valueSize":1},{"declaration":722,"isOffset":false,"isSlot":false,"src":"8344:7:6","valueSize":1},{"declaration":725,"isOffset":false,"isSlot":false,"src":"14551:7:6","valueSize":1},{"declaration":725,"isOffset":false,"isSlot":false,"src":"19098:7:6","valueSize":1},{"declaration":725,"isOffset":false,"isSlot":false,"src":"19219:7:6","valueSize":1},{"declaration":725,"isOffset":false,"isSlot":false,"src":"19791:7:6","valueSize":1},{"declaration":725,"isOffset":false,"isSlot":false,"src":"20964:7:6","valueSize":1},{"declaration":725,"isOffset":false,"isSlot":false,"src":"22372:7:6","valueSize":1},{"declaration":725,"isOffset":false,"isSlot":false,"src":"8400:7:6","valueSize":1},{"declaration":728,"isOffset":false,"isSlot":false,"src":"14901:7:6","valueSize":1},{"declaration":728,"isOffset":false,"isSlot":false,"src":"19363:7:6","valueSize":1},{"declaration":728,"isOffset":false,"isSlot":false,"src":"20019:7:6","valueSize":1},{"declaration":728,"isOffset":false,"isSlot":false,"src":"22469:7:6","valueSize":1},{"declaration":728,"isOffset":false,"isSlot":false,"src":"8456:7:6","valueSize":1},{"declaration":800,"isOffset":false,"isSlot":false,"src":"11828:8:6","valueSize":1},{"declaration":800,"isOffset":false,"isSlot":false,"src":"12597:8:6","valueSize":1},{"declaration":800,"isOffset":false,"isSlot":false,"src":"12678:8:6","valueSize":1},{"declaration":800,"isOffset":false,"isSlot":false,"src":"13174:8:6","valueSize":1},{"declaration":800,"isOffset":false,"isSlot":false,"src":"15250:8:6","valueSize":1},{"declaration":800,"isOffset":false,"isSlot":false,"src":"20295:8:6","valueSize":1},{"declaration":740,"isOffset":false,"isSlot":false,"src":"13713:7:6","valueSize":1},{"declaration":740,"isOffset":false,"isSlot":false,"src":"22178:7:6","valueSize":1},{"declaration":740,"isOffset":false,"isSlot":false,"src":"8683:7:6","valueSize":1},{"declaration":731,"isOffset":false,"isSlot":false,"src":"13894:8:6","valueSize":1},{"declaration":731,"isOffset":false,"isSlot":false,"src":"20688:8:6","valueSize":1},{"declaration":731,"isOffset":false,"isSlot":false,"src":"22566:8:6","valueSize":1},{"declaration":731,"isOffset":false,"isSlot":false,"src":"8512:8:6","valueSize":1},{"declaration":734,"isOffset":false,"isSlot":false,"src":"14361:8:6","valueSize":1},{"declaration":734,"isOffset":false,"isSlot":false,"src":"20898:8:6","valueSize":1},{"declaration":734,"isOffset":false,"isSlot":false,"src":"22664:8:6","valueSize":1},{"declaration":734,"isOffset":false,"isSlot":false,"src":"8569:8:6","valueSize":1},{"declaration":785,"isOffset":false,"isSlot":false,"src":"15710:7:6","valueSize":1},{"declaration":785,"isOffset":false,"isSlot":false,"src":"22112:7:6","valueSize":1},{"declaration":737,"isOffset":false,"isSlot":false,"src":"15090:8:6","valueSize":1},{"declaration":737,"isOffset":false,"isSlot":false,"src":"21303:8:6","valueSize":1},{"declaration":737,"isOffset":false,"isSlot":false,"src":"22762:8:6","valueSize":1},{"declaration":737,"isOffset":false,"isSlot":false,"src":"8626:8:6","valueSize":1},{"declaration":749,"isOffset":false,"isSlot":false,"src":"14242:6:6","valueSize":1},{"declaration":749,"isOffset":false,"isSlot":false,"src":"14709:6:6","valueSize":1},{"declaration":749,"isOffset":false,"isSlot":false,"src":"14948:6:6","valueSize":1},{"declaration":749,"isOffset":false,"isSlot":false,"src":"19664:6:6","valueSize":1},{"declaration":749,"isOffset":false,"isSlot":false,"src":"19854:6:6","valueSize":1},{"declaration":749,"isOffset":false,"isSlot":false,"src":"20082:6:6","valueSize":1},{"declaration":749,"isOffset":false,"isSlot":false,"src":"20813:6:6","valueSize":1},{"declaration":749,"isOffset":false,"isSlot":false,"src":"21027:6:6","valueSize":1},{"declaration":749,"isOffset":false,"isSlot":false,"src":"9643:6:6","valueSize":1},{"declaration":782,"isOffset":false,"isSlot":false,"src":"13487:3:6","valueSize":1},{"declaration":782,"isOffset":false,"isSlot":false,"src":"13761:3:6","valueSize":1},{"declaration":707,"isOffset":false,"isSlot":false,"src":"21472:3:6","valueSize":1},{"declaration":707,"isOffset":false,"isSlot":false,"src":"9840:3:6","valueSize":1},{"declaration":710,"isOffset":false,"isSlot":false,"src":"21564:3:6","valueSize":1},{"declaration":713,"isOffset":false,"isSlot":false,"src":"21668:3:6","valueSize":1},{"declaration":779,"isOffset":false,"isSlot":false,"src":"11591:2:6","valueSize":1},{"declaration":779,"isOffset":false,"isSlot":false,"src":"18692:2:6","valueSize":1},{"declaration":779,"isOffset":false,"isSlot":false,"src":"20542:2:6","valueSize":1},{"declaration":779,"isOffset":false,"isSlot":false,"src":"22790:2:6","valueSize":1},{"declaration":779,"isOffset":false,"isSlot":false,"src":"23092:2:6","valueSize":1},{"declaration":761,"isOffset":false,"isSlot":false,"src":"11124:3:6","valueSize":1},{"declaration":761,"isOffset":false,"isSlot":false,"src":"18994:3:6","valueSize":1},{"declaration":761,"isOffset":false,"isSlot":false,"src":"19246:3:6","valueSize":1},{"declaration":761,"isOffset":false,"isSlot":false,"src":"19390:3:6","valueSize":1},{"declaration":761,"isOffset":false,"isSlot":false,"src":"19480:3:6","valueSize":1},{"declaration":761,"isOffset":false,"isSlot":false,"src":"20240:3:6","valueSize":1},{"declaration":761,"isOffset":false,"isSlot":false,"src":"20447:3:6","valueSize":1},{"declaration":761,"isOffset":false,"isSlot":false,"src":"21185:3:6","valueSize":1},{"declaration":761,"isOffset":false,"isSlot":false,"src":"22205:3:6","valueSize":1},{"declaration":764,"isOffset":false,"isSlot":false,"src":"11207:3:6","valueSize":1},{"declaration":764,"isOffset":false,"isSlot":false,"src":"21756:3:6","valueSize":1},{"declaration":764,"isOffset":false,"isSlot":false,"src":"22302:3:6","valueSize":1},{"declaration":767,"isOffset":false,"isSlot":false,"src":"11288:3:6","valueSize":1},{"declaration":767,"isOffset":false,"isSlot":false,"src":"21825:3:6","valueSize":1},{"declaration":767,"isOffset":false,"isSlot":false,"src":"22399:3:6","valueSize":1},{"declaration":770,"isOffset":false,"isSlot":false,"src":"11369:3:6","valueSize":1},{"declaration":770,"isOffset":false,"isSlot":false,"src":"21894:3:6","valueSize":1},{"declaration":770,"isOffset":false,"isSlot":false,"src":"22496:3:6","valueSize":1},{"declaration":773,"isOffset":false,"isSlot":false,"src":"11450:3:6","valueSize":1},{"declaration":773,"isOffset":false,"isSlot":false,"src":"21957:3:6","valueSize":1},{"declaration":773,"isOffset":false,"isSlot":false,"src":"22594:3:6","valueSize":1},{"declaration":776,"isOffset":false,"isSlot":false,"src":"11531:3:6","valueSize":1},{"declaration":776,"isOffset":false,"isSlot":false,"src":"22020:3:6","valueSize":1},{"declaration":776,"isOffset":false,"isSlot":false,"src":"22692:3:6","valueSize":1},{"declaration":716,"isOffset":false,"isSlot":false,"src":"11622:4:6","valueSize":1},{"declaration":716,"isOffset":false,"isSlot":false,"src":"18620:4:6","valueSize":1},{"declaration":716,"isOffset":false,"isSlot":false,"src":"23037:4:6","valueSize":1},{"declaration":719,"isOffset":false,"isSlot":false,"src":"18668:5:6","valueSize":1},{"declaration":719,"isOffset":false,"isSlot":false,"src":"23203:5:6","valueSize":1},{"declaration":752,"isOffset":false,"isSlot":false,"src":"12047:3:6","valueSize":1},{"declaration":752,"isOffset":false,"isSlot":false,"src":"22990:3:6","valueSize":1},{"declaration":752,"isOffset":false,"isSlot":false,"src":"23114:3:6","valueSize":1},{"declaration":752,"isOffset":false,"isSlot":false,"src":"9889:3:6","valueSize":1},{"declaration":755,"isOffset":false,"isSlot":false,"src":"10805:4:6","valueSize":1},{"declaration":755,"isOffset":false,"isSlot":false,"src":"21516:4:6","valueSize":1},{"declaration":704,"isOffset":false,"isSlot":false,"src":"20592:2:6","valueSize":1},{"declaration":704,"isOffset":false,"isSlot":false,"src":"9762:2:6","valueSize":1},{"declaration":794,"isOffset":false,"isSlot":false,"src":"10894:3:6","valueSize":1},{"declaration":794,"isOffset":false,"isSlot":false,"src":"12480:3:6","valueSize":1},{"declaration":797,"isOffset":false,"isSlot":false,"src":"10937:6:6","valueSize":1},{"declaration":797,"isOffset":false,"isSlot":false,"src":"12408:6:6","valueSize":1},{"declaration":797,"isOffset":false,"isSlot":false,"src":"15646:6:6","valueSize":1},{"declaration":805,"isOffset":false,"isSlot":false,"src":"24300:5:6","valueSize":1},{"declaration":805,"isOffset":false,"isSlot":false,"src":"24339:5:6","valueSize":1},{"declaration":805,"isOffset":false,"isSlot":false,"src":"24465:5:6","valueSize":1},{"declaration":805,"isOffset":false,"isSlot":false,"src":"24502:5:6","valueSize":1},{"declaration":805,"isOffset":false,"isSlot":false,"src":"24539:5:6","valueSize":1},{"declaration":808,"isOffset":false,"isSlot":false,"src":"24352:10:6","valueSize":1},{"declaration":808,"isOffset":false,"isSlot":false,"src":"24430:10:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10009:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10062:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10115:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10168:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10221:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10274:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10327:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10380:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10433:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10486:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10539:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10592:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10645:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10698:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10751:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10853:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"10857:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"11087:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"11170:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"11251:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"11332:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"11413:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"11494:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"11635:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"12161:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"12222:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"12276:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"12743:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"13272:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"13355:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"13400:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"13789:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"13971:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"14115:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"14272:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"14438:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"14582:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"14739:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"14813:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"14978:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"15036:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"15102:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"15164:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"15330:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"15473:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"15531:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"15587:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"15596:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"15656:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"19001:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"19109:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"19253:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"19397:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"19614:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"19674:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"19737:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"19802:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"19864:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"19902:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"19965:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"20030:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"20092:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"20130:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"20190:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"20247:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"20333:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"20395:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"20454:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"20492:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"20548:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"20700:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"20763:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"20823:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"20910:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"20975:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"21037:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"21075:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"21135:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"21192:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"21251:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"21315:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"21347:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"21354:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"21624:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22212:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22216:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22309:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22313:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22406:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22410:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22503:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22507:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22601:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22605:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22699:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22703:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22796:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22800:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22832:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"22839:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"23121:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"23159:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"7067:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"7124:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"7694:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"7748:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"7999:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"9560:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"9689:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"9772:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"9852:1:6","valueSize":1},{"declaration":668,"isOffset":false,"isSlot":false,"src":"9955:1:6","valueSize":1},{"declaration":671,"isOffset":false,"isSlot":false,"src":"23765:2:6","valueSize":1},{"declaration":671,"isOffset":false,"isSlot":false,"src":"23773:2:6","valueSize":1},{"declaration":674,"isOffset":false,"isSlot":false,"src":"23155:2:6","valueSize":1}],"id":813,"nodeType":"InlineAssembly","src":"5291:19432:6"}]},"functionSelector":"1e8e1e13","id":815,"implemented":true,"kind":"function","modifiers":[],"name":"verifyProof","nameLocation":"5196:11:6","nodeType":"FunctionDefinition","parameters":{"id":809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":805,"mutability":"mutable","name":"proof","nameLocation":"5221:5:6","nodeType":"VariableDeclaration","scope":815,"src":"5208:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":804,"name":"bytes","nodeType":"ElementaryTypeName","src":"5208:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":808,"mutability":"mutable","name":"pubSignals","nameLocation":"5242:10:6","nodeType":"VariableDeclaration","scope":815,"src":"5228:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":806,"name":"uint","nodeType":"ElementaryTypeName","src":"5228:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":807,"nodeType":"ArrayTypeName","src":"5228:6:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5207:46:6"},"returnParameters":{"id":812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":811,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":815,"src":"5275:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":810,"name":"bool","nodeType":"ElementaryTypeName","src":"5275:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5274:6:6"},"scope":816,"src":"5187:19551:6","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":817,"src":"832:23908:6","usedErrors":[],"usedEvents":[]}],"src":"799:23942:6"},"id":6},"contracts/workstep2Verifier.sol":{"ast":{"absolutePath":"contracts/workstep2Verifier.sol","exportedSymbols":{"PlonkVerifier":[1044]},"id":1045,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":818,"literals":["solidity",">=","0.7",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"799:31:7"},{"abstract":false,"baseContracts":[],"canonicalName":"PlonkVerifier","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":1044,"linearizedBaseContracts":[1044],"name":"PlonkVerifier","nameLocation":"841:13:7","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":821,"mutability":"constant","name":"n","nameLocation":"882:1:7","nodeType":"VariableDeclaration","scope":1044,"src":"866:27:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":819,"name":"uint32","nodeType":"ElementaryTypeName","src":"866:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"value":{"hexValue":"3332373638","id":820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"888:5:7","typeDescriptions":{"typeIdentifier":"t_rational_32768_by_1","typeString":"int_const 32768"},"value":"32768"},"visibility":"internal"},{"constant":true,"id":824,"mutability":"constant","name":"nPublic","nameLocation":"915:7:7","nodeType":"VariableDeclaration","scope":1044,"src":"899:28:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":822,"name":"uint16","nodeType":"ElementaryTypeName","src":"899:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"926:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":827,"mutability":"constant","name":"nLagrange","nameLocation":"949:9:7","nodeType":"VariableDeclaration","scope":1044,"src":"933:29:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":825,"name":"uint16","nodeType":"ElementaryTypeName","src":"933:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"961:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":830,"mutability":"constant","name":"Qmx","nameLocation":"990:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"973:99:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":828,"name":"uint256","nodeType":"ElementaryTypeName","src":"973:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"39303331303134323031333334373836353938343337343734383139333333333733383937393834383337343732393632363330333234383531333335333631383434303538353435373830","id":829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"996:76:7","typeDescriptions":{"typeIdentifier":"t_rational_9031014201334786598437474819333373897984837472962630324851335361844058545780_by_1","typeString":"int_const 9031...(68 digits omitted)...5780"},"value":"9031014201334786598437474819333373897984837472962630324851335361844058545780"},"visibility":"internal"},{"constant":true,"id":833,"mutability":"constant","name":"Qmy","nameLocation":"1095:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"1078:100:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":831,"name":"uint256","nodeType":"ElementaryTypeName","src":"1078:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3136363037323130373836303836393231393831333637323833383135303439373738373430363030393638373730363230323233303938313437353338303937313338343330353337353935","id":832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1101:77:7","typeDescriptions":{"typeIdentifier":"t_rational_16607210786086921981367283815049778740600968770620223098147538097138430537595_by_1","typeString":"int_const 1660...(69 digits omitted)...7595"},"value":"16607210786086921981367283815049778740600968770620223098147538097138430537595"},"visibility":"internal"},{"constant":true,"id":836,"mutability":"constant","name":"Qlx","nameLocation":"1201:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"1184:99:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":834,"name":"uint256","nodeType":"ElementaryTypeName","src":"1184:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"36383038323738323830343835333036373539373435353438383931353336313931313632333432323336303939363937363333363530393936333435373430393134323234323230333035","id":835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1207:76:7","typeDescriptions":{"typeIdentifier":"t_rational_6808278280485306759745548891536191162342236099697633650996345740914224220305_by_1","typeString":"int_const 6808...(68 digits omitted)...0305"},"value":"6808278280485306759745548891536191162342236099697633650996345740914224220305"},"visibility":"internal"},{"constant":true,"id":839,"mutability":"constant","name":"Qly","nameLocation":"1306:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"1289:99:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":837,"name":"uint256","nodeType":"ElementaryTypeName","src":"1289:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"33323730313730313935383030363437393536343339373330373937333339323230303430363536393137353833353938353938313333363039323630363435363138393836313233353838","id":838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1312:76:7","typeDescriptions":{"typeIdentifier":"t_rational_3270170195800647956439730797339220040656917583598598133609260645618986123588_by_1","typeString":"int_const 3270...(68 digits omitted)...3588"},"value":"3270170195800647956439730797339220040656917583598598133609260645618986123588"},"visibility":"internal"},{"constant":true,"id":842,"mutability":"constant","name":"Qrx","nameLocation":"1411:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"1394:99:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":840,"name":"uint256","nodeType":"ElementaryTypeName","src":"1394:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"36313438353030393031373034353438373832353430333133303234303933333234373734373633313930383334333533323335373539373738323339303534333830313135373631313831","id":841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1417:76:7","typeDescriptions":{"typeIdentifier":"t_rational_6148500901704548782540313024093324774763190834353235759778239054380115761181_by_1","typeString":"int_const 6148...(68 digits omitted)...1181"},"value":"6148500901704548782540313024093324774763190834353235759778239054380115761181"},"visibility":"internal"},{"constant":true,"id":845,"mutability":"constant","name":"Qry","nameLocation":"1516:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"1499:100:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":843,"name":"uint256","nodeType":"ElementaryTypeName","src":"1499:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3137343936393238373034353437343138373837323439313133363239313030333332353937353837333930333838393237393932333032333930383930373234333637333334333235323236","id":844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1522:77:7","typeDescriptions":{"typeIdentifier":"t_rational_17496928704547418787249113629100332597587390388927992302390890724367334325226_by_1","typeString":"int_const 1749...(69 digits omitted)...5226"},"value":"17496928704547418787249113629100332597587390388927992302390890724367334325226"},"visibility":"internal"},{"constant":true,"id":848,"mutability":"constant","name":"Qox","nameLocation":"1622:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"1605:100:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":846,"name":"uint256","nodeType":"ElementaryTypeName","src":"1605:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3231363539323738383131393531373833353536343833313235363239323732383433313834373634383835343738323133373439393933353938343434383632323738303435383834373535","id":847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1628:77:7","typeDescriptions":{"typeIdentifier":"t_rational_21659278811951783556483125629272843184764885478213749993598444862278045884755_by_1","typeString":"int_const 2165...(69 digits omitted)...4755"},"value":"21659278811951783556483125629272843184764885478213749993598444862278045884755"},"visibility":"internal"},{"constant":true,"id":851,"mutability":"constant","name":"Qoy","nameLocation":"1728:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"1711:100:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":849,"name":"uint256","nodeType":"ElementaryTypeName","src":"1711:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3136363630353937343735323035363139353435323831343638313236303036323339393837353339323637333438323030333430353932373933393532313438343837353034383734333039","id":850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1734:77:7","typeDescriptions":{"typeIdentifier":"t_rational_16660597475205619545281468126006239987539267348200340592793952148487504874309_by_1","typeString":"int_const 1666...(69 digits omitted)...4309"},"value":"16660597475205619545281468126006239987539267348200340592793952148487504874309"},"visibility":"internal"},{"constant":true,"id":854,"mutability":"constant","name":"Qcx","nameLocation":"1834:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"1817:99:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":852,"name":"uint256","nodeType":"ElementaryTypeName","src":"1817:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"35333035353130333439383338303837333338373833353437383735353636323934343731373731343934303330393936343337363035363632323532303236333736303337303832393538","id":853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1840:76:7","typeDescriptions":{"typeIdentifier":"t_rational_5305510349838087338783547875566294471771494030996437605662252026376037082958_by_1","typeString":"int_const 5305...(68 digits omitted)...2958"},"value":"5305510349838087338783547875566294471771494030996437605662252026376037082958"},"visibility":"internal"},{"constant":true,"id":857,"mutability":"constant","name":"Qcy","nameLocation":"1939:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"1922:100:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":855,"name":"uint256","nodeType":"ElementaryTypeName","src":"1922:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3139333737333334303937373732333432333733393233383736353934323131353632323737373035303931333838383939343937333133313332363735353939303034313434393735333133","id":856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1945:77:7","typeDescriptions":{"typeIdentifier":"t_rational_19377334097772342373923876594211562277705091388899497313132675599004144975313_by_1","typeString":"int_const 1937...(69 digits omitted)...5313"},"value":"19377334097772342373923876594211562277705091388899497313132675599004144975313"},"visibility":"internal"},{"constant":true,"id":860,"mutability":"constant","name":"S1x","nameLocation":"2045:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"2028:100:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":858,"name":"uint256","nodeType":"ElementaryTypeName","src":"2028:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3133353131333734353838323437313637393937343134343832373731343630333139373737353030313330313437303635323930373337383134363534353132373431373437363136333436","id":859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2051:77:7","typeDescriptions":{"typeIdentifier":"t_rational_13511374588247167997414482771460319777500130147065290737814654512741747616346_by_1","typeString":"int_const 1351...(69 digits omitted)...6346"},"value":"13511374588247167997414482771460319777500130147065290737814654512741747616346"},"visibility":"internal"},{"constant":true,"id":863,"mutability":"constant","name":"S1y","nameLocation":"2151:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"2134:99:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":861,"name":"uint256","nodeType":"ElementaryTypeName","src":"2134:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"39343130343432373233323238313535383030363039303233383532303831363330333030343430323835303134343639333539353439323531353036313136333532333433383430373635","id":862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2157:76:7","typeDescriptions":{"typeIdentifier":"t_rational_9410442723228155800609023852081630300440285014469359549251506116352343840765_by_1","typeString":"int_const 9410...(68 digits omitted)...0765"},"value":"9410442723228155800609023852081630300440285014469359549251506116352343840765"},"visibility":"internal"},{"constant":true,"id":866,"mutability":"constant","name":"S2x","nameLocation":"2256:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"2239:99:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":864,"name":"uint256","nodeType":"ElementaryTypeName","src":"2239:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"36323334333433363432303332353239363736333034343735383430313339383536363039353432313833363138383933323832373934383438373232323635383339343034313231363038","id":865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2262:76:7","typeDescriptions":{"typeIdentifier":"t_rational_6234343642032529676304475840139856609542183618893282794848722265839404121608_by_1","typeString":"int_const 6234...(68 digits omitted)...1608"},"value":"6234343642032529676304475840139856609542183618893282794848722265839404121608"},"visibility":"internal"},{"constant":true,"id":869,"mutability":"constant","name":"S2y","nameLocation":"2361:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"2344:98:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":867,"name":"uint256","nodeType":"ElementaryTypeName","src":"2344:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313938303831323536363739333937343730313137303738313835333738373836363832313334313637393737373637343831393336313036373330393333363538323136343030323035","id":868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2367:75:7","typeDescriptions":{"typeIdentifier":"t_rational_198081256679397470117078185378786682134167977767481936106730933658216400205_by_1","typeString":"int_const 1980...(67 digits omitted)...0205"},"value":"198081256679397470117078185378786682134167977767481936106730933658216400205"},"visibility":"internal"},{"constant":true,"id":872,"mutability":"constant","name":"S3x","nameLocation":"2465:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"2448:100:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":870,"name":"uint256","nodeType":"ElementaryTypeName","src":"2448:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3135363037333634343837373134393133333036313030343436323130313035363139333538373333363736303738303336353632333032313531353835303538363433373135323332323535","id":871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2471:77:7","typeDescriptions":{"typeIdentifier":"t_rational_15607364487714913306100446210105619358733676078036562302151585058643715232255_by_1","typeString":"int_const 1560...(69 digits omitted)...2255"},"value":"15607364487714913306100446210105619358733676078036562302151585058643715232255"},"visibility":"internal"},{"constant":true,"id":875,"mutability":"constant","name":"S3y","nameLocation":"2571:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"2554:100:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":873,"name":"uint256","nodeType":"ElementaryTypeName","src":"2554:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3136343138323033383935393332313031393731363631353130333137373137373539303135353638313331393832323837323233393331313336353034383131313930323030393730343232","id":874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2577:77:7","typeDescriptions":{"typeIdentifier":"t_rational_16418203895932101971661510317717759015568131982287223931136504811190200970422_by_1","typeString":"int_const 1641...(69 digits omitted)...0422"},"value":"16418203895932101971661510317717759015568131982287223931136504811190200970422"},"visibility":"internal"},{"constant":true,"id":878,"mutability":"constant","name":"k1","nameLocation":"2677:2:7","nodeType":"VariableDeclaration","scope":1044,"src":"2660:23:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":876,"name":"uint256","nodeType":"ElementaryTypeName","src":"2660:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2682:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":true,"id":881,"mutability":"constant","name":"k2","nameLocation":"2706:2:7","nodeType":"VariableDeclaration","scope":1044,"src":"2689:23:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":879,"name":"uint256","nodeType":"ElementaryTypeName","src":"2689:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"33","id":880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2711:1:7","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"internal"},{"constant":true,"id":884,"mutability":"constant","name":"X2x1","nameLocation":"2735:4:7","nodeType":"VariableDeclaration","scope":1044,"src":"2718:100:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":882,"name":"uint256","nodeType":"ElementaryTypeName","src":"2718:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37353530313731313431343839363432333233333435343936363833373337323434323737303833323536343234303034373037373135393938343833343039353430303430353837343636","id":883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2742:76:7","typeDescriptions":{"typeIdentifier":"t_rational_7550171141489642323345496683737244277083256424004707715998483409540040587466_by_1","typeString":"int_const 7550...(68 digits omitted)...7466"},"value":"7550171141489642323345496683737244277083256424004707715998483409540040587466"},"visibility":"internal"},{"constant":true,"id":887,"mutability":"constant","name":"X2x2","nameLocation":"2841:4:7","nodeType":"VariableDeclaration","scope":1044,"src":"2824:101:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":885,"name":"uint256","nodeType":"ElementaryTypeName","src":"2824:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3133363734333237323831343536363030383935363037383139383438363832313539353032393536363038343739373335393735373632323138343131353939303333393831353539393638","id":886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2848:77:7","typeDescriptions":{"typeIdentifier":"t_rational_13674327281456600895607819848682159502956608479735975762218411599033981559968_by_1","typeString":"int_const 1367...(69 digits omitted)...9968"},"value":"13674327281456600895607819848682159502956608479735975762218411599033981559968"},"visibility":"internal"},{"constant":true,"id":890,"mutability":"constant","name":"X2y1","nameLocation":"2948:4:7","nodeType":"VariableDeclaration","scope":1044,"src":"2931:101:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":888,"name":"uint256","nodeType":"ElementaryTypeName","src":"2931:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3136333239343237363535393135393434393038343834393734303630383938373631363833393734363436333138303734363339313938303033313837313534353235323534313736353230","id":889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2955:77:7","typeDescriptions":{"typeIdentifier":"t_rational_16329427655915944908484974060898761683974646318074639198003187154525254176520_by_1","typeString":"int_const 1632...(69 digits omitted)...6520"},"value":"16329427655915944908484974060898761683974646318074639198003187154525254176520"},"visibility":"internal"},{"constant":true,"id":893,"mutability":"constant","name":"X2y2","nameLocation":"3055:4:7","nodeType":"VariableDeclaration","scope":1044,"src":"3038:101:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":891,"name":"uint256","nodeType":"ElementaryTypeName","src":"3038:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3139363034363331363533303430323033393131353233343934323133363738313838303035393837363232313934353435353732353239363038383335313833393336353639383230393930","id":892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3062:77:7","typeDescriptions":{"typeIdentifier":"t_rational_19604631653040203911523494213678188005987622194545572529608835183936569820990_by_1","typeString":"int_const 1960...(69 digits omitted)...0990"},"value":"19604631653040203911523494213678188005987622194545572529608835183936569820990"},"visibility":"internal"},{"constant":true,"id":896,"mutability":"constant","name":"q","nameLocation":"3167:1:7","nodeType":"VariableDeclaration","scope":1044,"src":"3150:98:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":894,"name":"uint256","nodeType":"ElementaryTypeName","src":"3150:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137","id":895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3171:77:7","typeDescriptions":{"typeIdentifier":"t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1","typeString":"int_const 2188...(69 digits omitted)...5617"},"value":"21888242871839275222246405745257275088548364400416034343698204186575808495617"},"visibility":"internal"},{"constant":true,"id":899,"mutability":"constant","name":"qf","nameLocation":"3271:2:7","nodeType":"VariableDeclaration","scope":1044,"src":"3254:99:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":897,"name":"uint256","nodeType":"ElementaryTypeName","src":"3254:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833","id":898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3276:77:7","typeDescriptions":{"typeIdentifier":"t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1","typeString":"int_const 2188...(69 digits omitted)...8583"},"value":"21888242871839275222246405745257275088696311157297823662689037894645226208583"},"visibility":"internal"},{"constant":true,"id":902,"mutability":"constant","name":"w1","nameLocation":"3376:2:7","nodeType":"VariableDeclaration","scope":1044,"src":"3359:99:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":900,"name":"uint256","nodeType":"ElementaryTypeName","src":"3359:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3230343032393331373438383433353338393835313531303031323634353330303439383734383731353732393333363934363334383336353637303730363933393636313333373833383033","id":901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3381:77:7","typeDescriptions":{"typeIdentifier":"t_rational_20402931748843538985151001264530049874871572933694634836567070693966133783803_by_1","typeString":"int_const 2040...(69 digits omitted)...3803"},"value":"20402931748843538985151001264530049874871572933694634836567070693966133783803"},"visibility":"internal"},{"constant":true,"id":905,"mutability":"constant","name":"G1x","nameLocation":"3490:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"3473:24:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":903,"name":"uint256","nodeType":"ElementaryTypeName","src":"3473:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3496:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":908,"mutability":"constant","name":"G1y","nameLocation":"3520:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"3503:24:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":906,"name":"uint256","nodeType":"ElementaryTypeName","src":"3503:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3526:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":true,"id":911,"mutability":"constant","name":"G2x1","nameLocation":"3550:4:7","nodeType":"VariableDeclaration","scope":1044,"src":"3533:101:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":909,"name":"uint256","nodeType":"ElementaryTypeName","src":"3533:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831","id":910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3557:77:7","typeDescriptions":{"typeIdentifier":"t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1","typeString":"int_const 1085...(69 digits omitted)...2781"},"value":"10857046999023057135944570762232829481370756359578518086990519993285655852781"},"visibility":"internal"},{"constant":true,"id":914,"mutability":"constant","name":"G2x2","nameLocation":"3657:4:7","nodeType":"VariableDeclaration","scope":1044,"src":"3640:101:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":912,"name":"uint256","nodeType":"ElementaryTypeName","src":"3640:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334","id":913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3664:77:7","typeDescriptions":{"typeIdentifier":"t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1","typeString":"int_const 1155...(69 digits omitted)...5634"},"value":"11559732032986387107991004021392285783925812861821192530917403151452391805634"},"visibility":"internal"},{"constant":true,"id":917,"mutability":"constant","name":"G2y1","nameLocation":"3764:4:7","nodeType":"VariableDeclaration","scope":1044,"src":"3747:100:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":915,"name":"uint256","nodeType":"ElementaryTypeName","src":"3747:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330","id":916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3771:76:7","typeDescriptions":{"typeIdentifier":"t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1","typeString":"int_const 8495...(68 digits omitted)...1930"},"value":"8495653923123431417604973247489272438418190587263600148770280649306958101930"},"visibility":"internal"},{"constant":true,"id":920,"mutability":"constant","name":"G2y2","nameLocation":"3870:4:7","nodeType":"VariableDeclaration","scope":1044,"src":"3853:100:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":918,"name":"uint256","nodeType":"ElementaryTypeName","src":"3853:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331","id":919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3877:76:7","typeDescriptions":{"typeIdentifier":"t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1","typeString":"int_const 4082...(68 digits omitted)...3531"},"value":"4082367875863433681332203403145435568316851327593401208105741076214120093531"},"visibility":"internal"},{"constant":true,"id":923,"mutability":"constant","name":"pA","nameLocation":"3975:2:7","nodeType":"VariableDeclaration","scope":1044,"src":"3959:23:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":921,"name":"uint16","nodeType":"ElementaryTypeName","src":"3959:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3332","id":922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3980:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"visibility":"internal"},{"constant":true,"id":926,"mutability":"constant","name":"pB","nameLocation":"4004:2:7","nodeType":"VariableDeclaration","scope":1044,"src":"3988:23:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":924,"name":"uint16","nodeType":"ElementaryTypeName","src":"3988:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3936","id":925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4009:2:7","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"visibility":"internal"},{"constant":true,"id":929,"mutability":"constant","name":"pC","nameLocation":"4033:2:7","nodeType":"VariableDeclaration","scope":1044,"src":"4017:24:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":927,"name":"uint16","nodeType":"ElementaryTypeName","src":"4017:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313630","id":928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4038:3:7","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},"visibility":"internal"},{"constant":true,"id":932,"mutability":"constant","name":"pZ","nameLocation":"4063:2:7","nodeType":"VariableDeclaration","scope":1044,"src":"4047:24:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":930,"name":"uint16","nodeType":"ElementaryTypeName","src":"4047:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"323234","id":931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4068:3:7","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},"visibility":"internal"},{"constant":true,"id":935,"mutability":"constant","name":"pT1","nameLocation":"4093:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"4077:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":933,"name":"uint16","nodeType":"ElementaryTypeName","src":"4077:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"323838","id":934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4099:3:7","typeDescriptions":{"typeIdentifier":"t_rational_288_by_1","typeString":"int_const 288"},"value":"288"},"visibility":"internal"},{"constant":true,"id":938,"mutability":"constant","name":"pT2","nameLocation":"4124:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"4108:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":936,"name":"uint16","nodeType":"ElementaryTypeName","src":"4108:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"333532","id":937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4130:3:7","typeDescriptions":{"typeIdentifier":"t_rational_352_by_1","typeString":"int_const 352"},"value":"352"},"visibility":"internal"},{"constant":true,"id":941,"mutability":"constant","name":"pT3","nameLocation":"4155:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"4139:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":939,"name":"uint16","nodeType":"ElementaryTypeName","src":"4139:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"343136","id":940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4161:3:7","typeDescriptions":{"typeIdentifier":"t_rational_416_by_1","typeString":"int_const 416"},"value":"416"},"visibility":"internal"},{"constant":true,"id":944,"mutability":"constant","name":"pWxi","nameLocation":"4186:4:7","nodeType":"VariableDeclaration","scope":1044,"src":"4170:26:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":942,"name":"uint16","nodeType":"ElementaryTypeName","src":"4170:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"343830","id":943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4193:3:7","typeDescriptions":{"typeIdentifier":"t_rational_480_by_1","typeString":"int_const 480"},"value":"480"},"visibility":"internal"},{"constant":true,"id":947,"mutability":"constant","name":"pWxiw","nameLocation":"4218:5:7","nodeType":"VariableDeclaration","scope":1044,"src":"4202:27:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":945,"name":"uint16","nodeType":"ElementaryTypeName","src":"4202:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"353434","id":946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4226:3:7","typeDescriptions":{"typeIdentifier":"t_rational_544_by_1","typeString":"int_const 544"},"value":"544"},"visibility":"internal"},{"constant":true,"id":950,"mutability":"constant","name":"pEval_a","nameLocation":"4251:7:7","nodeType":"VariableDeclaration","scope":1044,"src":"4235:29:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":948,"name":"uint16","nodeType":"ElementaryTypeName","src":"4235:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363038","id":949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4261:3:7","typeDescriptions":{"typeIdentifier":"t_rational_608_by_1","typeString":"int_const 608"},"value":"608"},"visibility":"internal"},{"constant":true,"id":953,"mutability":"constant","name":"pEval_b","nameLocation":"4286:7:7","nodeType":"VariableDeclaration","scope":1044,"src":"4270:29:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":951,"name":"uint16","nodeType":"ElementaryTypeName","src":"4270:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363430","id":952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4296:3:7","typeDescriptions":{"typeIdentifier":"t_rational_640_by_1","typeString":"int_const 640"},"value":"640"},"visibility":"internal"},{"constant":true,"id":956,"mutability":"constant","name":"pEval_c","nameLocation":"4321:7:7","nodeType":"VariableDeclaration","scope":1044,"src":"4305:29:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":954,"name":"uint16","nodeType":"ElementaryTypeName","src":"4305:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363732","id":955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4331:3:7","typeDescriptions":{"typeIdentifier":"t_rational_672_by_1","typeString":"int_const 672"},"value":"672"},"visibility":"internal"},{"constant":true,"id":959,"mutability":"constant","name":"pEval_s1","nameLocation":"4356:8:7","nodeType":"VariableDeclaration","scope":1044,"src":"4340:30:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":957,"name":"uint16","nodeType":"ElementaryTypeName","src":"4340:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"373034","id":958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4367:3:7","typeDescriptions":{"typeIdentifier":"t_rational_704_by_1","typeString":"int_const 704"},"value":"704"},"visibility":"internal"},{"constant":true,"id":962,"mutability":"constant","name":"pEval_s2","nameLocation":"4392:8:7","nodeType":"VariableDeclaration","scope":1044,"src":"4376:30:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":960,"name":"uint16","nodeType":"ElementaryTypeName","src":"4376:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"373336","id":961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4403:3:7","typeDescriptions":{"typeIdentifier":"t_rational_736_by_1","typeString":"int_const 736"},"value":"736"},"visibility":"internal"},{"constant":true,"id":965,"mutability":"constant","name":"pEval_zw","nameLocation":"4428:8:7","nodeType":"VariableDeclaration","scope":1044,"src":"4412:30:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":963,"name":"uint16","nodeType":"ElementaryTypeName","src":"4412:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"373638","id":964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4439:3:7","typeDescriptions":{"typeIdentifier":"t_rational_768_by_1","typeString":"int_const 768"},"value":"768"},"visibility":"internal"},{"constant":true,"id":968,"mutability":"constant","name":"pEval_r","nameLocation":"4464:7:7","nodeType":"VariableDeclaration","scope":1044,"src":"4448:29:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":966,"name":"uint16","nodeType":"ElementaryTypeName","src":"4448:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"383030","id":967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4474:3:7","typeDescriptions":{"typeIdentifier":"t_rational_800_by_1","typeString":"int_const 800"},"value":"800"},"visibility":"internal"},{"constant":true,"id":971,"mutability":"constant","name":"pAlpha","nameLocation":"4504:6:7","nodeType":"VariableDeclaration","scope":1044,"src":"4488:26:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":969,"name":"uint16","nodeType":"ElementaryTypeName","src":"4488:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"30","id":970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4513:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"constant":true,"id":974,"mutability":"constant","name":"pBeta","nameLocation":"4536:5:7","nodeType":"VariableDeclaration","scope":1044,"src":"4520:26:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":972,"name":"uint16","nodeType":"ElementaryTypeName","src":"4520:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3332","id":973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4544:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"visibility":"internal"},{"constant":true,"id":977,"mutability":"constant","name":"pGamma","nameLocation":"4568:6:7","nodeType":"VariableDeclaration","scope":1044,"src":"4552:27:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":975,"name":"uint16","nodeType":"ElementaryTypeName","src":"4552:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3634","id":976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4577:2:7","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"visibility":"internal"},{"constant":true,"id":980,"mutability":"constant","name":"pXi","nameLocation":"4601:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"4585:24:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":978,"name":"uint16","nodeType":"ElementaryTypeName","src":"4585:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3936","id":979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4607:2:7","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"visibility":"internal"},{"constant":true,"id":983,"mutability":"constant","name":"pXin","nameLocation":"4631:4:7","nodeType":"VariableDeclaration","scope":1044,"src":"4615:26:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":981,"name":"uint16","nodeType":"ElementaryTypeName","src":"4615:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313238","id":982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4638:3:7","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"visibility":"internal"},{"constant":true,"id":986,"mutability":"constant","name":"pBetaXi","nameLocation":"4663:7:7","nodeType":"VariableDeclaration","scope":1044,"src":"4647:29:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":984,"name":"uint16","nodeType":"ElementaryTypeName","src":"4647:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313630","id":985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4673:3:7","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},"visibility":"internal"},{"constant":true,"id":989,"mutability":"constant","name":"pV1","nameLocation":"4698:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"4682:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":987,"name":"uint16","nodeType":"ElementaryTypeName","src":"4682:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313932","id":988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4704:3:7","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"visibility":"internal"},{"constant":true,"id":992,"mutability":"constant","name":"pV2","nameLocation":"4729:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"4713:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":990,"name":"uint16","nodeType":"ElementaryTypeName","src":"4713:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"323234","id":991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4735:3:7","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},"visibility":"internal"},{"constant":true,"id":995,"mutability":"constant","name":"pV3","nameLocation":"4760:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"4744:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":993,"name":"uint16","nodeType":"ElementaryTypeName","src":"4744:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"323536","id":994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4766:3:7","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"visibility":"internal"},{"constant":true,"id":998,"mutability":"constant","name":"pV4","nameLocation":"4791:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"4775:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":996,"name":"uint16","nodeType":"ElementaryTypeName","src":"4775:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"323838","id":997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4797:3:7","typeDescriptions":{"typeIdentifier":"t_rational_288_by_1","typeString":"int_const 288"},"value":"288"},"visibility":"internal"},{"constant":true,"id":1001,"mutability":"constant","name":"pV5","nameLocation":"4822:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"4806:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":999,"name":"uint16","nodeType":"ElementaryTypeName","src":"4806:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"333230","id":1000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4828:3:7","typeDescriptions":{"typeIdentifier":"t_rational_320_by_1","typeString":"int_const 320"},"value":"320"},"visibility":"internal"},{"constant":true,"id":1004,"mutability":"constant","name":"pV6","nameLocation":"4853:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"4837:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1002,"name":"uint16","nodeType":"ElementaryTypeName","src":"4837:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"333532","id":1003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4859:3:7","typeDescriptions":{"typeIdentifier":"t_rational_352_by_1","typeString":"int_const 352"},"value":"352"},"visibility":"internal"},{"constant":true,"id":1007,"mutability":"constant","name":"pU","nameLocation":"4884:2:7","nodeType":"VariableDeclaration","scope":1044,"src":"4868:24:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1005,"name":"uint16","nodeType":"ElementaryTypeName","src":"4868:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"333834","id":1006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4889:3:7","typeDescriptions":{"typeIdentifier":"t_rational_384_by_1","typeString":"int_const 384"},"value":"384"},"visibility":"internal"},{"constant":true,"id":1010,"mutability":"constant","name":"pPl","nameLocation":"4914:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"4898:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1008,"name":"uint16","nodeType":"ElementaryTypeName","src":"4898:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"343136","id":1009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4920:3:7","typeDescriptions":{"typeIdentifier":"t_rational_416_by_1","typeString":"int_const 416"},"value":"416"},"visibility":"internal"},{"constant":true,"id":1013,"mutability":"constant","name":"pEval_t","nameLocation":"4945:7:7","nodeType":"VariableDeclaration","scope":1044,"src":"4929:29:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1011,"name":"uint16","nodeType":"ElementaryTypeName","src":"4929:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"343438","id":1012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4955:3:7","typeDescriptions":{"typeIdentifier":"t_rational_448_by_1","typeString":"int_const 448"},"value":"448"},"visibility":"internal"},{"constant":true,"id":1016,"mutability":"constant","name":"pA1","nameLocation":"4980:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"4964:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1014,"name":"uint16","nodeType":"ElementaryTypeName","src":"4964:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"343830","id":1015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4986:3:7","typeDescriptions":{"typeIdentifier":"t_rational_480_by_1","typeString":"int_const 480"},"value":"480"},"visibility":"internal"},{"constant":true,"id":1019,"mutability":"constant","name":"pB1","nameLocation":"5011:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"4995:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1017,"name":"uint16","nodeType":"ElementaryTypeName","src":"4995:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"353434","id":1018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5017:3:7","typeDescriptions":{"typeIdentifier":"t_rational_544_by_1","typeString":"int_const 544"},"value":"544"},"visibility":"internal"},{"constant":true,"id":1022,"mutability":"constant","name":"pZh","nameLocation":"5042:3:7","nodeType":"VariableDeclaration","scope":1044,"src":"5026:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1020,"name":"uint16","nodeType":"ElementaryTypeName","src":"5026:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363038","id":1021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5048:3:7","typeDescriptions":{"typeIdentifier":"t_rational_608_by_1","typeString":"int_const 608"},"value":"608"},"visibility":"internal"},{"constant":true,"id":1025,"mutability":"constant","name":"pZhInv","nameLocation":"5073:6:7","nodeType":"VariableDeclaration","scope":1044,"src":"5057:28:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1023,"name":"uint16","nodeType":"ElementaryTypeName","src":"5057:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363430","id":1024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5082:3:7","typeDescriptions":{"typeIdentifier":"t_rational_640_by_1","typeString":"int_const 640"},"value":"640"},"visibility":"internal"},{"constant":true,"id":1028,"mutability":"constant","name":"pEval_l1","nameLocation":"5112:8:7","nodeType":"VariableDeclaration","scope":1044,"src":"5096:30:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1026,"name":"uint16","nodeType":"ElementaryTypeName","src":"5096:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363732","id":1027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5123:3:7","typeDescriptions":{"typeIdentifier":"t_rational_672_by_1","typeString":"int_const 672"},"value":"672"},"visibility":"internal"},{"constant":true,"id":1031,"mutability":"constant","name":"lastMem","nameLocation":"5163:7:7","nodeType":"VariableDeclaration","scope":1044,"src":"5147:29:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1029,"name":"uint16","nodeType":"ElementaryTypeName","src":"5147:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"373034","id":1030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5173:3:7","typeDescriptions":{"typeIdentifier":"t_rational_704_by_1","typeString":"int_const 704"},"value":"704"},"visibility":"internal"},{"body":{"id":1042,"nodeType":"Block","src":"5277:19457:7","statements":[{"AST":{"nativeSrc":"5296:19423:7","nodeType":"YulBlock","src":"5296:19423:7","statements":[{"body":{"nativeSrc":"5459:694:7","nodeType":"YulBlock","src":"5459:694:7","statements":[{"nativeSrc":"5477:10:7","nodeType":"YulVariableDeclaration","src":"5477:10:7","value":{"kind":"number","nativeSrc":"5486:1:7","nodeType":"YulLiteral","src":"5486:1:7","type":"","value":"0"},"variables":[{"name":"t","nativeSrc":"5481:1:7","nodeType":"YulTypedName","src":"5481:1:7","type":""}]},{"nativeSrc":"5509:13:7","nodeType":"YulVariableDeclaration","src":"5509:13:7","value":{"kind":"number","nativeSrc":"5521:1:7","nodeType":"YulLiteral","src":"5521:1:7","type":"","value":"1"},"variables":[{"name":"newt","nativeSrc":"5513:4:7","nodeType":"YulTypedName","src":"5513:4:7","type":""}]},{"nativeSrc":"5539:10:7","nodeType":"YulVariableDeclaration","src":"5539:10:7","value":{"name":"q","nativeSrc":"5548:1:7","nodeType":"YulIdentifier","src":"5548:1:7"},"variables":[{"name":"r","nativeSrc":"5543:1:7","nodeType":"YulTypedName","src":"5543:1:7","type":""}]},{"nativeSrc":"5571:13:7","nodeType":"YulVariableDeclaration","src":"5571:13:7","value":{"name":"a","nativeSrc":"5583:1:7","nodeType":"YulIdentifier","src":"5583:1:7"},"variables":[{"name":"newr","nativeSrc":"5575:4:7","nodeType":"YulTypedName","src":"5575:4:7","type":""}]},{"nativeSrc":"5601:12:7","nodeType":"YulVariableDeclaration","src":"5601:12:7","variables":[{"name":"quotient","nativeSrc":"5605:8:7","nodeType":"YulTypedName","src":"5605:8:7","type":""}]},{"nativeSrc":"5630:7:7","nodeType":"YulVariableDeclaration","src":"5630:7:7","variables":[{"name":"aux","nativeSrc":"5634:3:7","nodeType":"YulTypedName","src":"5634:3:7","type":""}]},{"body":{"nativeSrc":"5688:317:7","nodeType":"YulBlock","src":"5688:317:7","statements":[{"nativeSrc":"5710:25:7","nodeType":"YulAssignment","src":"5710:25:7","value":{"arguments":[{"name":"r","nativeSrc":"5727:1:7","nodeType":"YulIdentifier","src":"5727:1:7"},{"name":"newr","nativeSrc":"5730:4:7","nodeType":"YulIdentifier","src":"5730:4:7"}],"functionName":{"name":"sdiv","nativeSrc":"5722:4:7","nodeType":"YulIdentifier","src":"5722:4:7"},"nativeSrc":"5722:13:7","nodeType":"YulFunctionCall","src":"5722:13:7"},"variableNames":[{"name":"quotient","nativeSrc":"5710:8:7","nodeType":"YulIdentifier","src":"5710:8:7"}]},{"nativeSrc":"5756:34:7","nodeType":"YulAssignment","src":"5756:34:7","value":{"arguments":[{"name":"t","nativeSrc":"5767:1:7","nodeType":"YulIdentifier","src":"5767:1:7"},{"arguments":[{"name":"quotient","nativeSrc":"5774:8:7","nodeType":"YulIdentifier","src":"5774:8:7"},{"name":"newt","nativeSrc":"5784:4:7","nodeType":"YulIdentifier","src":"5784:4:7"}],"functionName":{"name":"mul","nativeSrc":"5770:3:7","nodeType":"YulIdentifier","src":"5770:3:7"},"nativeSrc":"5770:19:7","nodeType":"YulFunctionCall","src":"5770:19:7"}],"functionName":{"name":"sub","nativeSrc":"5763:3:7","nodeType":"YulIdentifier","src":"5763:3:7"},"nativeSrc":"5763:27:7","nodeType":"YulFunctionCall","src":"5763:27:7"},"variableNames":[{"name":"aux","nativeSrc":"5756:3:7","nodeType":"YulIdentifier","src":"5756:3:7"}]},{"nativeSrc":"5811:8:7","nodeType":"YulAssignment","src":"5811:8:7","value":{"name":"newt","nativeSrc":"5815:4:7","nodeType":"YulIdentifier","src":"5815:4:7"},"variableNames":[{"name":"t","nativeSrc":"5811:1:7","nodeType":"YulIdentifier","src":"5811:1:7"}]},{"nativeSrc":"5840:10:7","nodeType":"YulAssignment","src":"5840:10:7","value":{"name":"aux","nativeSrc":"5847:3:7","nodeType":"YulIdentifier","src":"5847:3:7"},"variableNames":[{"name":"newt","nativeSrc":"5840:4:7","nodeType":"YulIdentifier","src":"5840:4:7"}]},{"nativeSrc":"5892:33:7","nodeType":"YulAssignment","src":"5892:33:7","value":{"arguments":[{"name":"r","nativeSrc":"5903:1:7","nodeType":"YulIdentifier","src":"5903:1:7"},{"arguments":[{"name":"quotient","nativeSrc":"5909:8:7","nodeType":"YulIdentifier","src":"5909:8:7"},{"name":"newr","nativeSrc":"5919:4:7","nodeType":"YulIdentifier","src":"5919:4:7"}],"functionName":{"name":"mul","nativeSrc":"5905:3:7","nodeType":"YulIdentifier","src":"5905:3:7"},"nativeSrc":"5905:19:7","nodeType":"YulFunctionCall","src":"5905:19:7"}],"functionName":{"name":"sub","nativeSrc":"5899:3:7","nodeType":"YulIdentifier","src":"5899:3:7"},"nativeSrc":"5899:26:7","nodeType":"YulFunctionCall","src":"5899:26:7"},"variableNames":[{"name":"aux","nativeSrc":"5892:3:7","nodeType":"YulIdentifier","src":"5892:3:7"}]},{"nativeSrc":"5946:9:7","nodeType":"YulAssignment","src":"5946:9:7","value":{"name":"newr","nativeSrc":"5951:4:7","nodeType":"YulIdentifier","src":"5951:4:7"},"variableNames":[{"name":"r","nativeSrc":"5946:1:7","nodeType":"YulIdentifier","src":"5946:1:7"}]},{"nativeSrc":"5976:11:7","nodeType":"YulAssignment","src":"5976:11:7","value":{"name":"aux","nativeSrc":"5984:3:7","nodeType":"YulIdentifier","src":"5984:3:7"},"variableNames":[{"name":"newr","nativeSrc":"5976:4:7","nodeType":"YulIdentifier","src":"5976:4:7"}]}]},"condition":{"name":"newr","nativeSrc":"5679:4:7","nodeType":"YulIdentifier","src":"5679:4:7"},"nativeSrc":"5671:334:7","nodeType":"YulForLoop","post":{"nativeSrc":"5684:3:7","nodeType":"YulBlock","src":"5684:3:7","statements":[]},"pre":{"nativeSrc":"5675:3:7","nodeType":"YulBlock","src":"5675:3:7","statements":[]},"src":"5671:334:7"},{"body":{"nativeSrc":"6051:15:7","nodeType":"YulBlock","src":"6051:15:7","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6060:1:7","nodeType":"YulLiteral","src":"6060:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"6062:1:7","nodeType":"YulLiteral","src":"6062:1:7","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6053:6:7","nodeType":"YulIdentifier","src":"6053:6:7"},"nativeSrc":"6053:11:7","nodeType":"YulFunctionCall","src":"6053:11:7"},"nativeSrc":"6053:11:7","nodeType":"YulExpressionStatement","src":"6053:11:7"}]},"condition":{"arguments":[{"name":"r","nativeSrc":"6045:1:7","nodeType":"YulIdentifier","src":"6045:1:7"},{"kind":"number","nativeSrc":"6048:1:7","nodeType":"YulLiteral","src":"6048:1:7","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"6042:2:7","nodeType":"YulIdentifier","src":"6042:2:7"},"nativeSrc":"6042:8:7","nodeType":"YulFunctionCall","src":"6042:8:7"},"nativeSrc":"6039:27:7","nodeType":"YulIf","src":"6039:27:7"},{"body":{"nativeSrc":"6096:17:7","nodeType":"YulBlock","src":"6096:17:7","statements":[{"nativeSrc":"6098:13:7","nodeType":"YulAssignment","src":"6098:13:7","value":{"arguments":[{"name":"t","nativeSrc":"6106:1:7","nodeType":"YulIdentifier","src":"6106:1:7"},{"name":"q","nativeSrc":"6109:1:7","nodeType":"YulIdentifier","src":"6109:1:7"}],"functionName":{"name":"add","nativeSrc":"6102:3:7","nodeType":"YulIdentifier","src":"6102:3:7"},"nativeSrc":"6102:9:7","nodeType":"YulFunctionCall","src":"6102:9:7"},"variableNames":[{"name":"t","nativeSrc":"6098:1:7","nodeType":"YulIdentifier","src":"6098:1:7"}]}]},"condition":{"arguments":[{"name":"t","nativeSrc":"6090:1:7","nodeType":"YulIdentifier","src":"6090:1:7"},{"kind":"number","nativeSrc":"6093:1:7","nodeType":"YulLiteral","src":"6093:1:7","type":"","value":"0"}],"functionName":{"name":"slt","nativeSrc":"6086:3:7","nodeType":"YulIdentifier","src":"6086:3:7"},"nativeSrc":"6086:9:7","nodeType":"YulFunctionCall","src":"6086:9:7"},"nativeSrc":"6083:30:7","nodeType":"YulIf","src":"6083:30:7"},{"nativeSrc":"6131:8:7","nodeType":"YulAssignment","src":"6131:8:7","value":{"name":"t","nativeSrc":"6138:1:7","nodeType":"YulIdentifier","src":"6138:1:7"},"variableNames":[{"name":"inv","nativeSrc":"6131:3:7","nodeType":"YulIdentifier","src":"6131:3:7"}]}]},"name":"inverse","nativeSrc":"5429:724:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"a","nativeSrc":"5446:1:7","nodeType":"YulTypedName","src":"5446:1:7","type":""},{"name":"q","nativeSrc":"5449:1:7","nodeType":"YulTypedName","src":"5449:1:7","type":""}],"returnVariables":[{"name":"inv","nativeSrc":"5455:3:7","nodeType":"YulTypedName","src":"5455:3:7","type":""}],"src":"5429:724:7"},{"body":{"nativeSrc":"6427:1485:7","nodeType":"YulBlock","src":"6427:1485:7","statements":[{"nativeSrc":"6450:23:7","nodeType":"YulVariableDeclaration","src":"6450:23:7","value":{"arguments":[{"kind":"number","nativeSrc":"6468:4:7","nodeType":"YulLiteral","src":"6468:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"6462:5:7","nodeType":"YulIdentifier","src":"6462:5:7"},"nativeSrc":"6462:11:7","nodeType":"YulFunctionCall","src":"6462:11:7"},"variables":[{"name":"pAux","nativeSrc":"6454:4:7","nodeType":"YulTypedName","src":"6454:4:7","type":""}]},{"nativeSrc":"6529:16:7","nodeType":"YulVariableDeclaration","src":"6529:16:7","value":{"name":"pVals","nativeSrc":"6540:5:7","nodeType":"YulIdentifier","src":"6540:5:7"},"variables":[{"name":"pIn","nativeSrc":"6533:3:7","nodeType":"YulTypedName","src":"6533:3:7","type":""}]},{"nativeSrc":"6562:37:7","nodeType":"YulVariableDeclaration","src":"6562:37:7","value":{"arguments":[{"name":"pVals","nativeSrc":"6581:5:7","nodeType":"YulIdentifier","src":"6581:5:7"},{"arguments":[{"name":"n","nativeSrc":"6592:1:7","nodeType":"YulIdentifier","src":"6592:1:7"},{"kind":"number","nativeSrc":"6595:2:7","nodeType":"YulLiteral","src":"6595:2:7","type":"","value":"32"}],"functionName":{"name":"mul","nativeSrc":"6588:3:7","nodeType":"YulIdentifier","src":"6588:3:7"},"nativeSrc":"6588:10:7","nodeType":"YulFunctionCall","src":"6588:10:7"}],"functionName":{"name":"add","nativeSrc":"6577:3:7","nodeType":"YulIdentifier","src":"6577:3:7"},"nativeSrc":"6577:22:7","nodeType":"YulFunctionCall","src":"6577:22:7"},"variables":[{"name":"lastPIn","nativeSrc":"6566:7:7","nodeType":"YulTypedName","src":"6566:7:7","type":""}]},{"nativeSrc":"6635:21:7","nodeType":"YulVariableDeclaration","src":"6635:21:7","value":{"arguments":[{"name":"pIn","nativeSrc":"6652:3:7","nodeType":"YulIdentifier","src":"6652:3:7"}],"functionName":{"name":"mload","nativeSrc":"6646:5:7","nodeType":"YulIdentifier","src":"6646:5:7"},"nativeSrc":"6646:10:7","nodeType":"YulFunctionCall","src":"6646:10:7"},"variables":[{"name":"acc","nativeSrc":"6639:3:7","nodeType":"YulTypedName","src":"6639:3:7","type":""}]},{"nativeSrc":"6705:19:7","nodeType":"YulAssignment","src":"6705:19:7","value":{"arguments":[{"name":"pIn","nativeSrc":"6716:3:7","nodeType":"YulIdentifier","src":"6716:3:7"},{"kind":"number","nativeSrc":"6721:2:7","nodeType":"YulLiteral","src":"6721:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6712:3:7","nodeType":"YulIdentifier","src":"6712:3:7"},"nativeSrc":"6712:12:7","nodeType":"YulFunctionCall","src":"6712:12:7"},"variableNames":[{"name":"pIn","nativeSrc":"6705:3:7","nodeType":"YulIdentifier","src":"6705:3:7"}]},{"nativeSrc":"6780:7:7","nodeType":"YulVariableDeclaration","src":"6780:7:7","variables":[{"name":"inv","nativeSrc":"6784:3:7","nodeType":"YulTypedName","src":"6784:3:7","type":""}]},{"body":{"nativeSrc":"6972:111:7","nodeType":"YulBlock","src":"6972:111:7","statements":[{"expression":{"arguments":[{"name":"pAux","nativeSrc":"7001:4:7","nodeType":"YulIdentifier","src":"7001:4:7"},{"name":"acc","nativeSrc":"7007:3:7","nodeType":"YulIdentifier","src":"7007:3:7"}],"functionName":{"name":"mstore","nativeSrc":"6994:6:7","nodeType":"YulIdentifier","src":"6994:6:7"},"nativeSrc":"6994:17:7","nodeType":"YulFunctionCall","src":"6994:17:7"},"nativeSrc":"6994:17:7","nodeType":"YulExpressionStatement","src":"6994:17:7"},{"nativeSrc":"7032:33:7","nodeType":"YulAssignment","src":"7032:33:7","value":{"arguments":[{"name":"acc","nativeSrc":"7046:3:7","nodeType":"YulIdentifier","src":"7046:3:7"},{"arguments":[{"name":"pIn","nativeSrc":"7057:3:7","nodeType":"YulIdentifier","src":"7057:3:7"}],"functionName":{"name":"mload","nativeSrc":"7051:5:7","nodeType":"YulIdentifier","src":"7051:5:7"},"nativeSrc":"7051:10:7","nodeType":"YulFunctionCall","src":"7051:10:7"},{"name":"q","nativeSrc":"7063:1:7","nodeType":"YulIdentifier","src":"7063:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"7039:6:7","nodeType":"YulIdentifier","src":"7039:6:7"},"nativeSrc":"7039:26:7","nodeType":"YulFunctionCall","src":"7039:26:7"},"variableNames":[{"name":"acc","nativeSrc":"7032:3:7","nodeType":"YulIdentifier","src":"7032:3:7"}]}]},"condition":{"arguments":[{"name":"pIn","nativeSrc":"6837:3:7","nodeType":"YulIdentifier","src":"6837:3:7"},{"name":"lastPIn","nativeSrc":"6842:7:7","nodeType":"YulIdentifier","src":"6842:7:7"}],"functionName":{"name":"lt","nativeSrc":"6834:2:7","nodeType":"YulIdentifier","src":"6834:2:7"},"nativeSrc":"6834:16:7","nodeType":"YulFunctionCall","src":"6834:16:7"},"nativeSrc":"6826:257:7","nodeType":"YulForLoop","post":{"nativeSrc":"6851:103:7","nodeType":"YulBlock","src":"6851:103:7","statements":[{"nativeSrc":"6874:21:7","nodeType":"YulAssignment","src":"6874:21:7","value":{"arguments":[{"name":"pAux","nativeSrc":"6886:4:7","nodeType":"YulIdentifier","src":"6886:4:7"},{"kind":"number","nativeSrc":"6892:2:7","nodeType":"YulLiteral","src":"6892:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6882:3:7","nodeType":"YulIdentifier","src":"6882:3:7"},"nativeSrc":"6882:13:7","nodeType":"YulFunctionCall","src":"6882:13:7"},"variableNames":[{"name":"pAux","nativeSrc":"6874:4:7","nodeType":"YulIdentifier","src":"6874:4:7"}]},{"nativeSrc":"6917:19:7","nodeType":"YulAssignment","src":"6917:19:7","value":{"arguments":[{"name":"pIn","nativeSrc":"6928:3:7","nodeType":"YulIdentifier","src":"6928:3:7"},{"kind":"number","nativeSrc":"6933:2:7","nodeType":"YulLiteral","src":"6933:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6924:3:7","nodeType":"YulIdentifier","src":"6924:3:7"},"nativeSrc":"6924:12:7","nodeType":"YulFunctionCall","src":"6924:12:7"},"variableNames":[{"name":"pIn","nativeSrc":"6917:3:7","nodeType":"YulIdentifier","src":"6917:3:7"}]}]},"pre":{"nativeSrc":"6830:3:7","nodeType":"YulBlock","src":"6830:3:7","statements":[]},"src":"6826:257:7"},{"nativeSrc":"7100:22:7","nodeType":"YulAssignment","src":"7100:22:7","value":{"arguments":[{"name":"acc","nativeSrc":"7115:3:7","nodeType":"YulIdentifier","src":"7115:3:7"},{"name":"q","nativeSrc":"7120:1:7","nodeType":"YulIdentifier","src":"7120:1:7"}],"functionName":{"name":"inverse","nativeSrc":"7107:7:7","nodeType":"YulIdentifier","src":"7107:7:7"},"nativeSrc":"7107:15:7","nodeType":"YulFunctionCall","src":"7107:15:7"},"variableNames":[{"name":"acc","nativeSrc":"7100:3:7","nodeType":"YulIdentifier","src":"7100:3:7"}]},{"nativeSrc":"7266:21:7","nodeType":"YulAssignment","src":"7266:21:7","value":{"arguments":[{"name":"pAux","nativeSrc":"7278:4:7","nodeType":"YulIdentifier","src":"7278:4:7"},{"kind":"number","nativeSrc":"7284:2:7","nodeType":"YulLiteral","src":"7284:2:7","type":"","value":"32"}],"functionName":{"name":"sub","nativeSrc":"7274:3:7","nodeType":"YulIdentifier","src":"7274:3:7"},"nativeSrc":"7274:13:7","nodeType":"YulFunctionCall","src":"7274:13:7"},"variableNames":[{"name":"pAux","nativeSrc":"7266:4:7","nodeType":"YulIdentifier","src":"7266:4:7"}]},{"nativeSrc":"7381:19:7","nodeType":"YulAssignment","src":"7381:19:7","value":{"arguments":[{"name":"pIn","nativeSrc":"7392:3:7","nodeType":"YulIdentifier","src":"7392:3:7"},{"kind":"number","nativeSrc":"7397:2:7","nodeType":"YulLiteral","src":"7397:2:7","type":"","value":"32"}],"functionName":{"name":"sub","nativeSrc":"7388:3:7","nodeType":"YulIdentifier","src":"7388:3:7"},"nativeSrc":"7388:12:7","nodeType":"YulFunctionCall","src":"7388:12:7"},"variableNames":[{"name":"pIn","nativeSrc":"7381:3:7","nodeType":"YulIdentifier","src":"7381:3:7"}]},{"nativeSrc":"7417:16:7","nodeType":"YulAssignment","src":"7417:16:7","value":{"name":"pVals","nativeSrc":"7428:5:7","nodeType":"YulIdentifier","src":"7428:5:7"},"variableNames":[{"name":"lastPIn","nativeSrc":"7417:7:7","nodeType":"YulIdentifier","src":"7417:7:7"}]},{"body":{"nativeSrc":"7636:165:7","nodeType":"YulBlock","src":"7636:165:7","statements":[{"nativeSrc":"7658:34:7","nodeType":"YulAssignment","src":"7658:34:7","value":{"arguments":[{"name":"acc","nativeSrc":"7672:3:7","nodeType":"YulIdentifier","src":"7672:3:7"},{"arguments":[{"name":"pAux","nativeSrc":"7683:4:7","nodeType":"YulIdentifier","src":"7683:4:7"}],"functionName":{"name":"mload","nativeSrc":"7677:5:7","nodeType":"YulIdentifier","src":"7677:5:7"},"nativeSrc":"7677:11:7","nodeType":"YulFunctionCall","src":"7677:11:7"},{"name":"q","nativeSrc":"7690:1:7","nodeType":"YulIdentifier","src":"7690:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"7665:6:7","nodeType":"YulIdentifier","src":"7665:6:7"},"nativeSrc":"7665:27:7","nodeType":"YulFunctionCall","src":"7665:27:7"},"variableNames":[{"name":"inv","nativeSrc":"7658:3:7","nodeType":"YulIdentifier","src":"7658:3:7"}]},{"nativeSrc":"7713:33:7","nodeType":"YulAssignment","src":"7713:33:7","value":{"arguments":[{"name":"acc","nativeSrc":"7727:3:7","nodeType":"YulIdentifier","src":"7727:3:7"},{"arguments":[{"name":"pIn","nativeSrc":"7738:3:7","nodeType":"YulIdentifier","src":"7738:3:7"}],"functionName":{"name":"mload","nativeSrc":"7732:5:7","nodeType":"YulIdentifier","src":"7732:5:7"},"nativeSrc":"7732:10:7","nodeType":"YulFunctionCall","src":"7732:10:7"},{"name":"q","nativeSrc":"7744:1:7","nodeType":"YulIdentifier","src":"7744:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"7720:6:7","nodeType":"YulIdentifier","src":"7720:6:7"},"nativeSrc":"7720:26:7","nodeType":"YulFunctionCall","src":"7720:26:7"},"variableNames":[{"name":"acc","nativeSrc":"7713:3:7","nodeType":"YulIdentifier","src":"7713:3:7"}]},{"expression":{"arguments":[{"name":"pIn","nativeSrc":"7774:3:7","nodeType":"YulIdentifier","src":"7774:3:7"},{"name":"inv","nativeSrc":"7779:3:7","nodeType":"YulIdentifier","src":"7779:3:7"}],"functionName":{"name":"mstore","nativeSrc":"7767:6:7","nodeType":"YulIdentifier","src":"7767:6:7"},"nativeSrc":"7767:16:7","nodeType":"YulFunctionCall","src":"7767:16:7"},"nativeSrc":"7767:16:7","nodeType":"YulExpressionStatement","src":"7767:16:7"}]},"condition":{"arguments":[{"name":"pIn","nativeSrc":"7501:3:7","nodeType":"YulIdentifier","src":"7501:3:7"},{"name":"lastPIn","nativeSrc":"7506:7:7","nodeType":"YulIdentifier","src":"7506:7:7"}],"functionName":{"name":"gt","nativeSrc":"7498:2:7","nodeType":"YulIdentifier","src":"7498:2:7"},"nativeSrc":"7498:16:7","nodeType":"YulFunctionCall","src":"7498:16:7"},"nativeSrc":"7490:311:7","nodeType":"YulForLoop","post":{"nativeSrc":"7515:103:7","nodeType":"YulBlock","src":"7515:103:7","statements":[{"nativeSrc":"7538:21:7","nodeType":"YulAssignment","src":"7538:21:7","value":{"arguments":[{"name":"pAux","nativeSrc":"7550:4:7","nodeType":"YulIdentifier","src":"7550:4:7"},{"kind":"number","nativeSrc":"7556:2:7","nodeType":"YulLiteral","src":"7556:2:7","type":"","value":"32"}],"functionName":{"name":"sub","nativeSrc":"7546:3:7","nodeType":"YulIdentifier","src":"7546:3:7"},"nativeSrc":"7546:13:7","nodeType":"YulFunctionCall","src":"7546:13:7"},"variableNames":[{"name":"pAux","nativeSrc":"7538:4:7","nodeType":"YulIdentifier","src":"7538:4:7"}]},{"nativeSrc":"7581:19:7","nodeType":"YulAssignment","src":"7581:19:7","value":{"arguments":[{"name":"pIn","nativeSrc":"7592:3:7","nodeType":"YulIdentifier","src":"7592:3:7"},{"kind":"number","nativeSrc":"7597:2:7","nodeType":"YulLiteral","src":"7597:2:7","type":"","value":"32"}],"functionName":{"name":"sub","nativeSrc":"7588:3:7","nodeType":"YulIdentifier","src":"7588:3:7"},"nativeSrc":"7588:12:7","nodeType":"YulFunctionCall","src":"7588:12:7"},"variableNames":[{"name":"pIn","nativeSrc":"7581:3:7","nodeType":"YulIdentifier","src":"7581:3:7"}]}]},"pre":{"nativeSrc":"7494:3:7","nodeType":"YulBlock","src":"7494:3:7","statements":[]},"src":"7490:311:7"},{"expression":{"arguments":[{"name":"pIn","nativeSrc":"7889:3:7","nodeType":"YulIdentifier","src":"7889:3:7"},{"name":"acc","nativeSrc":"7894:3:7","nodeType":"YulIdentifier","src":"7894:3:7"}],"functionName":{"name":"mstore","nativeSrc":"7882:6:7","nodeType":"YulIdentifier","src":"7882:6:7"},"nativeSrc":"7882:16:7","nodeType":"YulFunctionCall","src":"7882:16:7"},"nativeSrc":"7882:16:7","nodeType":"YulExpressionStatement","src":"7882:16:7"}]},"name":"inverseArray","nativeSrc":"6395:1517:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"pVals","nativeSrc":"6417:5:7","nodeType":"YulTypedName","src":"6417:5:7","type":""},{"name":"n","nativeSrc":"6424:1:7","nodeType":"YulTypedName","src":"6424:1:7","type":""}],"src":"6395:1517:7"},{"body":{"nativeSrc":"7961:139:7","nodeType":"YulBlock","src":"7961:139:7","statements":[{"body":{"nativeSrc":"7999:87:7","nodeType":"YulBlock","src":"7999:87:7","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8028:1:7","nodeType":"YulLiteral","src":"8028:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"8031:1:7","nodeType":"YulLiteral","src":"8031:1:7","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8021:6:7","nodeType":"YulIdentifier","src":"8021:6:7"},"nativeSrc":"8021:12:7","nodeType":"YulFunctionCall","src":"8021:12:7"},"nativeSrc":"8021:12:7","nodeType":"YulExpressionStatement","src":"8021:12:7"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8061:1:7","nodeType":"YulLiteral","src":"8061:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"8063:4:7","nodeType":"YulLiteral","src":"8063:4:7","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"8054:6:7","nodeType":"YulIdentifier","src":"8054:6:7"},"nativeSrc":"8054:14:7","nodeType":"YulFunctionCall","src":"8054:14:7"},"nativeSrc":"8054:14:7","nodeType":"YulExpressionStatement","src":"8054:14:7"}]},"condition":{"arguments":[{"arguments":[{"name":"v","nativeSrc":"7992:1:7","nodeType":"YulIdentifier","src":"7992:1:7"},{"name":"q","nativeSrc":"7995:1:7","nodeType":"YulIdentifier","src":"7995:1:7"}],"functionName":{"name":"lt","nativeSrc":"7989:2:7","nodeType":"YulIdentifier","src":"7989:2:7"},"nativeSrc":"7989:8:7","nodeType":"YulFunctionCall","src":"7989:8:7"}],"functionName":{"name":"iszero","nativeSrc":"7982:6:7","nodeType":"YulIdentifier","src":"7982:6:7"},"nativeSrc":"7982:16:7","nodeType":"YulFunctionCall","src":"7982:16:7"},"nativeSrc":"7979:107:7","nodeType":"YulIf","src":"7979:107:7"}]},"name":"checkField","nativeSrc":"7938:162:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"v","nativeSrc":"7958:1:7","nodeType":"YulTypedName","src":"7958:1:7","type":""}],"src":"7938:162:7"},{"body":{"nativeSrc":"8154:640:7","nodeType":"YulBlock","src":"8154:640:7","statements":[{"body":{"nativeSrc":"8207:87:7","nodeType":"YulBlock","src":"8207:87:7","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8236:1:7","nodeType":"YulLiteral","src":"8236:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"8239:1:7","nodeType":"YulLiteral","src":"8239:1:7","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8229:6:7","nodeType":"YulIdentifier","src":"8229:6:7"},"nativeSrc":"8229:12:7","nodeType":"YulFunctionCall","src":"8229:12:7"},"nativeSrc":"8229:12:7","nodeType":"YulExpressionStatement","src":"8229:12:7"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8269:1:7","nodeType":"YulLiteral","src":"8269:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"8271:4:7","nodeType":"YulLiteral","src":"8271:4:7","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"8262:6:7","nodeType":"YulIdentifier","src":"8262:6:7"},"nativeSrc":"8262:14:7","nodeType":"YulFunctionCall","src":"8262:14:7"},"nativeSrc":"8262:14:7","nodeType":"YulExpressionStatement","src":"8262:14:7"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8191:6:7","nodeType":"YulIdentifier","src":"8191:6:7"}],"functionName":{"name":"mload","nativeSrc":"8185:5:7","nodeType":"YulIdentifier","src":"8185:5:7"},"nativeSrc":"8185:13:7","nodeType":"YulFunctionCall","src":"8185:13:7"},{"kind":"number","nativeSrc":"8200:3:7","nodeType":"YulLiteral","src":"8200:3:7","type":"","value":"800"}],"functionName":{"name":"eq","nativeSrc":"8182:2:7","nodeType":"YulIdentifier","src":"8182:2:7"},"nativeSrc":"8182:23:7","nodeType":"YulFunctionCall","src":"8182:23:7"}],"functionName":{"name":"iszero","nativeSrc":"8175:6:7","nodeType":"YulIdentifier","src":"8175:6:7"},"nativeSrc":"8175:31:7","nodeType":"YulFunctionCall","src":"8175:31:7"},"nativeSrc":"8172:122:7","nodeType":"YulIf","src":"8172:122:7"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8332:6:7","nodeType":"YulIdentifier","src":"8332:6:7"},{"name":"pEval_a","nativeSrc":"8340:7:7","nodeType":"YulIdentifier","src":"8340:7:7"}],"functionName":{"name":"add","nativeSrc":"8328:3:7","nodeType":"YulIdentifier","src":"8328:3:7"},"nativeSrc":"8328:20:7","nodeType":"YulFunctionCall","src":"8328:20:7"}],"functionName":{"name":"mload","nativeSrc":"8322:5:7","nodeType":"YulIdentifier","src":"8322:5:7"},"nativeSrc":"8322:27:7","nodeType":"YulFunctionCall","src":"8322:27:7"}],"functionName":{"name":"checkField","nativeSrc":"8311:10:7","nodeType":"YulIdentifier","src":"8311:10:7"},"nativeSrc":"8311:39:7","nodeType":"YulFunctionCall","src":"8311:39:7"},"nativeSrc":"8311:39:7","nodeType":"YulExpressionStatement","src":"8311:39:7"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8388:6:7","nodeType":"YulIdentifier","src":"8388:6:7"},{"name":"pEval_b","nativeSrc":"8396:7:7","nodeType":"YulIdentifier","src":"8396:7:7"}],"functionName":{"name":"add","nativeSrc":"8384:3:7","nodeType":"YulIdentifier","src":"8384:3:7"},"nativeSrc":"8384:20:7","nodeType":"YulFunctionCall","src":"8384:20:7"}],"functionName":{"name":"mload","nativeSrc":"8378:5:7","nodeType":"YulIdentifier","src":"8378:5:7"},"nativeSrc":"8378:27:7","nodeType":"YulFunctionCall","src":"8378:27:7"}],"functionName":{"name":"checkField","nativeSrc":"8367:10:7","nodeType":"YulIdentifier","src":"8367:10:7"},"nativeSrc":"8367:39:7","nodeType":"YulFunctionCall","src":"8367:39:7"},"nativeSrc":"8367:39:7","nodeType":"YulExpressionStatement","src":"8367:39:7"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8444:6:7","nodeType":"YulIdentifier","src":"8444:6:7"},{"name":"pEval_c","nativeSrc":"8452:7:7","nodeType":"YulIdentifier","src":"8452:7:7"}],"functionName":{"name":"add","nativeSrc":"8440:3:7","nodeType":"YulIdentifier","src":"8440:3:7"},"nativeSrc":"8440:20:7","nodeType":"YulFunctionCall","src":"8440:20:7"}],"functionName":{"name":"mload","nativeSrc":"8434:5:7","nodeType":"YulIdentifier","src":"8434:5:7"},"nativeSrc":"8434:27:7","nodeType":"YulFunctionCall","src":"8434:27:7"}],"functionName":{"name":"checkField","nativeSrc":"8423:10:7","nodeType":"YulIdentifier","src":"8423:10:7"},"nativeSrc":"8423:39:7","nodeType":"YulFunctionCall","src":"8423:39:7"},"nativeSrc":"8423:39:7","nodeType":"YulExpressionStatement","src":"8423:39:7"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8500:6:7","nodeType":"YulIdentifier","src":"8500:6:7"},{"name":"pEval_s1","nativeSrc":"8508:8:7","nodeType":"YulIdentifier","src":"8508:8:7"}],"functionName":{"name":"add","nativeSrc":"8496:3:7","nodeType":"YulIdentifier","src":"8496:3:7"},"nativeSrc":"8496:21:7","nodeType":"YulFunctionCall","src":"8496:21:7"}],"functionName":{"name":"mload","nativeSrc":"8490:5:7","nodeType":"YulIdentifier","src":"8490:5:7"},"nativeSrc":"8490:28:7","nodeType":"YulFunctionCall","src":"8490:28:7"}],"functionName":{"name":"checkField","nativeSrc":"8479:10:7","nodeType":"YulIdentifier","src":"8479:10:7"},"nativeSrc":"8479:40:7","nodeType":"YulFunctionCall","src":"8479:40:7"},"nativeSrc":"8479:40:7","nodeType":"YulExpressionStatement","src":"8479:40:7"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8557:6:7","nodeType":"YulIdentifier","src":"8557:6:7"},{"name":"pEval_s2","nativeSrc":"8565:8:7","nodeType":"YulIdentifier","src":"8565:8:7"}],"functionName":{"name":"add","nativeSrc":"8553:3:7","nodeType":"YulIdentifier","src":"8553:3:7"},"nativeSrc":"8553:21:7","nodeType":"YulFunctionCall","src":"8553:21:7"}],"functionName":{"name":"mload","nativeSrc":"8547:5:7","nodeType":"YulIdentifier","src":"8547:5:7"},"nativeSrc":"8547:28:7","nodeType":"YulFunctionCall","src":"8547:28:7"}],"functionName":{"name":"checkField","nativeSrc":"8536:10:7","nodeType":"YulIdentifier","src":"8536:10:7"},"nativeSrc":"8536:40:7","nodeType":"YulFunctionCall","src":"8536:40:7"},"nativeSrc":"8536:40:7","nodeType":"YulExpressionStatement","src":"8536:40:7"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8614:6:7","nodeType":"YulIdentifier","src":"8614:6:7"},{"name":"pEval_zw","nativeSrc":"8622:8:7","nodeType":"YulIdentifier","src":"8622:8:7"}],"functionName":{"name":"add","nativeSrc":"8610:3:7","nodeType":"YulIdentifier","src":"8610:3:7"},"nativeSrc":"8610:21:7","nodeType":"YulFunctionCall","src":"8610:21:7"}],"functionName":{"name":"mload","nativeSrc":"8604:5:7","nodeType":"YulIdentifier","src":"8604:5:7"},"nativeSrc":"8604:28:7","nodeType":"YulFunctionCall","src":"8604:28:7"}],"functionName":{"name":"checkField","nativeSrc":"8593:10:7","nodeType":"YulIdentifier","src":"8593:10:7"},"nativeSrc":"8593:40:7","nodeType":"YulFunctionCall","src":"8593:40:7"},"nativeSrc":"8593:40:7","nodeType":"YulExpressionStatement","src":"8593:40:7"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8671:6:7","nodeType":"YulIdentifier","src":"8671:6:7"},{"name":"pEval_r","nativeSrc":"8679:7:7","nodeType":"YulIdentifier","src":"8679:7:7"}],"functionName":{"name":"add","nativeSrc":"8667:3:7","nodeType":"YulIdentifier","src":"8667:3:7"},"nativeSrc":"8667:20:7","nodeType":"YulFunctionCall","src":"8667:20:7"}],"functionName":{"name":"mload","nativeSrc":"8661:5:7","nodeType":"YulIdentifier","src":"8661:5:7"},"nativeSrc":"8661:27:7","nodeType":"YulFunctionCall","src":"8661:27:7"}],"functionName":{"name":"checkField","nativeSrc":"8650:10:7","nodeType":"YulIdentifier","src":"8650:10:7"},"nativeSrc":"8650:39:7","nodeType":"YulFunctionCall","src":"8650:39:7"},"nativeSrc":"8650:39:7","nodeType":"YulExpressionStatement","src":"8650:39:7"}]},"name":"checkInput","nativeSrc":"8126:668:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"pProof","nativeSrc":"8146:6:7","nodeType":"YulTypedName","src":"8146:6:7","type":""}],"src":"8126:668:7"},{"body":{"nativeSrc":"8872:2776:7","nodeType":"YulBlock","src":"8872:2776:7","statements":[{"nativeSrc":"8903:5:7","nodeType":"YulVariableDeclaration","src":"8903:5:7","variables":[{"name":"a","nativeSrc":"8907:1:7","nodeType":"YulTypedName","src":"8907:1:7","type":""}]},{"nativeSrc":"8925:5:7","nodeType":"YulVariableDeclaration","src":"8925:5:7","variables":[{"name":"b","nativeSrc":"8929:1:7","nodeType":"YulTypedName","src":"8929:1:7","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"8977:4:7","nodeType":"YulIdentifier","src":"8977:4:7"},{"kind":"number","nativeSrc":"8983:3:7","nodeType":"YulLiteral","src":"8983:3:7","type":"","value":"704"}],"functionName":{"name":"add","nativeSrc":"8973:3:7","nodeType":"YulIdentifier","src":"8973:3:7"},"nativeSrc":"8973:15:7","nodeType":"YulFunctionCall","src":"8973:15:7"},{"arguments":[{"arguments":[{"name":"pPublic","nativeSrc":"9002:7:7","nodeType":"YulIdentifier","src":"9002:7:7"},{"kind":"number","nativeSrc":"9011:2:7","nodeType":"YulLiteral","src":"9011:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8997:3:7","nodeType":"YulIdentifier","src":"8997:3:7"},"nativeSrc":"8997:17:7","nodeType":"YulFunctionCall","src":"8997:17:7"}],"functionName":{"name":"mload","nativeSrc":"8990:5:7","nodeType":"YulIdentifier","src":"8990:5:7"},"nativeSrc":"8990:25:7","nodeType":"YulFunctionCall","src":"8990:25:7"}],"functionName":{"name":"mstore","nativeSrc":"8965:6:7","nodeType":"YulIdentifier","src":"8965:6:7"},"nativeSrc":"8965:51:7","nodeType":"YulFunctionCall","src":"8965:51:7"},"nativeSrc":"8965:51:7","nodeType":"YulExpressionStatement","src":"8965:51:7"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9062:4:7","nodeType":"YulIdentifier","src":"9062:4:7"},{"kind":"number","nativeSrc":"9068:3:7","nodeType":"YulLiteral","src":"9068:3:7","type":"","value":"736"}],"functionName":{"name":"add","nativeSrc":"9058:3:7","nodeType":"YulIdentifier","src":"9058:3:7"},"nativeSrc":"9058:15:7","nodeType":"YulFunctionCall","src":"9058:15:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9087:6:7","nodeType":"YulIdentifier","src":"9087:6:7"},{"name":"pA","nativeSrc":"9095:2:7","nodeType":"YulIdentifier","src":"9095:2:7"}],"functionName":{"name":"add","nativeSrc":"9082:3:7","nodeType":"YulIdentifier","src":"9082:3:7"},"nativeSrc":"9082:16:7","nodeType":"YulFunctionCall","src":"9082:16:7"}],"functionName":{"name":"mload","nativeSrc":"9075:5:7","nodeType":"YulIdentifier","src":"9075:5:7"},"nativeSrc":"9075:24:7","nodeType":"YulFunctionCall","src":"9075:24:7"}],"functionName":{"name":"mstore","nativeSrc":"9050:6:7","nodeType":"YulIdentifier","src":"9050:6:7"},"nativeSrc":"9050:50:7","nodeType":"YulFunctionCall","src":"9050:50:7"},"nativeSrc":"9050:50:7","nodeType":"YulExpressionStatement","src":"9050:50:7"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9129:4:7","nodeType":"YulIdentifier","src":"9129:4:7"},{"kind":"number","nativeSrc":"9135:3:7","nodeType":"YulLiteral","src":"9135:3:7","type":"","value":"768"}],"functionName":{"name":"add","nativeSrc":"9125:3:7","nodeType":"YulIdentifier","src":"9125:3:7"},"nativeSrc":"9125:15:7","nodeType":"YulFunctionCall","src":"9125:15:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9154:6:7","nodeType":"YulIdentifier","src":"9154:6:7"},{"arguments":[{"name":"pA","nativeSrc":"9166:2:7","nodeType":"YulIdentifier","src":"9166:2:7"},{"kind":"number","nativeSrc":"9169:2:7","nodeType":"YulLiteral","src":"9169:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9162:3:7","nodeType":"YulIdentifier","src":"9162:3:7"},"nativeSrc":"9162:10:7","nodeType":"YulFunctionCall","src":"9162:10:7"}],"functionName":{"name":"add","nativeSrc":"9149:3:7","nodeType":"YulIdentifier","src":"9149:3:7"},"nativeSrc":"9149:24:7","nodeType":"YulFunctionCall","src":"9149:24:7"}],"functionName":{"name":"mload","nativeSrc":"9142:5:7","nodeType":"YulIdentifier","src":"9142:5:7"},"nativeSrc":"9142:32:7","nodeType":"YulFunctionCall","src":"9142:32:7"}],"functionName":{"name":"mstore","nativeSrc":"9117:6:7","nodeType":"YulIdentifier","src":"9117:6:7"},"nativeSrc":"9117:58:7","nodeType":"YulFunctionCall","src":"9117:58:7"},"nativeSrc":"9117:58:7","nodeType":"YulExpressionStatement","src":"9117:58:7"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9204:4:7","nodeType":"YulIdentifier","src":"9204:4:7"},{"kind":"number","nativeSrc":"9210:3:7","nodeType":"YulLiteral","src":"9210:3:7","type":"","value":"800"}],"functionName":{"name":"add","nativeSrc":"9200:3:7","nodeType":"YulIdentifier","src":"9200:3:7"},"nativeSrc":"9200:15:7","nodeType":"YulFunctionCall","src":"9200:15:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9229:6:7","nodeType":"YulIdentifier","src":"9229:6:7"},{"arguments":[{"name":"pA","nativeSrc":"9241:2:7","nodeType":"YulIdentifier","src":"9241:2:7"},{"kind":"number","nativeSrc":"9244:2:7","nodeType":"YulLiteral","src":"9244:2:7","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9237:3:7","nodeType":"YulIdentifier","src":"9237:3:7"},"nativeSrc":"9237:10:7","nodeType":"YulFunctionCall","src":"9237:10:7"}],"functionName":{"name":"add","nativeSrc":"9224:3:7","nodeType":"YulIdentifier","src":"9224:3:7"},"nativeSrc":"9224:24:7","nodeType":"YulFunctionCall","src":"9224:24:7"}],"functionName":{"name":"mload","nativeSrc":"9217:5:7","nodeType":"YulIdentifier","src":"9217:5:7"},"nativeSrc":"9217:32:7","nodeType":"YulFunctionCall","src":"9217:32:7"}],"functionName":{"name":"mstore","nativeSrc":"9192:6:7","nodeType":"YulIdentifier","src":"9192:6:7"},"nativeSrc":"9192:58:7","nodeType":"YulFunctionCall","src":"9192:58:7"},"nativeSrc":"9192:58:7","nodeType":"YulExpressionStatement","src":"9192:58:7"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9279:4:7","nodeType":"YulIdentifier","src":"9279:4:7"},{"kind":"number","nativeSrc":"9285:3:7","nodeType":"YulLiteral","src":"9285:3:7","type":"","value":"832"}],"functionName":{"name":"add","nativeSrc":"9275:3:7","nodeType":"YulIdentifier","src":"9275:3:7"},"nativeSrc":"9275:15:7","nodeType":"YulFunctionCall","src":"9275:15:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9304:6:7","nodeType":"YulIdentifier","src":"9304:6:7"},{"arguments":[{"name":"pA","nativeSrc":"9316:2:7","nodeType":"YulIdentifier","src":"9316:2:7"},{"kind":"number","nativeSrc":"9319:2:7","nodeType":"YulLiteral","src":"9319:2:7","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9312:3:7","nodeType":"YulIdentifier","src":"9312:3:7"},"nativeSrc":"9312:10:7","nodeType":"YulFunctionCall","src":"9312:10:7"}],"functionName":{"name":"add","nativeSrc":"9299:3:7","nodeType":"YulIdentifier","src":"9299:3:7"},"nativeSrc":"9299:24:7","nodeType":"YulFunctionCall","src":"9299:24:7"}],"functionName":{"name":"mload","nativeSrc":"9292:5:7","nodeType":"YulIdentifier","src":"9292:5:7"},"nativeSrc":"9292:32:7","nodeType":"YulFunctionCall","src":"9292:32:7"}],"functionName":{"name":"mstore","nativeSrc":"9267:6:7","nodeType":"YulIdentifier","src":"9267:6:7"},"nativeSrc":"9267:58:7","nodeType":"YulFunctionCall","src":"9267:58:7"},"nativeSrc":"9267:58:7","nodeType":"YulExpressionStatement","src":"9267:58:7"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9354:4:7","nodeType":"YulIdentifier","src":"9354:4:7"},{"kind":"number","nativeSrc":"9360:3:7","nodeType":"YulLiteral","src":"9360:3:7","type":"","value":"864"}],"functionName":{"name":"add","nativeSrc":"9350:3:7","nodeType":"YulIdentifier","src":"9350:3:7"},"nativeSrc":"9350:15:7","nodeType":"YulFunctionCall","src":"9350:15:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9379:6:7","nodeType":"YulIdentifier","src":"9379:6:7"},{"arguments":[{"name":"pA","nativeSrc":"9391:2:7","nodeType":"YulIdentifier","src":"9391:2:7"},{"kind":"number","nativeSrc":"9394:3:7","nodeType":"YulLiteral","src":"9394:3:7","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9387:3:7","nodeType":"YulIdentifier","src":"9387:3:7"},"nativeSrc":"9387:11:7","nodeType":"YulFunctionCall","src":"9387:11:7"}],"functionName":{"name":"add","nativeSrc":"9374:3:7","nodeType":"YulIdentifier","src":"9374:3:7"},"nativeSrc":"9374:25:7","nodeType":"YulFunctionCall","src":"9374:25:7"}],"functionName":{"name":"mload","nativeSrc":"9367:5:7","nodeType":"YulIdentifier","src":"9367:5:7"},"nativeSrc":"9367:33:7","nodeType":"YulFunctionCall","src":"9367:33:7"}],"functionName":{"name":"mstore","nativeSrc":"9342:6:7","nodeType":"YulIdentifier","src":"9342:6:7"},"nativeSrc":"9342:59:7","nodeType":"YulFunctionCall","src":"9342:59:7"},"nativeSrc":"9342:59:7","nodeType":"YulExpressionStatement","src":"9342:59:7"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9430:4:7","nodeType":"YulIdentifier","src":"9430:4:7"},{"kind":"number","nativeSrc":"9436:3:7","nodeType":"YulLiteral","src":"9436:3:7","type":"","value":"896"}],"functionName":{"name":"add","nativeSrc":"9426:3:7","nodeType":"YulIdentifier","src":"9426:3:7"},"nativeSrc":"9426:15:7","nodeType":"YulFunctionCall","src":"9426:15:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9455:6:7","nodeType":"YulIdentifier","src":"9455:6:7"},{"arguments":[{"name":"pA","nativeSrc":"9467:2:7","nodeType":"YulIdentifier","src":"9467:2:7"},{"kind":"number","nativeSrc":"9470:3:7","nodeType":"YulLiteral","src":"9470:3:7","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"9463:3:7","nodeType":"YulIdentifier","src":"9463:3:7"},"nativeSrc":"9463:11:7","nodeType":"YulFunctionCall","src":"9463:11:7"}],"functionName":{"name":"add","nativeSrc":"9450:3:7","nodeType":"YulIdentifier","src":"9450:3:7"},"nativeSrc":"9450:25:7","nodeType":"YulFunctionCall","src":"9450:25:7"}],"functionName":{"name":"mload","nativeSrc":"9443:5:7","nodeType":"YulIdentifier","src":"9443:5:7"},"nativeSrc":"9443:33:7","nodeType":"YulFunctionCall","src":"9443:33:7"}],"functionName":{"name":"mstore","nativeSrc":"9418:6:7","nodeType":"YulIdentifier","src":"9418:6:7"},"nativeSrc":"9418:59:7","nodeType":"YulFunctionCall","src":"9418:59:7"},"nativeSrc":"9418:59:7","nodeType":"YulExpressionStatement","src":"9418:59:7"},{"nativeSrc":"9511:47:7","nodeType":"YulAssignment","src":"9511:47:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9534:4:7","nodeType":"YulIdentifier","src":"9534:4:7"},{"name":"lastMem","nativeSrc":"9540:7:7","nodeType":"YulIdentifier","src":"9540:7:7"}],"functionName":{"name":"add","nativeSrc":"9530:3:7","nodeType":"YulIdentifier","src":"9530:3:7"},"nativeSrc":"9530:18:7","nodeType":"YulFunctionCall","src":"9530:18:7"},{"kind":"number","nativeSrc":"9550:3:7","nodeType":"YulLiteral","src":"9550:3:7","type":"","value":"224"}],"functionName":{"name":"keccak256","nativeSrc":"9520:9:7","nodeType":"YulIdentifier","src":"9520:9:7"},"nativeSrc":"9520:34:7","nodeType":"YulFunctionCall","src":"9520:34:7"},{"name":"q","nativeSrc":"9556:1:7","nodeType":"YulIdentifier","src":"9556:1:7"}],"functionName":{"name":"mod","nativeSrc":"9516:3:7","nodeType":"YulIdentifier","src":"9516:3:7"},"nativeSrc":"9516:42:7","nodeType":"YulFunctionCall","src":"9516:42:7"},"variableNames":[{"name":"b","nativeSrc":"9511:1:7","nodeType":"YulIdentifier","src":"9511:1:7"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9588:4:7","nodeType":"YulIdentifier","src":"9588:4:7"},{"name":"pBeta","nativeSrc":"9594:5:7","nodeType":"YulIdentifier","src":"9594:5:7"}],"functionName":{"name":"add","nativeSrc":"9584:3:7","nodeType":"YulIdentifier","src":"9584:3:7"},"nativeSrc":"9584:16:7","nodeType":"YulFunctionCall","src":"9584:16:7"},{"name":"b","nativeSrc":"9602:1:7","nodeType":"YulIdentifier","src":"9602:1:7"}],"functionName":{"name":"mstore","nativeSrc":"9576:6:7","nodeType":"YulIdentifier","src":"9576:6:7"},"nativeSrc":"9576:28:7","nodeType":"YulFunctionCall","src":"9576:28:7"},"nativeSrc":"9576:28:7","nodeType":"YulExpressionStatement","src":"9576:28:7"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9633:4:7","nodeType":"YulIdentifier","src":"9633:4:7"},{"name":"pGamma","nativeSrc":"9639:6:7","nodeType":"YulIdentifier","src":"9639:6:7"}],"functionName":{"name":"add","nativeSrc":"9629:3:7","nodeType":"YulIdentifier","src":"9629:3:7"},"nativeSrc":"9629:17:7","nodeType":"YulFunctionCall","src":"9629:17:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9666:4:7","nodeType":"YulIdentifier","src":"9666:4:7"},{"name":"pBeta","nativeSrc":"9672:5:7","nodeType":"YulIdentifier","src":"9672:5:7"}],"functionName":{"name":"add","nativeSrc":"9662:3:7","nodeType":"YulIdentifier","src":"9662:3:7"},"nativeSrc":"9662:16:7","nodeType":"YulFunctionCall","src":"9662:16:7"},{"kind":"number","nativeSrc":"9680:2:7","nodeType":"YulLiteral","src":"9680:2:7","type":"","value":"32"}],"functionName":{"name":"keccak256","nativeSrc":"9652:9:7","nodeType":"YulIdentifier","src":"9652:9:7"},"nativeSrc":"9652:31:7","nodeType":"YulFunctionCall","src":"9652:31:7"},{"name":"q","nativeSrc":"9685:1:7","nodeType":"YulIdentifier","src":"9685:1:7"}],"functionName":{"name":"mod","nativeSrc":"9648:3:7","nodeType":"YulIdentifier","src":"9648:3:7"},"nativeSrc":"9648:39:7","nodeType":"YulFunctionCall","src":"9648:39:7"}],"functionName":{"name":"mstore","nativeSrc":"9621:6:7","nodeType":"YulIdentifier","src":"9621:6:7"},"nativeSrc":"9621:67:7","nodeType":"YulFunctionCall","src":"9621:67:7"},"nativeSrc":"9621:67:7","nodeType":"YulExpressionStatement","src":"9621:67:7"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9717:4:7","nodeType":"YulIdentifier","src":"9717:4:7"},{"name":"pAlpha","nativeSrc":"9723:6:7","nodeType":"YulIdentifier","src":"9723:6:7"}],"functionName":{"name":"add","nativeSrc":"9713:3:7","nodeType":"YulIdentifier","src":"9713:3:7"},"nativeSrc":"9713:17:7","nodeType":"YulFunctionCall","src":"9713:17:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9750:6:7","nodeType":"YulIdentifier","src":"9750:6:7"},{"name":"pZ","nativeSrc":"9758:2:7","nodeType":"YulIdentifier","src":"9758:2:7"}],"functionName":{"name":"add","nativeSrc":"9746:3:7","nodeType":"YulIdentifier","src":"9746:3:7"},"nativeSrc":"9746:15:7","nodeType":"YulFunctionCall","src":"9746:15:7"},{"kind":"number","nativeSrc":"9763:2:7","nodeType":"YulLiteral","src":"9763:2:7","type":"","value":"64"}],"functionName":{"name":"keccak256","nativeSrc":"9736:9:7","nodeType":"YulIdentifier","src":"9736:9:7"},"nativeSrc":"9736:30:7","nodeType":"YulFunctionCall","src":"9736:30:7"},{"name":"q","nativeSrc":"9768:1:7","nodeType":"YulIdentifier","src":"9768:1:7"}],"functionName":{"name":"mod","nativeSrc":"9732:3:7","nodeType":"YulIdentifier","src":"9732:3:7"},"nativeSrc":"9732:38:7","nodeType":"YulFunctionCall","src":"9732:38:7"}],"functionName":{"name":"mstore","nativeSrc":"9705:6:7","nodeType":"YulIdentifier","src":"9705:6:7"},"nativeSrc":"9705:66:7","nodeType":"YulFunctionCall","src":"9705:66:7"},"nativeSrc":"9705:66:7","nodeType":"YulExpressionStatement","src":"9705:66:7"},{"nativeSrc":"9805:45:7","nodeType":"YulAssignment","src":"9805:45:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9828:6:7","nodeType":"YulIdentifier","src":"9828:6:7"},{"name":"pT1","nativeSrc":"9836:3:7","nodeType":"YulIdentifier","src":"9836:3:7"}],"functionName":{"name":"add","nativeSrc":"9824:3:7","nodeType":"YulIdentifier","src":"9824:3:7"},"nativeSrc":"9824:16:7","nodeType":"YulFunctionCall","src":"9824:16:7"},{"kind":"number","nativeSrc":"9842:3:7","nodeType":"YulLiteral","src":"9842:3:7","type":"","value":"192"}],"functionName":{"name":"keccak256","nativeSrc":"9814:9:7","nodeType":"YulIdentifier","src":"9814:9:7"},"nativeSrc":"9814:32:7","nodeType":"YulFunctionCall","src":"9814:32:7"},{"name":"q","nativeSrc":"9848:1:7","nodeType":"YulIdentifier","src":"9848:1:7"}],"functionName":{"name":"mod","nativeSrc":"9810:3:7","nodeType":"YulIdentifier","src":"9810:3:7"},"nativeSrc":"9810:40:7","nodeType":"YulFunctionCall","src":"9810:40:7"},"variableNames":[{"name":"a","nativeSrc":"9805:1:7","nodeType":"YulIdentifier","src":"9805:1:7"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9879:4:7","nodeType":"YulIdentifier","src":"9879:4:7"},{"name":"pXi","nativeSrc":"9885:3:7","nodeType":"YulIdentifier","src":"9885:3:7"}],"functionName":{"name":"add","nativeSrc":"9875:3:7","nodeType":"YulIdentifier","src":"9875:3:7"},"nativeSrc":"9875:14:7","nodeType":"YulFunctionCall","src":"9875:14:7"},{"name":"a","nativeSrc":"9891:1:7","nodeType":"YulIdentifier","src":"9891:1:7"}],"functionName":{"name":"mstore","nativeSrc":"9867:6:7","nodeType":"YulIdentifier","src":"9867:6:7"},"nativeSrc":"9867:26:7","nodeType":"YulFunctionCall","src":"9867:26:7"},"nativeSrc":"9867:26:7","nodeType":"YulExpressionStatement","src":"9867:26:7"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9922:4:7","nodeType":"YulIdentifier","src":"9922:4:7"},{"name":"pBetaXi","nativeSrc":"9928:7:7","nodeType":"YulIdentifier","src":"9928:7:7"}],"functionName":{"name":"add","nativeSrc":"9918:3:7","nodeType":"YulIdentifier","src":"9918:3:7"},"nativeSrc":"9918:18:7","nodeType":"YulFunctionCall","src":"9918:18:7"},{"arguments":[{"name":"b","nativeSrc":"9945:1:7","nodeType":"YulIdentifier","src":"9945:1:7"},{"name":"a","nativeSrc":"9948:1:7","nodeType":"YulIdentifier","src":"9948:1:7"},{"name":"q","nativeSrc":"9951:1:7","nodeType":"YulIdentifier","src":"9951:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"9938:6:7","nodeType":"YulIdentifier","src":"9938:6:7"},"nativeSrc":"9938:15:7","nodeType":"YulFunctionCall","src":"9938:15:7"}],"functionName":{"name":"mstore","nativeSrc":"9910:6:7","nodeType":"YulIdentifier","src":"9910:6:7"},"nativeSrc":"9910:44:7","nodeType":"YulFunctionCall","src":"9910:44:7"},"nativeSrc":"9910:44:7","nodeType":"YulExpressionStatement","src":"9910:44:7"},{"nativeSrc":"9988:19:7","nodeType":"YulAssignment","src":"9988:19:7","value":{"arguments":[{"name":"a","nativeSrc":"9999:1:7","nodeType":"YulIdentifier","src":"9999:1:7"},{"name":"a","nativeSrc":"10002:1:7","nodeType":"YulIdentifier","src":"10002:1:7"},{"name":"q","nativeSrc":"10005:1:7","nodeType":"YulIdentifier","src":"10005:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"9992:6:7","nodeType":"YulIdentifier","src":"9992:6:7"},"nativeSrc":"9992:15:7","nodeType":"YulFunctionCall","src":"9992:15:7"},"variableNames":[{"name":"a","nativeSrc":"9988:1:7","nodeType":"YulIdentifier","src":"9988:1:7"}]},{"nativeSrc":"10041:19:7","nodeType":"YulAssignment","src":"10041:19:7","value":{"arguments":[{"name":"a","nativeSrc":"10052:1:7","nodeType":"YulIdentifier","src":"10052:1:7"},{"name":"a","nativeSrc":"10055:1:7","nodeType":"YulIdentifier","src":"10055:1:7"},{"name":"q","nativeSrc":"10058:1:7","nodeType":"YulIdentifier","src":"10058:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"10045:6:7","nodeType":"YulIdentifier","src":"10045:6:7"},"nativeSrc":"10045:15:7","nodeType":"YulFunctionCall","src":"10045:15:7"},"variableNames":[{"name":"a","nativeSrc":"10041:1:7","nodeType":"YulIdentifier","src":"10041:1:7"}]},{"nativeSrc":"10094:19:7","nodeType":"YulAssignment","src":"10094:19:7","value":{"arguments":[{"name":"a","nativeSrc":"10105:1:7","nodeType":"YulIdentifier","src":"10105:1:7"},{"name":"a","nativeSrc":"10108:1:7","nodeType":"YulIdentifier","src":"10108:1:7"},{"name":"q","nativeSrc":"10111:1:7","nodeType":"YulIdentifier","src":"10111:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"10098:6:7","nodeType":"YulIdentifier","src":"10098:6:7"},"nativeSrc":"10098:15:7","nodeType":"YulFunctionCall","src":"10098:15:7"},"variableNames":[{"name":"a","nativeSrc":"10094:1:7","nodeType":"YulIdentifier","src":"10094:1:7"}]},{"nativeSrc":"10147:19:7","nodeType":"YulAssignment","src":"10147:19:7","value":{"arguments":[{"name":"a","nativeSrc":"10158:1:7","nodeType":"YulIdentifier","src":"10158:1:7"},{"name":"a","nativeSrc":"10161:1:7","nodeType":"YulIdentifier","src":"10161:1:7"},{"name":"q","nativeSrc":"10164:1:7","nodeType":"YulIdentifier","src":"10164:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"10151:6:7","nodeType":"YulIdentifier","src":"10151:6:7"},"nativeSrc":"10151:15:7","nodeType":"YulFunctionCall","src":"10151:15:7"},"variableNames":[{"name":"a","nativeSrc":"10147:1:7","nodeType":"YulIdentifier","src":"10147:1:7"}]},{"nativeSrc":"10200:19:7","nodeType":"YulAssignment","src":"10200:19:7","value":{"arguments":[{"name":"a","nativeSrc":"10211:1:7","nodeType":"YulIdentifier","src":"10211:1:7"},{"name":"a","nativeSrc":"10214:1:7","nodeType":"YulIdentifier","src":"10214:1:7"},{"name":"q","nativeSrc":"10217:1:7","nodeType":"YulIdentifier","src":"10217:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"10204:6:7","nodeType":"YulIdentifier","src":"10204:6:7"},"nativeSrc":"10204:15:7","nodeType":"YulFunctionCall","src":"10204:15:7"},"variableNames":[{"name":"a","nativeSrc":"10200:1:7","nodeType":"YulIdentifier","src":"10200:1:7"}]},{"nativeSrc":"10253:19:7","nodeType":"YulAssignment","src":"10253:19:7","value":{"arguments":[{"name":"a","nativeSrc":"10264:1:7","nodeType":"YulIdentifier","src":"10264:1:7"},{"name":"a","nativeSrc":"10267:1:7","nodeType":"YulIdentifier","src":"10267:1:7"},{"name":"q","nativeSrc":"10270:1:7","nodeType":"YulIdentifier","src":"10270:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"10257:6:7","nodeType":"YulIdentifier","src":"10257:6:7"},"nativeSrc":"10257:15:7","nodeType":"YulFunctionCall","src":"10257:15:7"},"variableNames":[{"name":"a","nativeSrc":"10253:1:7","nodeType":"YulIdentifier","src":"10253:1:7"}]},{"nativeSrc":"10306:19:7","nodeType":"YulAssignment","src":"10306:19:7","value":{"arguments":[{"name":"a","nativeSrc":"10317:1:7","nodeType":"YulIdentifier","src":"10317:1:7"},{"name":"a","nativeSrc":"10320:1:7","nodeType":"YulIdentifier","src":"10320:1:7"},{"name":"q","nativeSrc":"10323:1:7","nodeType":"YulIdentifier","src":"10323:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"10310:6:7","nodeType":"YulIdentifier","src":"10310:6:7"},"nativeSrc":"10310:15:7","nodeType":"YulFunctionCall","src":"10310:15:7"},"variableNames":[{"name":"a","nativeSrc":"10306:1:7","nodeType":"YulIdentifier","src":"10306:1:7"}]},{"nativeSrc":"10359:19:7","nodeType":"YulAssignment","src":"10359:19:7","value":{"arguments":[{"name":"a","nativeSrc":"10370:1:7","nodeType":"YulIdentifier","src":"10370:1:7"},{"name":"a","nativeSrc":"10373:1:7","nodeType":"YulIdentifier","src":"10373:1:7"},{"name":"q","nativeSrc":"10376:1:7","nodeType":"YulIdentifier","src":"10376:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"10363:6:7","nodeType":"YulIdentifier","src":"10363:6:7"},"nativeSrc":"10363:15:7","nodeType":"YulFunctionCall","src":"10363:15:7"},"variableNames":[{"name":"a","nativeSrc":"10359:1:7","nodeType":"YulIdentifier","src":"10359:1:7"}]},{"nativeSrc":"10412:19:7","nodeType":"YulAssignment","src":"10412:19:7","value":{"arguments":[{"name":"a","nativeSrc":"10423:1:7","nodeType":"YulIdentifier","src":"10423:1:7"},{"name":"a","nativeSrc":"10426:1:7","nodeType":"YulIdentifier","src":"10426:1:7"},{"name":"q","nativeSrc":"10429:1:7","nodeType":"YulIdentifier","src":"10429:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"10416:6:7","nodeType":"YulIdentifier","src":"10416:6:7"},"nativeSrc":"10416:15:7","nodeType":"YulFunctionCall","src":"10416:15:7"},"variableNames":[{"name":"a","nativeSrc":"10412:1:7","nodeType":"YulIdentifier","src":"10412:1:7"}]},{"nativeSrc":"10465:19:7","nodeType":"YulAssignment","src":"10465:19:7","value":{"arguments":[{"name":"a","nativeSrc":"10476:1:7","nodeType":"YulIdentifier","src":"10476:1:7"},{"name":"a","nativeSrc":"10479:1:7","nodeType":"YulIdentifier","src":"10479:1:7"},{"name":"q","nativeSrc":"10482:1:7","nodeType":"YulIdentifier","src":"10482:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"10469:6:7","nodeType":"YulIdentifier","src":"10469:6:7"},"nativeSrc":"10469:15:7","nodeType":"YulFunctionCall","src":"10469:15:7"},"variableNames":[{"name":"a","nativeSrc":"10465:1:7","nodeType":"YulIdentifier","src":"10465:1:7"}]},{"nativeSrc":"10518:19:7","nodeType":"YulAssignment","src":"10518:19:7","value":{"arguments":[{"name":"a","nativeSrc":"10529:1:7","nodeType":"YulIdentifier","src":"10529:1:7"},{"name":"a","nativeSrc":"10532:1:7","nodeType":"YulIdentifier","src":"10532:1:7"},{"name":"q","nativeSrc":"10535:1:7","nodeType":"YulIdentifier","src":"10535:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"10522:6:7","nodeType":"YulIdentifier","src":"10522:6:7"},"nativeSrc":"10522:15:7","nodeType":"YulFunctionCall","src":"10522:15:7"},"variableNames":[{"name":"a","nativeSrc":"10518:1:7","nodeType":"YulIdentifier","src":"10518:1:7"}]},{"nativeSrc":"10571:19:7","nodeType":"YulAssignment","src":"10571:19:7","value":{"arguments":[{"name":"a","nativeSrc":"10582:1:7","nodeType":"YulIdentifier","src":"10582:1:7"},{"name":"a","nativeSrc":"10585:1:7","nodeType":"YulIdentifier","src":"10585:1:7"},{"name":"q","nativeSrc":"10588:1:7","nodeType":"YulIdentifier","src":"10588:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"10575:6:7","nodeType":"YulIdentifier","src":"10575:6:7"},"nativeSrc":"10575:15:7","nodeType":"YulFunctionCall","src":"10575:15:7"},"variableNames":[{"name":"a","nativeSrc":"10571:1:7","nodeType":"YulIdentifier","src":"10571:1:7"}]},{"nativeSrc":"10624:19:7","nodeType":"YulAssignment","src":"10624:19:7","value":{"arguments":[{"name":"a","nativeSrc":"10635:1:7","nodeType":"YulIdentifier","src":"10635:1:7"},{"name":"a","nativeSrc":"10638:1:7","nodeType":"YulIdentifier","src":"10638:1:7"},{"name":"q","nativeSrc":"10641:1:7","nodeType":"YulIdentifier","src":"10641:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"10628:6:7","nodeType":"YulIdentifier","src":"10628:6:7"},"nativeSrc":"10628:15:7","nodeType":"YulFunctionCall","src":"10628:15:7"},"variableNames":[{"name":"a","nativeSrc":"10624:1:7","nodeType":"YulIdentifier","src":"10624:1:7"}]},{"nativeSrc":"10677:19:7","nodeType":"YulAssignment","src":"10677:19:7","value":{"arguments":[{"name":"a","nativeSrc":"10688:1:7","nodeType":"YulIdentifier","src":"10688:1:7"},{"name":"a","nativeSrc":"10691:1:7","nodeType":"YulIdentifier","src":"10691:1:7"},{"name":"q","nativeSrc":"10694:1:7","nodeType":"YulIdentifier","src":"10694:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"10681:6:7","nodeType":"YulIdentifier","src":"10681:6:7"},"nativeSrc":"10681:15:7","nodeType":"YulFunctionCall","src":"10681:15:7"},"variableNames":[{"name":"a","nativeSrc":"10677:1:7","nodeType":"YulIdentifier","src":"10677:1:7"}]},{"nativeSrc":"10730:19:7","nodeType":"YulAssignment","src":"10730:19:7","value":{"arguments":[{"name":"a","nativeSrc":"10741:1:7","nodeType":"YulIdentifier","src":"10741:1:7"},{"name":"a","nativeSrc":"10744:1:7","nodeType":"YulIdentifier","src":"10744:1:7"},{"name":"q","nativeSrc":"10747:1:7","nodeType":"YulIdentifier","src":"10747:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"10734:6:7","nodeType":"YulIdentifier","src":"10734:6:7"},"nativeSrc":"10734:15:7","nodeType":"YulFunctionCall","src":"10734:15:7"},"variableNames":[{"name":"a","nativeSrc":"10730:1:7","nodeType":"YulIdentifier","src":"10730:1:7"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"10795:4:7","nodeType":"YulIdentifier","src":"10795:4:7"},{"name":"pXin","nativeSrc":"10801:4:7","nodeType":"YulIdentifier","src":"10801:4:7"}],"functionName":{"name":"add","nativeSrc":"10791:3:7","nodeType":"YulIdentifier","src":"10791:3:7"},"nativeSrc":"10791:15:7","nodeType":"YulFunctionCall","src":"10791:15:7"},{"name":"a","nativeSrc":"10808:1:7","nodeType":"YulIdentifier","src":"10808:1:7"}],"functionName":{"name":"mstore","nativeSrc":"10783:6:7","nodeType":"YulIdentifier","src":"10783:6:7"},"nativeSrc":"10783:27:7","nodeType":"YulFunctionCall","src":"10783:27:7"},"nativeSrc":"10783:27:7","nodeType":"YulExpressionStatement","src":"10783:27:7"},{"nativeSrc":"10827:28:7","nodeType":"YulAssignment","src":"10827:28:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"10843:1:7","nodeType":"YulIdentifier","src":"10843:1:7"},{"kind":"number","nativeSrc":"10846:1:7","nodeType":"YulLiteral","src":"10846:1:7","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"10839:3:7","nodeType":"YulIdentifier","src":"10839:3:7"},"nativeSrc":"10839:9:7","nodeType":"YulFunctionCall","src":"10839:9:7"},{"name":"q","nativeSrc":"10849:1:7","nodeType":"YulIdentifier","src":"10849:1:7"}],"functionName":{"name":"add","nativeSrc":"10835:3:7","nodeType":"YulIdentifier","src":"10835:3:7"},"nativeSrc":"10835:16:7","nodeType":"YulFunctionCall","src":"10835:16:7"},{"name":"q","nativeSrc":"10853:1:7","nodeType":"YulIdentifier","src":"10853:1:7"}],"functionName":{"name":"mod","nativeSrc":"10831:3:7","nodeType":"YulIdentifier","src":"10831:3:7"},"nativeSrc":"10831:24:7","nodeType":"YulFunctionCall","src":"10831:24:7"},"variableNames":[{"name":"a","nativeSrc":"10827:1:7","nodeType":"YulIdentifier","src":"10827:1:7"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"10884:4:7","nodeType":"YulIdentifier","src":"10884:4:7"},{"name":"pZh","nativeSrc":"10890:3:7","nodeType":"YulIdentifier","src":"10890:3:7"}],"functionName":{"name":"add","nativeSrc":"10880:3:7","nodeType":"YulIdentifier","src":"10880:3:7"},"nativeSrc":"10880:14:7","nodeType":"YulFunctionCall","src":"10880:14:7"},{"name":"a","nativeSrc":"10896:1:7","nodeType":"YulIdentifier","src":"10896:1:7"}],"functionName":{"name":"mstore","nativeSrc":"10872:6:7","nodeType":"YulIdentifier","src":"10872:6:7"},"nativeSrc":"10872:26:7","nodeType":"YulFunctionCall","src":"10872:26:7"},"nativeSrc":"10872:26:7","nodeType":"YulExpressionStatement","src":"10872:26:7"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"10927:4:7","nodeType":"YulIdentifier","src":"10927:4:7"},{"name":"pZhInv","nativeSrc":"10933:6:7","nodeType":"YulIdentifier","src":"10933:6:7"}],"functionName":{"name":"add","nativeSrc":"10923:3:7","nodeType":"YulIdentifier","src":"10923:3:7"},"nativeSrc":"10923:17:7","nodeType":"YulFunctionCall","src":"10923:17:7"},{"name":"a","nativeSrc":"10942:1:7","nodeType":"YulIdentifier","src":"10942:1:7"}],"functionName":{"name":"mstore","nativeSrc":"10915:6:7","nodeType":"YulIdentifier","src":"10915:6:7"},"nativeSrc":"10915:29:7","nodeType":"YulFunctionCall","src":"10915:29:7"},"nativeSrc":"10915:29:7","nodeType":"YulExpressionStatement","src":"10915:29:7"},{"nativeSrc":"11031:54:7","nodeType":"YulVariableDeclaration","src":"11031:54:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"11059:6:7","nodeType":"YulIdentifier","src":"11059:6:7"},{"name":"pEval_a","nativeSrc":"11067:7:7","nodeType":"YulIdentifier","src":"11067:7:7"}],"functionName":{"name":"add","nativeSrc":"11055:3:7","nodeType":"YulIdentifier","src":"11055:3:7"},"nativeSrc":"11055:20:7","nodeType":"YulFunctionCall","src":"11055:20:7"},{"kind":"number","nativeSrc":"11077:3:7","nodeType":"YulLiteral","src":"11077:3:7","type":"","value":"224"}],"functionName":{"name":"keccak256","nativeSrc":"11045:9:7","nodeType":"YulIdentifier","src":"11045:9:7"},"nativeSrc":"11045:36:7","nodeType":"YulFunctionCall","src":"11045:36:7"},{"name":"q","nativeSrc":"11083:1:7","nodeType":"YulIdentifier","src":"11083:1:7"}],"functionName":{"name":"mod","nativeSrc":"11041:3:7","nodeType":"YulIdentifier","src":"11041:3:7"},"nativeSrc":"11041:44:7","nodeType":"YulFunctionCall","src":"11041:44:7"},"variables":[{"name":"v1","nativeSrc":"11035:2:7","nodeType":"YulTypedName","src":"11035:2:7","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11114:4:7","nodeType":"YulIdentifier","src":"11114:4:7"},{"name":"pV1","nativeSrc":"11120:3:7","nodeType":"YulIdentifier","src":"11120:3:7"}],"functionName":{"name":"add","nativeSrc":"11110:3:7","nodeType":"YulIdentifier","src":"11110:3:7"},"nativeSrc":"11110:14:7","nodeType":"YulFunctionCall","src":"11110:14:7"},{"name":"v1","nativeSrc":"11126:2:7","nodeType":"YulIdentifier","src":"11126:2:7"}],"functionName":{"name":"mstore","nativeSrc":"11102:6:7","nodeType":"YulIdentifier","src":"11102:6:7"},"nativeSrc":"11102:27:7","nodeType":"YulFunctionCall","src":"11102:27:7"},"nativeSrc":"11102:27:7","nodeType":"YulExpressionStatement","src":"11102:27:7"},{"nativeSrc":"11146:22:7","nodeType":"YulAssignment","src":"11146:22:7","value":{"arguments":[{"name":"v1","nativeSrc":"11158:2:7","nodeType":"YulIdentifier","src":"11158:2:7"},{"name":"v1","nativeSrc":"11162:2:7","nodeType":"YulIdentifier","src":"11162:2:7"},{"name":"q","nativeSrc":"11166:1:7","nodeType":"YulIdentifier","src":"11166:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"11151:6:7","nodeType":"YulIdentifier","src":"11151:6:7"},"nativeSrc":"11151:17:7","nodeType":"YulFunctionCall","src":"11151:17:7"},"variableNames":[{"name":"a","nativeSrc":"11146:1:7","nodeType":"YulIdentifier","src":"11146:1:7"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11197:4:7","nodeType":"YulIdentifier","src":"11197:4:7"},{"name":"pV2","nativeSrc":"11203:3:7","nodeType":"YulIdentifier","src":"11203:3:7"}],"functionName":{"name":"add","nativeSrc":"11193:3:7","nodeType":"YulIdentifier","src":"11193:3:7"},"nativeSrc":"11193:14:7","nodeType":"YulFunctionCall","src":"11193:14:7"},{"name":"a","nativeSrc":"11209:1:7","nodeType":"YulIdentifier","src":"11209:1:7"}],"functionName":{"name":"mstore","nativeSrc":"11185:6:7","nodeType":"YulIdentifier","src":"11185:6:7"},"nativeSrc":"11185:26:7","nodeType":"YulFunctionCall","src":"11185:26:7"},"nativeSrc":"11185:26:7","nodeType":"YulExpressionStatement","src":"11185:26:7"},{"nativeSrc":"11228:21:7","nodeType":"YulAssignment","src":"11228:21:7","value":{"arguments":[{"name":"a","nativeSrc":"11240:1:7","nodeType":"YulIdentifier","src":"11240:1:7"},{"name":"v1","nativeSrc":"11243:2:7","nodeType":"YulIdentifier","src":"11243:2:7"},{"name":"q","nativeSrc":"11247:1:7","nodeType":"YulIdentifier","src":"11247:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"11233:6:7","nodeType":"YulIdentifier","src":"11233:6:7"},"nativeSrc":"11233:16:7","nodeType":"YulFunctionCall","src":"11233:16:7"},"variableNames":[{"name":"a","nativeSrc":"11228:1:7","nodeType":"YulIdentifier","src":"11228:1:7"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11278:4:7","nodeType":"YulIdentifier","src":"11278:4:7"},{"name":"pV3","nativeSrc":"11284:3:7","nodeType":"YulIdentifier","src":"11284:3:7"}],"functionName":{"name":"add","nativeSrc":"11274:3:7","nodeType":"YulIdentifier","src":"11274:3:7"},"nativeSrc":"11274:14:7","nodeType":"YulFunctionCall","src":"11274:14:7"},{"name":"a","nativeSrc":"11290:1:7","nodeType":"YulIdentifier","src":"11290:1:7"}],"functionName":{"name":"mstore","nativeSrc":"11266:6:7","nodeType":"YulIdentifier","src":"11266:6:7"},"nativeSrc":"11266:26:7","nodeType":"YulFunctionCall","src":"11266:26:7"},"nativeSrc":"11266:26:7","nodeType":"YulExpressionStatement","src":"11266:26:7"},{"nativeSrc":"11309:21:7","nodeType":"YulAssignment","src":"11309:21:7","value":{"arguments":[{"name":"a","nativeSrc":"11321:1:7","nodeType":"YulIdentifier","src":"11321:1:7"},{"name":"v1","nativeSrc":"11324:2:7","nodeType":"YulIdentifier","src":"11324:2:7"},{"name":"q","nativeSrc":"11328:1:7","nodeType":"YulIdentifier","src":"11328:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"11314:6:7","nodeType":"YulIdentifier","src":"11314:6:7"},"nativeSrc":"11314:16:7","nodeType":"YulFunctionCall","src":"11314:16:7"},"variableNames":[{"name":"a","nativeSrc":"11309:1:7","nodeType":"YulIdentifier","src":"11309:1:7"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11359:4:7","nodeType":"YulIdentifier","src":"11359:4:7"},{"name":"pV4","nativeSrc":"11365:3:7","nodeType":"YulIdentifier","src":"11365:3:7"}],"functionName":{"name":"add","nativeSrc":"11355:3:7","nodeType":"YulIdentifier","src":"11355:3:7"},"nativeSrc":"11355:14:7","nodeType":"YulFunctionCall","src":"11355:14:7"},{"name":"a","nativeSrc":"11371:1:7","nodeType":"YulIdentifier","src":"11371:1:7"}],"functionName":{"name":"mstore","nativeSrc":"11347:6:7","nodeType":"YulIdentifier","src":"11347:6:7"},"nativeSrc":"11347:26:7","nodeType":"YulFunctionCall","src":"11347:26:7"},"nativeSrc":"11347:26:7","nodeType":"YulExpressionStatement","src":"11347:26:7"},{"nativeSrc":"11390:21:7","nodeType":"YulAssignment","src":"11390:21:7","value":{"arguments":[{"name":"a","nativeSrc":"11402:1:7","nodeType":"YulIdentifier","src":"11402:1:7"},{"name":"v1","nativeSrc":"11405:2:7","nodeType":"YulIdentifier","src":"11405:2:7"},{"name":"q","nativeSrc":"11409:1:7","nodeType":"YulIdentifier","src":"11409:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"11395:6:7","nodeType":"YulIdentifier","src":"11395:6:7"},"nativeSrc":"11395:16:7","nodeType":"YulFunctionCall","src":"11395:16:7"},"variableNames":[{"name":"a","nativeSrc":"11390:1:7","nodeType":"YulIdentifier","src":"11390:1:7"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11440:4:7","nodeType":"YulIdentifier","src":"11440:4:7"},{"name":"pV5","nativeSrc":"11446:3:7","nodeType":"YulIdentifier","src":"11446:3:7"}],"functionName":{"name":"add","nativeSrc":"11436:3:7","nodeType":"YulIdentifier","src":"11436:3:7"},"nativeSrc":"11436:14:7","nodeType":"YulFunctionCall","src":"11436:14:7"},{"name":"a","nativeSrc":"11452:1:7","nodeType":"YulIdentifier","src":"11452:1:7"}],"functionName":{"name":"mstore","nativeSrc":"11428:6:7","nodeType":"YulIdentifier","src":"11428:6:7"},"nativeSrc":"11428:26:7","nodeType":"YulFunctionCall","src":"11428:26:7"},"nativeSrc":"11428:26:7","nodeType":"YulExpressionStatement","src":"11428:26:7"},{"nativeSrc":"11471:21:7","nodeType":"YulAssignment","src":"11471:21:7","value":{"arguments":[{"name":"a","nativeSrc":"11483:1:7","nodeType":"YulIdentifier","src":"11483:1:7"},{"name":"v1","nativeSrc":"11486:2:7","nodeType":"YulIdentifier","src":"11486:2:7"},{"name":"q","nativeSrc":"11490:1:7","nodeType":"YulIdentifier","src":"11490:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"11476:6:7","nodeType":"YulIdentifier","src":"11476:6:7"},"nativeSrc":"11476:16:7","nodeType":"YulFunctionCall","src":"11476:16:7"},"variableNames":[{"name":"a","nativeSrc":"11471:1:7","nodeType":"YulIdentifier","src":"11471:1:7"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11521:4:7","nodeType":"YulIdentifier","src":"11521:4:7"},{"name":"pV6","nativeSrc":"11527:3:7","nodeType":"YulIdentifier","src":"11527:3:7"}],"functionName":{"name":"add","nativeSrc":"11517:3:7","nodeType":"YulIdentifier","src":"11517:3:7"},"nativeSrc":"11517:14:7","nodeType":"YulFunctionCall","src":"11517:14:7"},{"name":"a","nativeSrc":"11533:1:7","nodeType":"YulIdentifier","src":"11533:1:7"}],"functionName":{"name":"mstore","nativeSrc":"11509:6:7","nodeType":"YulIdentifier","src":"11509:6:7"},"nativeSrc":"11509:26:7","nodeType":"YulFunctionCall","src":"11509:26:7"},"nativeSrc":"11509:26:7","nodeType":"YulExpressionStatement","src":"11509:26:7"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11581:4:7","nodeType":"YulIdentifier","src":"11581:4:7"},{"name":"pU","nativeSrc":"11587:2:7","nodeType":"YulIdentifier","src":"11587:2:7"}],"functionName":{"name":"add","nativeSrc":"11577:3:7","nodeType":"YulIdentifier","src":"11577:3:7"},"nativeSrc":"11577:13:7","nodeType":"YulFunctionCall","src":"11577:13:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"11610:6:7","nodeType":"YulIdentifier","src":"11610:6:7"},{"name":"pWxi","nativeSrc":"11618:4:7","nodeType":"YulIdentifier","src":"11618:4:7"}],"functionName":{"name":"add","nativeSrc":"11606:3:7","nodeType":"YulIdentifier","src":"11606:3:7"},"nativeSrc":"11606:17:7","nodeType":"YulFunctionCall","src":"11606:17:7"},{"kind":"number","nativeSrc":"11625:3:7","nodeType":"YulLiteral","src":"11625:3:7","type":"","value":"128"}],"functionName":{"name":"keccak256","nativeSrc":"11596:9:7","nodeType":"YulIdentifier","src":"11596:9:7"},"nativeSrc":"11596:33:7","nodeType":"YulFunctionCall","src":"11596:33:7"},{"name":"q","nativeSrc":"11631:1:7","nodeType":"YulIdentifier","src":"11631:1:7"}],"functionName":{"name":"mod","nativeSrc":"11592:3:7","nodeType":"YulIdentifier","src":"11592:3:7"},"nativeSrc":"11592:41:7","nodeType":"YulFunctionCall","src":"11592:41:7"}],"functionName":{"name":"mstore","nativeSrc":"11569:6:7","nodeType":"YulIdentifier","src":"11569:6:7"},"nativeSrc":"11569:65:7","nodeType":"YulFunctionCall","src":"11569:65:7"},"nativeSrc":"11569:65:7","nodeType":"YulExpressionStatement","src":"11569:65:7"}]},"name":"calculateChallanges","nativeSrc":"8820:2828:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"pProof","nativeSrc":"8849:6:7","nodeType":"YulTypedName","src":"8849:6:7","type":""},{"name":"pMem","nativeSrc":"8857:4:7","nodeType":"YulTypedName","src":"8857:4:7","type":""},{"name":"pPublic","nativeSrc":"8863:7:7","nodeType":"YulTypedName","src":"8863:7:7","type":""}],"src":"8820:2828:7"},{"body":{"nativeSrc":"11707:1140:7","nodeType":"YulBlock","src":"11707:1140:7","statements":[{"nativeSrc":"11726:10:7","nodeType":"YulVariableDeclaration","src":"11726:10:7","value":{"kind":"number","nativeSrc":"11735:1:7","nodeType":"YulLiteral","src":"11735:1:7","type":"","value":"1"},"variables":[{"name":"w","nativeSrc":"11730:1:7","nodeType":"YulTypedName","src":"11730:1:7","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11818:4:7","nodeType":"YulIdentifier","src":"11818:4:7"},{"name":"pEval_l1","nativeSrc":"11824:8:7","nodeType":"YulIdentifier","src":"11824:8:7"}],"functionName":{"name":"add","nativeSrc":"11814:3:7","nodeType":"YulIdentifier","src":"11814:3:7"},"nativeSrc":"11814:19:7","nodeType":"YulFunctionCall","src":"11814:19:7"},{"arguments":[{"name":"n","nativeSrc":"11888:1:7","nodeType":"YulIdentifier","src":"11888:1:7"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"12037:4:7","nodeType":"YulIdentifier","src":"12037:4:7"},{"name":"pXi","nativeSrc":"12043:3:7","nodeType":"YulIdentifier","src":"12043:3:7"}],"functionName":{"name":"add","nativeSrc":"12033:3:7","nodeType":"YulIdentifier","src":"12033:3:7"},"nativeSrc":"12033:14:7","nodeType":"YulFunctionCall","src":"12033:14:7"}],"functionName":{"name":"mload","nativeSrc":"12027:5:7","nodeType":"YulIdentifier","src":"12027:5:7"},"nativeSrc":"12027:21:7","nodeType":"YulFunctionCall","src":"12027:21:7"},{"name":"w","nativeSrc":"12087:1:7","nodeType":"YulIdentifier","src":"12087:1:7"}],"functionName":{"name":"sub","nativeSrc":"11986:3:7","nodeType":"YulIdentifier","src":"11986:3:7"},"nativeSrc":"11986:136:7","nodeType":"YulFunctionCall","src":"11986:136:7"},{"name":"q","nativeSrc":"12157:1:7","nodeType":"YulIdentifier","src":"12157:1:7"}],"functionName":{"name":"add","nativeSrc":"11949:3:7","nodeType":"YulIdentifier","src":"11949:3:7"},"nativeSrc":"11949:239:7","nodeType":"YulFunctionCall","src":"11949:239:7"},{"name":"q","nativeSrc":"12218:1:7","nodeType":"YulIdentifier","src":"12218:1:7"}],"functionName":{"name":"mod","nativeSrc":"11916:3:7","nodeType":"YulIdentifier","src":"11916:3:7"},"nativeSrc":"11916:329:7","nodeType":"YulFunctionCall","src":"11916:329:7"},{"name":"q","nativeSrc":"12272:1:7","nodeType":"YulIdentifier","src":"12272:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"11856:6:7","nodeType":"YulIdentifier","src":"11856:6:7"},"nativeSrc":"11856:439:7","nodeType":"YulFunctionCall","src":"11856:439:7"}],"functionName":{"name":"mstore","nativeSrc":"11786:6:7","nodeType":"YulIdentifier","src":"11786:6:7"},"nativeSrc":"11786:527:7","nodeType":"YulFunctionCall","src":"11786:527:7"},"nativeSrc":"11786:527:7","nodeType":"YulExpressionStatement","src":"11786:527:7"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"12398:4:7","nodeType":"YulIdentifier","src":"12398:4:7"},{"name":"pZhInv","nativeSrc":"12404:6:7","nodeType":"YulIdentifier","src":"12404:6:7"}],"functionName":{"name":"add","nativeSrc":"12394:3:7","nodeType":"YulIdentifier","src":"12394:3:7"},"nativeSrc":"12394:17:7","nodeType":"YulFunctionCall","src":"12394:17:7"},{"kind":"number","nativeSrc":"12413:1:7","nodeType":"YulLiteral","src":"12413:1:7","type":"","value":"2"}],"functionName":{"name":"inverseArray","nativeSrc":"12381:12:7","nodeType":"YulIdentifier","src":"12381:12:7"},"nativeSrc":"12381:35:7","nodeType":"YulFunctionCall","src":"12381:35:7"},"nativeSrc":"12381:35:7","nodeType":"YulExpressionStatement","src":"12381:35:7"},{"nativeSrc":"12450:31:7","nodeType":"YulVariableDeclaration","src":"12450:31:7","value":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"12470:4:7","nodeType":"YulIdentifier","src":"12470:4:7"},{"name":"pZh","nativeSrc":"12476:3:7","nodeType":"YulIdentifier","src":"12476:3:7"}],"functionName":{"name":"add","nativeSrc":"12466:3:7","nodeType":"YulIdentifier","src":"12466:3:7"},"nativeSrc":"12466:14:7","nodeType":"YulFunctionCall","src":"12466:14:7"}],"functionName":{"name":"mload","nativeSrc":"12460:5:7","nodeType":"YulIdentifier","src":"12460:5:7"},"nativeSrc":"12460:21:7","nodeType":"YulFunctionCall","src":"12460:21:7"},"variables":[{"name":"zh","nativeSrc":"12454:2:7","nodeType":"YulTypedName","src":"12454:2:7","type":""}]},{"nativeSrc":"12498:6:7","nodeType":"YulAssignment","src":"12498:6:7","value":{"kind":"number","nativeSrc":"12503:1:7","nodeType":"YulLiteral","src":"12503:1:7","type":"","value":"1"},"variableNames":[{"name":"w","nativeSrc":"12498:1:7","nodeType":"YulIdentifier","src":"12498:1:7"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"12587:4:7","nodeType":"YulIdentifier","src":"12587:4:7"},{"name":"pEval_l1","nativeSrc":"12593:8:7","nodeType":"YulIdentifier","src":"12593:8:7"}],"functionName":{"name":"add","nativeSrc":"12583:3:7","nodeType":"YulIdentifier","src":"12583:3:7"},"nativeSrc":"12583:20:7","nodeType":"YulFunctionCall","src":"12583:20:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"12668:4:7","nodeType":"YulIdentifier","src":"12668:4:7"},{"name":"pEval_l1","nativeSrc":"12674:8:7","nodeType":"YulIdentifier","src":"12674:8:7"}],"functionName":{"name":"add","nativeSrc":"12664:3:7","nodeType":"YulIdentifier","src":"12664:3:7"},"nativeSrc":"12664:20:7","nodeType":"YulFunctionCall","src":"12664:20:7"}],"functionName":{"name":"mload","nativeSrc":"12658:5:7","nodeType":"YulIdentifier","src":"12658:5:7"},"nativeSrc":"12658:27:7","nodeType":"YulFunctionCall","src":"12658:27:7"},{"name":"zh","nativeSrc":"12711:2:7","nodeType":"YulIdentifier","src":"12711:2:7"},{"name":"q","nativeSrc":"12739:1:7","nodeType":"YulIdentifier","src":"12739:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"12626:6:7","nodeType":"YulIdentifier","src":"12626:6:7"},"nativeSrc":"12626:136:7","nodeType":"YulFunctionCall","src":"12626:136:7"}],"functionName":{"name":"mstore","nativeSrc":"12555:6:7","nodeType":"YulIdentifier","src":"12555:6:7"},"nativeSrc":"12555:225:7","nodeType":"YulFunctionCall","src":"12555:225:7"},"nativeSrc":"12555:225:7","nodeType":"YulExpressionStatement","src":"12555:225:7"}]},"name":"calculateLagrange","nativeSrc":"11674:1173:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"pMem","nativeSrc":"11701:4:7","nodeType":"YulTypedName","src":"11701:4:7","type":""}],"src":"11674:1173:7"},{"body":{"nativeSrc":"12906:618:7","nodeType":"YulBlock","src":"12906:618:7","statements":[{"nativeSrc":"12924:11:7","nodeType":"YulVariableDeclaration","src":"12924:11:7","value":{"kind":"number","nativeSrc":"12934:1:7","nodeType":"YulLiteral","src":"12934:1:7","type":"","value":"0"},"variables":[{"name":"pl","nativeSrc":"12928:2:7","nodeType":"YulTypedName","src":"12928:2:7","type":""}]},{"nativeSrc":"12987:428:7","nodeType":"YulAssignment","src":"12987:428:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pl","nativeSrc":"13080:2:7","nodeType":"YulIdentifier","src":"13080:2:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"13164:4:7","nodeType":"YulIdentifier","src":"13164:4:7"},{"name":"pEval_l1","nativeSrc":"13170:8:7","nodeType":"YulIdentifier","src":"13170:8:7"}],"functionName":{"name":"add","nativeSrc":"13160:3:7","nodeType":"YulIdentifier","src":"13160:3:7"},"nativeSrc":"13160:19:7","nodeType":"YulFunctionCall","src":"13160:19:7"}],"functionName":{"name":"mload","nativeSrc":"13154:5:7","nodeType":"YulIdentifier","src":"13154:5:7"},"nativeSrc":"13154:26:7","nodeType":"YulFunctionCall","src":"13154:26:7"},{"arguments":[{"arguments":[{"name":"pPub","nativeSrc":"13224:4:7","nodeType":"YulIdentifier","src":"13224:4:7"},{"kind":"number","nativeSrc":"13230:2:7","nodeType":"YulLiteral","src":"13230:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13220:3:7","nodeType":"YulIdentifier","src":"13220:3:7"},"nativeSrc":"13220:13:7","nodeType":"YulFunctionCall","src":"13220:13:7"}],"functionName":{"name":"mload","nativeSrc":"13214:5:7","nodeType":"YulIdentifier","src":"13214:5:7"},"nativeSrc":"13214:20:7","nodeType":"YulFunctionCall","src":"13214:20:7"},{"name":"q","nativeSrc":"13268:1:7","nodeType":"YulIdentifier","src":"13268:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"13114:6:7","nodeType":"YulIdentifier","src":"13114:6:7"},"nativeSrc":"13114:185:7","nodeType":"YulFunctionCall","src":"13114:185:7"}],"functionName":{"name":"sub","nativeSrc":"13047:3:7","nodeType":"YulIdentifier","src":"13047:3:7"},"nativeSrc":"13047:278:7","nodeType":"YulFunctionCall","src":"13047:278:7"},{"name":"q","nativeSrc":"13351:1:7","nodeType":"YulIdentifier","src":"13351:1:7"}],"functionName":{"name":"add","nativeSrc":"13018:3:7","nodeType":"YulIdentifier","src":"13018:3:7"},"nativeSrc":"13018:356:7","nodeType":"YulFunctionCall","src":"13018:356:7"},{"name":"q","nativeSrc":"13396:1:7","nodeType":"YulIdentifier","src":"13396:1:7"}],"functionName":{"name":"mod","nativeSrc":"12993:3:7","nodeType":"YulIdentifier","src":"12993:3:7"},"nativeSrc":"12993:422:7","nodeType":"YulFunctionCall","src":"12993:422:7"},"variableNames":[{"name":"pl","nativeSrc":"12987:2:7","nodeType":"YulIdentifier","src":"12987:2:7"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"13477:4:7","nodeType":"YulIdentifier","src":"13477:4:7"},{"name":"pPl","nativeSrc":"13483:3:7","nodeType":"YulIdentifier","src":"13483:3:7"}],"functionName":{"name":"add","nativeSrc":"13473:3:7","nodeType":"YulIdentifier","src":"13473:3:7"},"nativeSrc":"13473:14:7","nodeType":"YulFunctionCall","src":"13473:14:7"},{"name":"pl","nativeSrc":"13489:2:7","nodeType":"YulIdentifier","src":"13489:2:7"}],"functionName":{"name":"mstore","nativeSrc":"13466:6:7","nodeType":"YulIdentifier","src":"13466:6:7"},"nativeSrc":"13466:26:7","nodeType":"YulFunctionCall","src":"13466:26:7"},"nativeSrc":"13466:26:7","nodeType":"YulExpressionStatement","src":"13466:26:7"}]},"name":"calculatePl","nativeSrc":"12873:651:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"pMem","nativeSrc":"12894:4:7","nodeType":"YulTypedName","src":"12894:4:7","type":""},{"name":"pPub","nativeSrc":"12900:4:7","nodeType":"YulTypedName","src":"12900:4:7","type":""}],"src":"12873:651:7"},{"body":{"nativeSrc":"13572:2162:7","nodeType":"YulBlock","src":"13572:2162:7","statements":[{"nativeSrc":"13590:5:7","nodeType":"YulVariableDeclaration","src":"13590:5:7","variables":[{"name":"t","nativeSrc":"13594:1:7","nodeType":"YulTypedName","src":"13594:1:7","type":""}]},{"nativeSrc":"13612:6:7","nodeType":"YulVariableDeclaration","src":"13612:6:7","variables":[{"name":"t1","nativeSrc":"13616:2:7","nodeType":"YulTypedName","src":"13616:2:7","type":""}]},{"nativeSrc":"13635:6:7","nodeType":"YulVariableDeclaration","src":"13635:6:7","variables":[{"name":"t2","nativeSrc":"13639:2:7","nodeType":"YulTypedName","src":"13639:2:7","type":""}]},{"nativeSrc":"13658:146:7","nodeType":"YulAssignment","src":"13658:146:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"13701:6:7","nodeType":"YulIdentifier","src":"13701:6:7"},{"name":"pEval_r","nativeSrc":"13709:7:7","nodeType":"YulIdentifier","src":"13709:7:7"}],"functionName":{"name":"add","nativeSrc":"13697:3:7","nodeType":"YulIdentifier","src":"13697:3:7"},"nativeSrc":"13697:20:7","nodeType":"YulFunctionCall","src":"13697:20:7"}],"functionName":{"name":"mload","nativeSrc":"13691:5:7","nodeType":"YulIdentifier","src":"13691:5:7"},"nativeSrc":"13691:27:7","nodeType":"YulFunctionCall","src":"13691:27:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"13751:4:7","nodeType":"YulIdentifier","src":"13751:4:7"},{"name":"pPl","nativeSrc":"13757:3:7","nodeType":"YulIdentifier","src":"13757:3:7"}],"functionName":{"name":"add","nativeSrc":"13747:3:7","nodeType":"YulIdentifier","src":"13747:3:7"},"nativeSrc":"13747:14:7","nodeType":"YulFunctionCall","src":"13747:14:7"}],"functionName":{"name":"mload","nativeSrc":"13741:5:7","nodeType":"YulIdentifier","src":"13741:5:7"},"nativeSrc":"13741:21:7","nodeType":"YulFunctionCall","src":"13741:21:7"},{"name":"q","nativeSrc":"13785:1:7","nodeType":"YulIdentifier","src":"13785:1:7"}],"functionName":{"name":"addmod","nativeSrc":"13663:6:7","nodeType":"YulIdentifier","src":"13663:6:7"},"nativeSrc":"13663:141:7","nodeType":"YulFunctionCall","src":"13663:141:7"},"variableNames":[{"name":"t","nativeSrc":"13658:1:7","nodeType":"YulIdentifier","src":"13658:1:7"}]},{"nativeSrc":"13838:148:7","nodeType":"YulAssignment","src":"13838:148:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"13882:6:7","nodeType":"YulIdentifier","src":"13882:6:7"},{"name":"pEval_s1","nativeSrc":"13890:8:7","nodeType":"YulIdentifier","src":"13890:8:7"}],"functionName":{"name":"add","nativeSrc":"13878:3:7","nodeType":"YulIdentifier","src":"13878:3:7"},"nativeSrc":"13878:21:7","nodeType":"YulFunctionCall","src":"13878:21:7"}],"functionName":{"name":"mload","nativeSrc":"13872:5:7","nodeType":"YulIdentifier","src":"13872:5:7"},"nativeSrc":"13872:28:7","nodeType":"YulFunctionCall","src":"13872:28:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"13932:4:7","nodeType":"YulIdentifier","src":"13932:4:7"},{"name":"pBeta","nativeSrc":"13938:5:7","nodeType":"YulIdentifier","src":"13938:5:7"}],"functionName":{"name":"add","nativeSrc":"13928:3:7","nodeType":"YulIdentifier","src":"13928:3:7"},"nativeSrc":"13928:16:7","nodeType":"YulFunctionCall","src":"13928:16:7"}],"functionName":{"name":"mload","nativeSrc":"13922:5:7","nodeType":"YulIdentifier","src":"13922:5:7"},"nativeSrc":"13922:23:7","nodeType":"YulFunctionCall","src":"13922:23:7"},{"name":"q","nativeSrc":"13967:1:7","nodeType":"YulIdentifier","src":"13967:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"13844:6:7","nodeType":"YulIdentifier","src":"13844:6:7"},"nativeSrc":"13844:142:7","nodeType":"YulFunctionCall","src":"13844:142:7"},"variableNames":[{"name":"t1","nativeSrc":"13838:2:7","nodeType":"YulIdentifier","src":"13838:2:7"}]},{"nativeSrc":"14004:126:7","nodeType":"YulAssignment","src":"14004:126:7","value":{"arguments":[{"name":"t1","nativeSrc":"14038:2:7","nodeType":"YulIdentifier","src":"14038:2:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"14072:6:7","nodeType":"YulIdentifier","src":"14072:6:7"},{"name":"pEval_a","nativeSrc":"14080:7:7","nodeType":"YulIdentifier","src":"14080:7:7"}],"functionName":{"name":"add","nativeSrc":"14068:3:7","nodeType":"YulIdentifier","src":"14068:3:7"},"nativeSrc":"14068:20:7","nodeType":"YulFunctionCall","src":"14068:20:7"}],"functionName":{"name":"mload","nativeSrc":"14062:5:7","nodeType":"YulIdentifier","src":"14062:5:7"},"nativeSrc":"14062:27:7","nodeType":"YulFunctionCall","src":"14062:27:7"},{"name":"q","nativeSrc":"14111:1:7","nodeType":"YulIdentifier","src":"14111:1:7"}],"functionName":{"name":"addmod","nativeSrc":"14010:6:7","nodeType":"YulIdentifier","src":"14010:6:7"},"nativeSrc":"14010:120:7","nodeType":"YulFunctionCall","src":"14010:120:7"},"variableNames":[{"name":"t1","nativeSrc":"14004:2:7","nodeType":"YulIdentifier","src":"14004:2:7"}]},{"nativeSrc":"14164:123:7","nodeType":"YulAssignment","src":"14164:123:7","value":{"arguments":[{"name":"t1","nativeSrc":"14198:2:7","nodeType":"YulIdentifier","src":"14198:2:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"14232:4:7","nodeType":"YulIdentifier","src":"14232:4:7"},{"name":"pGamma","nativeSrc":"14238:6:7","nodeType":"YulIdentifier","src":"14238:6:7"}],"functionName":{"name":"add","nativeSrc":"14228:3:7","nodeType":"YulIdentifier","src":"14228:3:7"},"nativeSrc":"14228:17:7","nodeType":"YulFunctionCall","src":"14228:17:7"}],"functionName":{"name":"mload","nativeSrc":"14222:5:7","nodeType":"YulIdentifier","src":"14222:5:7"},"nativeSrc":"14222:24:7","nodeType":"YulFunctionCall","src":"14222:24:7"},{"name":"q","nativeSrc":"14268:1:7","nodeType":"YulIdentifier","src":"14268:1:7"}],"functionName":{"name":"addmod","nativeSrc":"14170:6:7","nodeType":"YulIdentifier","src":"14170:6:7"},"nativeSrc":"14170:117:7","nodeType":"YulFunctionCall","src":"14170:117:7"},"variableNames":[{"name":"t1","nativeSrc":"14164:2:7","nodeType":"YulIdentifier","src":"14164:2:7"}]},{"nativeSrc":"14305:148:7","nodeType":"YulAssignment","src":"14305:148:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"14349:6:7","nodeType":"YulIdentifier","src":"14349:6:7"},{"name":"pEval_s2","nativeSrc":"14357:8:7","nodeType":"YulIdentifier","src":"14357:8:7"}],"functionName":{"name":"add","nativeSrc":"14345:3:7","nodeType":"YulIdentifier","src":"14345:3:7"},"nativeSrc":"14345:21:7","nodeType":"YulFunctionCall","src":"14345:21:7"}],"functionName":{"name":"mload","nativeSrc":"14339:5:7","nodeType":"YulIdentifier","src":"14339:5:7"},"nativeSrc":"14339:28:7","nodeType":"YulFunctionCall","src":"14339:28:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"14399:4:7","nodeType":"YulIdentifier","src":"14399:4:7"},{"name":"pBeta","nativeSrc":"14405:5:7","nodeType":"YulIdentifier","src":"14405:5:7"}],"functionName":{"name":"add","nativeSrc":"14395:3:7","nodeType":"YulIdentifier","src":"14395:3:7"},"nativeSrc":"14395:16:7","nodeType":"YulFunctionCall","src":"14395:16:7"}],"functionName":{"name":"mload","nativeSrc":"14389:5:7","nodeType":"YulIdentifier","src":"14389:5:7"},"nativeSrc":"14389:23:7","nodeType":"YulFunctionCall","src":"14389:23:7"},{"name":"q","nativeSrc":"14434:1:7","nodeType":"YulIdentifier","src":"14434:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"14311:6:7","nodeType":"YulIdentifier","src":"14311:6:7"},"nativeSrc":"14311:142:7","nodeType":"YulFunctionCall","src":"14311:142:7"},"variableNames":[{"name":"t2","nativeSrc":"14305:2:7","nodeType":"YulIdentifier","src":"14305:2:7"}]},{"nativeSrc":"14471:126:7","nodeType":"YulAssignment","src":"14471:126:7","value":{"arguments":[{"name":"t2","nativeSrc":"14505:2:7","nodeType":"YulIdentifier","src":"14505:2:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"14539:6:7","nodeType":"YulIdentifier","src":"14539:6:7"},{"name":"pEval_b","nativeSrc":"14547:7:7","nodeType":"YulIdentifier","src":"14547:7:7"}],"functionName":{"name":"add","nativeSrc":"14535:3:7","nodeType":"YulIdentifier","src":"14535:3:7"},"nativeSrc":"14535:20:7","nodeType":"YulFunctionCall","src":"14535:20:7"}],"functionName":{"name":"mload","nativeSrc":"14529:5:7","nodeType":"YulIdentifier","src":"14529:5:7"},"nativeSrc":"14529:27:7","nodeType":"YulFunctionCall","src":"14529:27:7"},{"name":"q","nativeSrc":"14578:1:7","nodeType":"YulIdentifier","src":"14578:1:7"}],"functionName":{"name":"addmod","nativeSrc":"14477:6:7","nodeType":"YulIdentifier","src":"14477:6:7"},"nativeSrc":"14477:120:7","nodeType":"YulFunctionCall","src":"14477:120:7"},"variableNames":[{"name":"t2","nativeSrc":"14471:2:7","nodeType":"YulIdentifier","src":"14471:2:7"}]},{"nativeSrc":"14631:123:7","nodeType":"YulAssignment","src":"14631:123:7","value":{"arguments":[{"name":"t2","nativeSrc":"14665:2:7","nodeType":"YulIdentifier","src":"14665:2:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"14699:4:7","nodeType":"YulIdentifier","src":"14699:4:7"},{"name":"pGamma","nativeSrc":"14705:6:7","nodeType":"YulIdentifier","src":"14705:6:7"}],"functionName":{"name":"add","nativeSrc":"14695:3:7","nodeType":"YulIdentifier","src":"14695:3:7"},"nativeSrc":"14695:17:7","nodeType":"YulFunctionCall","src":"14695:17:7"}],"functionName":{"name":"mload","nativeSrc":"14689:5:7","nodeType":"YulIdentifier","src":"14689:5:7"},"nativeSrc":"14689:24:7","nodeType":"YulFunctionCall","src":"14689:24:7"},{"name":"q","nativeSrc":"14735:1:7","nodeType":"YulIdentifier","src":"14735:1:7"}],"functionName":{"name":"addmod","nativeSrc":"14637:6:7","nodeType":"YulIdentifier","src":"14637:6:7"},"nativeSrc":"14637:117:7","nodeType":"YulFunctionCall","src":"14637:117:7"},"variableNames":[{"name":"t2","nativeSrc":"14631:2:7","nodeType":"YulIdentifier","src":"14631:2:7"}]},{"nativeSrc":"14788:23:7","nodeType":"YulAssignment","src":"14788:23:7","value":{"arguments":[{"name":"t1","nativeSrc":"14801:2:7","nodeType":"YulIdentifier","src":"14801:2:7"},{"name":"t2","nativeSrc":"14805:2:7","nodeType":"YulIdentifier","src":"14805:2:7"},{"name":"q","nativeSrc":"14809:1:7","nodeType":"YulIdentifier","src":"14809:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"14794:6:7","nodeType":"YulIdentifier","src":"14794:6:7"},"nativeSrc":"14794:17:7","nodeType":"YulFunctionCall","src":"14794:17:7"},"variableNames":[{"name":"t1","nativeSrc":"14788:2:7","nodeType":"YulIdentifier","src":"14788:2:7"}]},{"nativeSrc":"14845:148:7","nodeType":"YulAssignment","src":"14845:148:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"14889:6:7","nodeType":"YulIdentifier","src":"14889:6:7"},{"name":"pEval_c","nativeSrc":"14897:7:7","nodeType":"YulIdentifier","src":"14897:7:7"}],"functionName":{"name":"add","nativeSrc":"14885:3:7","nodeType":"YulIdentifier","src":"14885:3:7"},"nativeSrc":"14885:20:7","nodeType":"YulFunctionCall","src":"14885:20:7"}],"functionName":{"name":"mload","nativeSrc":"14879:5:7","nodeType":"YulIdentifier","src":"14879:5:7"},"nativeSrc":"14879:27:7","nodeType":"YulFunctionCall","src":"14879:27:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"14938:4:7","nodeType":"YulIdentifier","src":"14938:4:7"},{"name":"pGamma","nativeSrc":"14944:6:7","nodeType":"YulIdentifier","src":"14944:6:7"}],"functionName":{"name":"add","nativeSrc":"14934:3:7","nodeType":"YulIdentifier","src":"14934:3:7"},"nativeSrc":"14934:17:7","nodeType":"YulFunctionCall","src":"14934:17:7"}],"functionName":{"name":"mload","nativeSrc":"14928:5:7","nodeType":"YulIdentifier","src":"14928:5:7"},"nativeSrc":"14928:24:7","nodeType":"YulFunctionCall","src":"14928:24:7"},{"name":"q","nativeSrc":"14974:1:7","nodeType":"YulIdentifier","src":"14974:1:7"}],"functionName":{"name":"addmod","nativeSrc":"14851:6:7","nodeType":"YulIdentifier","src":"14851:6:7"},"nativeSrc":"14851:142:7","nodeType":"YulFunctionCall","src":"14851:142:7"},"variableNames":[{"name":"t2","nativeSrc":"14845:2:7","nodeType":"YulIdentifier","src":"14845:2:7"}]},{"nativeSrc":"15011:23:7","nodeType":"YulAssignment","src":"15011:23:7","value":{"arguments":[{"name":"t1","nativeSrc":"15024:2:7","nodeType":"YulIdentifier","src":"15024:2:7"},{"name":"t2","nativeSrc":"15028:2:7","nodeType":"YulIdentifier","src":"15028:2:7"},{"name":"q","nativeSrc":"15032:1:7","nodeType":"YulIdentifier","src":"15032:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"15017:6:7","nodeType":"YulIdentifier","src":"15017:6:7"},"nativeSrc":"15017:17:7","nodeType":"YulFunctionCall","src":"15017:17:7"},"variableNames":[{"name":"t1","nativeSrc":"15011:2:7","nodeType":"YulIdentifier","src":"15011:2:7"}]},{"nativeSrc":"15051:49:7","nodeType":"YulAssignment","src":"15051:49:7","value":{"arguments":[{"name":"t1","nativeSrc":"15064:2:7","nodeType":"YulIdentifier","src":"15064:2:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"15078:6:7","nodeType":"YulIdentifier","src":"15078:6:7"},{"name":"pEval_zw","nativeSrc":"15086:8:7","nodeType":"YulIdentifier","src":"15086:8:7"}],"functionName":{"name":"add","nativeSrc":"15074:3:7","nodeType":"YulIdentifier","src":"15074:3:7"},"nativeSrc":"15074:21:7","nodeType":"YulFunctionCall","src":"15074:21:7"}],"functionName":{"name":"mload","nativeSrc":"15068:5:7","nodeType":"YulIdentifier","src":"15068:5:7"},"nativeSrc":"15068:28:7","nodeType":"YulFunctionCall","src":"15068:28:7"},{"name":"q","nativeSrc":"15098:1:7","nodeType":"YulIdentifier","src":"15098:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"15057:6:7","nodeType":"YulIdentifier","src":"15057:6:7"},"nativeSrc":"15057:43:7","nodeType":"YulFunctionCall","src":"15057:43:7"},"variableNames":[{"name":"t1","nativeSrc":"15051:2:7","nodeType":"YulIdentifier","src":"15051:2:7"}]},{"nativeSrc":"15117:45:7","nodeType":"YulAssignment","src":"15117:45:7","value":{"arguments":[{"name":"t1","nativeSrc":"15130:2:7","nodeType":"YulIdentifier","src":"15130:2:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15144:4:7","nodeType":"YulIdentifier","src":"15144:4:7"},{"name":"pAlpha","nativeSrc":"15150:6:7","nodeType":"YulIdentifier","src":"15150:6:7"}],"functionName":{"name":"add","nativeSrc":"15140:3:7","nodeType":"YulIdentifier","src":"15140:3:7"},"nativeSrc":"15140:17:7","nodeType":"YulFunctionCall","src":"15140:17:7"}],"functionName":{"name":"mload","nativeSrc":"15134:5:7","nodeType":"YulIdentifier","src":"15134:5:7"},"nativeSrc":"15134:24:7","nodeType":"YulFunctionCall","src":"15134:24:7"},{"name":"q","nativeSrc":"15160:1:7","nodeType":"YulIdentifier","src":"15160:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"15123:6:7","nodeType":"YulIdentifier","src":"15123:6:7"},"nativeSrc":"15123:39:7","nodeType":"YulFunctionCall","src":"15123:39:7"},"variableNames":[{"name":"t1","nativeSrc":"15117:2:7","nodeType":"YulIdentifier","src":"15117:2:7"}]},{"nativeSrc":"15196:149:7","nodeType":"YulAssignment","src":"15196:149:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15240:4:7","nodeType":"YulIdentifier","src":"15240:4:7"},{"name":"pEval_l1","nativeSrc":"15246:8:7","nodeType":"YulIdentifier","src":"15246:8:7"}],"functionName":{"name":"add","nativeSrc":"15236:3:7","nodeType":"YulIdentifier","src":"15236:3:7"},"nativeSrc":"15236:19:7","nodeType":"YulFunctionCall","src":"15236:19:7"}],"functionName":{"name":"mload","nativeSrc":"15230:5:7","nodeType":"YulIdentifier","src":"15230:5:7"},"nativeSrc":"15230:26:7","nodeType":"YulFunctionCall","src":"15230:26:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15289:4:7","nodeType":"YulIdentifier","src":"15289:4:7"},{"name":"pAlpha","nativeSrc":"15295:6:7","nodeType":"YulIdentifier","src":"15295:6:7"}],"functionName":{"name":"add","nativeSrc":"15285:3:7","nodeType":"YulIdentifier","src":"15285:3:7"},"nativeSrc":"15285:17:7","nodeType":"YulFunctionCall","src":"15285:17:7"}],"functionName":{"name":"mload","nativeSrc":"15279:5:7","nodeType":"YulIdentifier","src":"15279:5:7"},"nativeSrc":"15279:24:7","nodeType":"YulFunctionCall","src":"15279:24:7"},{"name":"q","nativeSrc":"15326:1:7","nodeType":"YulIdentifier","src":"15326:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"15202:6:7","nodeType":"YulIdentifier","src":"15202:6:7"},"nativeSrc":"15202:143:7","nodeType":"YulFunctionCall","src":"15202:143:7"},"variableNames":[{"name":"t2","nativeSrc":"15196:2:7","nodeType":"YulIdentifier","src":"15196:2:7"}]},{"nativeSrc":"15363:125:7","nodeType":"YulAssignment","src":"15363:125:7","value":{"arguments":[{"name":"t2","nativeSrc":"15397:2:7","nodeType":"YulIdentifier","src":"15397:2:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15432:4:7","nodeType":"YulIdentifier","src":"15432:4:7"},{"name":"pAlpha","nativeSrc":"15438:6:7","nodeType":"YulIdentifier","src":"15438:6:7"}],"functionName":{"name":"add","nativeSrc":"15428:3:7","nodeType":"YulIdentifier","src":"15428:3:7"},"nativeSrc":"15428:17:7","nodeType":"YulFunctionCall","src":"15428:17:7"}],"functionName":{"name":"mload","nativeSrc":"15422:5:7","nodeType":"YulIdentifier","src":"15422:5:7"},"nativeSrc":"15422:24:7","nodeType":"YulFunctionCall","src":"15422:24:7"},{"name":"q","nativeSrc":"15469:1:7","nodeType":"YulIdentifier","src":"15469:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"15369:6:7","nodeType":"YulIdentifier","src":"15369:6:7"},"nativeSrc":"15369:119:7","nodeType":"YulFunctionCall","src":"15369:119:7"},"variableNames":[{"name":"t2","nativeSrc":"15363:2:7","nodeType":"YulIdentifier","src":"15363:2:7"}]},{"nativeSrc":"15506:23:7","nodeType":"YulAssignment","src":"15506:23:7","value":{"arguments":[{"name":"t1","nativeSrc":"15519:2:7","nodeType":"YulIdentifier","src":"15519:2:7"},{"name":"t2","nativeSrc":"15523:2:7","nodeType":"YulIdentifier","src":"15523:2:7"},{"name":"q","nativeSrc":"15527:1:7","nodeType":"YulIdentifier","src":"15527:1:7"}],"functionName":{"name":"addmod","nativeSrc":"15512:6:7","nodeType":"YulIdentifier","src":"15512:6:7"},"nativeSrc":"15512:17:7","nodeType":"YulFunctionCall","src":"15512:17:7"},"variableNames":[{"name":"t1","nativeSrc":"15506:2:7","nodeType":"YulIdentifier","src":"15506:2:7"}]},{"nativeSrc":"15563:31:7","nodeType":"YulAssignment","src":"15563:31:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"t","nativeSrc":"15580:1:7","nodeType":"YulIdentifier","src":"15580:1:7"},{"name":"q","nativeSrc":"15583:1:7","nodeType":"YulIdentifier","src":"15583:1:7"}],"functionName":{"name":"add","nativeSrc":"15576:3:7","nodeType":"YulIdentifier","src":"15576:3:7"},"nativeSrc":"15576:9:7","nodeType":"YulFunctionCall","src":"15576:9:7"},{"name":"t1","nativeSrc":"15587:2:7","nodeType":"YulIdentifier","src":"15587:2:7"}],"functionName":{"name":"sub","nativeSrc":"15572:3:7","nodeType":"YulIdentifier","src":"15572:3:7"},"nativeSrc":"15572:18:7","nodeType":"YulFunctionCall","src":"15572:18:7"},{"name":"q","nativeSrc":"15592:1:7","nodeType":"YulIdentifier","src":"15592:1:7"}],"functionName":{"name":"mod","nativeSrc":"15568:3:7","nodeType":"YulIdentifier","src":"15568:3:7"},"nativeSrc":"15568:26:7","nodeType":"YulFunctionCall","src":"15568:26:7"},"variableNames":[{"name":"t","nativeSrc":"15563:1:7","nodeType":"YulIdentifier","src":"15563:1:7"}]},{"nativeSrc":"15611:43:7","nodeType":"YulAssignment","src":"15611:43:7","value":{"arguments":[{"name":"t","nativeSrc":"15623:1:7","nodeType":"YulIdentifier","src":"15623:1:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15636:4:7","nodeType":"YulIdentifier","src":"15636:4:7"},{"name":"pZhInv","nativeSrc":"15642:6:7","nodeType":"YulIdentifier","src":"15642:6:7"}],"functionName":{"name":"add","nativeSrc":"15632:3:7","nodeType":"YulIdentifier","src":"15632:3:7"},"nativeSrc":"15632:17:7","nodeType":"YulFunctionCall","src":"15632:17:7"}],"functionName":{"name":"mload","nativeSrc":"15626:5:7","nodeType":"YulIdentifier","src":"15626:5:7"},"nativeSrc":"15626:24:7","nodeType":"YulFunctionCall","src":"15626:24:7"},{"name":"q","nativeSrc":"15652:1:7","nodeType":"YulIdentifier","src":"15652:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"15616:6:7","nodeType":"YulIdentifier","src":"15616:6:7"},"nativeSrc":"15616:38:7","nodeType":"YulFunctionCall","src":"15616:38:7"},"variableNames":[{"name":"t","nativeSrc":"15611:1:7","nodeType":"YulIdentifier","src":"15611:1:7"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15700:4:7","nodeType":"YulIdentifier","src":"15700:4:7"},{"name":"pEval_t","nativeSrc":"15706:7:7","nodeType":"YulIdentifier","src":"15706:7:7"}],"functionName":{"name":"add","nativeSrc":"15696:3:7","nodeType":"YulIdentifier","src":"15696:3:7"},"nativeSrc":"15696:18:7","nodeType":"YulFunctionCall","src":"15696:18:7"},{"name":"t","nativeSrc":"15717:1:7","nodeType":"YulIdentifier","src":"15717:1:7"}],"functionName":{"name":"mstore","nativeSrc":"15688:6:7","nodeType":"YulIdentifier","src":"15688:6:7"},"nativeSrc":"15688:31:7","nodeType":"YulFunctionCall","src":"15688:31:7"},"nativeSrc":"15688:31:7","nodeType":"YulExpressionStatement","src":"15688:31:7"}]},"name":"calculateT","nativeSrc":"13538:2196:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"pProof","nativeSrc":"13558:6:7","nodeType":"YulTypedName","src":"13558:6:7","type":""},{"name":"pMem","nativeSrc":"13566:4:7","nodeType":"YulTypedName","src":"13566:4:7","type":""}],"src":"13538:2196:7"},{"body":{"nativeSrc":"15784:108:7","nodeType":"YulBlock","src":"15784:108:7","statements":[{"expression":{"arguments":[{"name":"pR","nativeSrc":"15809:2:7","nodeType":"YulIdentifier","src":"15809:2:7"},{"arguments":[{"name":"pP","nativeSrc":"15819:2:7","nodeType":"YulIdentifier","src":"15819:2:7"}],"functionName":{"name":"mload","nativeSrc":"15813:5:7","nodeType":"YulIdentifier","src":"15813:5:7"},"nativeSrc":"15813:9:7","nodeType":"YulFunctionCall","src":"15813:9:7"}],"functionName":{"name":"mstore","nativeSrc":"15802:6:7","nodeType":"YulIdentifier","src":"15802:6:7"},"nativeSrc":"15802:21:7","nodeType":"YulFunctionCall","src":"15802:21:7"},"nativeSrc":"15802:21:7","nodeType":"YulExpressionStatement","src":"15802:21:7"},{"expression":{"arguments":[{"arguments":[{"name":"pR","nativeSrc":"15851:2:7","nodeType":"YulIdentifier","src":"15851:2:7"},{"kind":"number","nativeSrc":"15855:2:7","nodeType":"YulLiteral","src":"15855:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15847:3:7","nodeType":"YulIdentifier","src":"15847:3:7"},"nativeSrc":"15847:11:7","nodeType":"YulFunctionCall","src":"15847:11:7"},{"arguments":[{"arguments":[{"name":"pP","nativeSrc":"15870:2:7","nodeType":"YulIdentifier","src":"15870:2:7"},{"kind":"number","nativeSrc":"15873:2:7","nodeType":"YulLiteral","src":"15873:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15866:3:7","nodeType":"YulIdentifier","src":"15866:3:7"},"nativeSrc":"15866:10:7","nodeType":"YulFunctionCall","src":"15866:10:7"}],"functionName":{"name":"mload","nativeSrc":"15860:5:7","nodeType":"YulIdentifier","src":"15860:5:7"},"nativeSrc":"15860:17:7","nodeType":"YulFunctionCall","src":"15860:17:7"}],"functionName":{"name":"mstore","nativeSrc":"15840:6:7","nodeType":"YulIdentifier","src":"15840:6:7"},"nativeSrc":"15840:38:7","nodeType":"YulFunctionCall","src":"15840:38:7"},"nativeSrc":"15840:38:7","nodeType":"YulExpressionStatement","src":"15840:38:7"}]},"name":"g1_set","nativeSrc":"15760:132:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"pR","nativeSrc":"15776:2:7","nodeType":"YulTypedName","src":"15776:2:7","type":""},{"name":"pP","nativeSrc":"15780:2:7","nodeType":"YulTypedName","src":"15780:2:7","type":""}],"src":"15760:132:7"},{"body":{"nativeSrc":"15930:474:7","nodeType":"YulBlock","src":"15930:474:7","statements":[{"nativeSrc":"15948:22:7","nodeType":"YulVariableDeclaration","src":"15948:22:7","value":{"arguments":[{"kind":"number","nativeSrc":"15965:4:7","nodeType":"YulLiteral","src":"15965:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"15959:5:7","nodeType":"YulIdentifier","src":"15959:5:7"},"nativeSrc":"15959:11:7","nodeType":"YulFunctionCall","src":"15959:11:7"},"variables":[{"name":"mIn","nativeSrc":"15952:3:7","nodeType":"YulTypedName","src":"15952:3:7","type":""}]},{"expression":{"arguments":[{"name":"mIn","nativeSrc":"15994:3:7","nodeType":"YulIdentifier","src":"15994:3:7"},{"arguments":[{"name":"pR","nativeSrc":"16005:2:7","nodeType":"YulIdentifier","src":"16005:2:7"}],"functionName":{"name":"mload","nativeSrc":"15999:5:7","nodeType":"YulIdentifier","src":"15999:5:7"},"nativeSrc":"15999:9:7","nodeType":"YulFunctionCall","src":"15999:9:7"}],"functionName":{"name":"mstore","nativeSrc":"15987:6:7","nodeType":"YulIdentifier","src":"15987:6:7"},"nativeSrc":"15987:22:7","nodeType":"YulFunctionCall","src":"15987:22:7"},"nativeSrc":"15987:22:7","nodeType":"YulExpressionStatement","src":"15987:22:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16037:3:7","nodeType":"YulIdentifier","src":"16037:3:7"},{"kind":"number","nativeSrc":"16041:2:7","nodeType":"YulLiteral","src":"16041:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16033:3:7","nodeType":"YulIdentifier","src":"16033:3:7"},"nativeSrc":"16033:11:7","nodeType":"YulFunctionCall","src":"16033:11:7"},{"arguments":[{"arguments":[{"name":"pR","nativeSrc":"16056:2:7","nodeType":"YulIdentifier","src":"16056:2:7"},{"kind":"number","nativeSrc":"16060:2:7","nodeType":"YulLiteral","src":"16060:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16052:3:7","nodeType":"YulIdentifier","src":"16052:3:7"},"nativeSrc":"16052:11:7","nodeType":"YulFunctionCall","src":"16052:11:7"}],"functionName":{"name":"mload","nativeSrc":"16046:5:7","nodeType":"YulIdentifier","src":"16046:5:7"},"nativeSrc":"16046:18:7","nodeType":"YulFunctionCall","src":"16046:18:7"}],"functionName":{"name":"mstore","nativeSrc":"16026:6:7","nodeType":"YulIdentifier","src":"16026:6:7"},"nativeSrc":"16026:39:7","nodeType":"YulFunctionCall","src":"16026:39:7"},"nativeSrc":"16026:39:7","nodeType":"YulExpressionStatement","src":"16026:39:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16093:3:7","nodeType":"YulIdentifier","src":"16093:3:7"},{"kind":"number","nativeSrc":"16097:2:7","nodeType":"YulLiteral","src":"16097:2:7","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16089:3:7","nodeType":"YulIdentifier","src":"16089:3:7"},"nativeSrc":"16089:11:7","nodeType":"YulFunctionCall","src":"16089:11:7"},{"arguments":[{"name":"pP","nativeSrc":"16108:2:7","nodeType":"YulIdentifier","src":"16108:2:7"}],"functionName":{"name":"mload","nativeSrc":"16102:5:7","nodeType":"YulIdentifier","src":"16102:5:7"},"nativeSrc":"16102:9:7","nodeType":"YulFunctionCall","src":"16102:9:7"}],"functionName":{"name":"mstore","nativeSrc":"16082:6:7","nodeType":"YulIdentifier","src":"16082:6:7"},"nativeSrc":"16082:30:7","nodeType":"YulFunctionCall","src":"16082:30:7"},"nativeSrc":"16082:30:7","nodeType":"YulExpressionStatement","src":"16082:30:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16140:3:7","nodeType":"YulIdentifier","src":"16140:3:7"},{"kind":"number","nativeSrc":"16144:2:7","nodeType":"YulLiteral","src":"16144:2:7","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16136:3:7","nodeType":"YulIdentifier","src":"16136:3:7"},"nativeSrc":"16136:11:7","nodeType":"YulFunctionCall","src":"16136:11:7"},{"arguments":[{"arguments":[{"name":"pP","nativeSrc":"16159:2:7","nodeType":"YulIdentifier","src":"16159:2:7"},{"kind":"number","nativeSrc":"16163:2:7","nodeType":"YulLiteral","src":"16163:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16155:3:7","nodeType":"YulIdentifier","src":"16155:3:7"},"nativeSrc":"16155:11:7","nodeType":"YulFunctionCall","src":"16155:11:7"}],"functionName":{"name":"mload","nativeSrc":"16149:5:7","nodeType":"YulIdentifier","src":"16149:5:7"},"nativeSrc":"16149:18:7","nodeType":"YulFunctionCall","src":"16149:18:7"}],"functionName":{"name":"mstore","nativeSrc":"16129:6:7","nodeType":"YulIdentifier","src":"16129:6:7"},"nativeSrc":"16129:39:7","nodeType":"YulFunctionCall","src":"16129:39:7"},"nativeSrc":"16129:39:7","nodeType":"YulExpressionStatement","src":"16129:39:7"},{"nativeSrc":"16186:64:7","nodeType":"YulVariableDeclaration","src":"16186:64:7","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"16216:3:7","nodeType":"YulIdentifier","src":"16216:3:7"},"nativeSrc":"16216:5:7","nodeType":"YulFunctionCall","src":"16216:5:7"},{"kind":"number","nativeSrc":"16223:4:7","nodeType":"YulLiteral","src":"16223:4:7","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"16212:3:7","nodeType":"YulIdentifier","src":"16212:3:7"},"nativeSrc":"16212:16:7","nodeType":"YulFunctionCall","src":"16212:16:7"},{"kind":"number","nativeSrc":"16230:1:7","nodeType":"YulLiteral","src":"16230:1:7","type":"","value":"6"},{"name":"mIn","nativeSrc":"16233:3:7","nodeType":"YulIdentifier","src":"16233:3:7"},{"kind":"number","nativeSrc":"16238:3:7","nodeType":"YulLiteral","src":"16238:3:7","type":"","value":"128"},{"name":"pR","nativeSrc":"16243:2:7","nodeType":"YulIdentifier","src":"16243:2:7"},{"kind":"number","nativeSrc":"16247:2:7","nodeType":"YulLiteral","src":"16247:2:7","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"16201:10:7","nodeType":"YulIdentifier","src":"16201:10:7"},"nativeSrc":"16201:49:7","nodeType":"YulFunctionCall","src":"16201:49:7"},"variables":[{"name":"success","nativeSrc":"16190:7:7","nodeType":"YulTypedName","src":"16190:7:7","type":""}]},{"body":{"nativeSrc":"16303:87:7","nodeType":"YulBlock","src":"16303:87:7","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16332:1:7","nodeType":"YulLiteral","src":"16332:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"16335:1:7","nodeType":"YulLiteral","src":"16335:1:7","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16325:6:7","nodeType":"YulIdentifier","src":"16325:6:7"},"nativeSrc":"16325:12:7","nodeType":"YulFunctionCall","src":"16325:12:7"},"nativeSrc":"16325:12:7","nodeType":"YulExpressionStatement","src":"16325:12:7"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16365:1:7","nodeType":"YulLiteral","src":"16365:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"16367:4:7","nodeType":"YulLiteral","src":"16367:4:7","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"16358:6:7","nodeType":"YulIdentifier","src":"16358:6:7"},"nativeSrc":"16358:14:7","nodeType":"YulFunctionCall","src":"16358:14:7"},"nativeSrc":"16358:14:7","nodeType":"YulExpressionStatement","src":"16358:14:7"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"16294:7:7","nodeType":"YulIdentifier","src":"16294:7:7"}],"functionName":{"name":"iszero","nativeSrc":"16287:6:7","nodeType":"YulIdentifier","src":"16287:6:7"},"nativeSrc":"16287:15:7","nodeType":"YulFunctionCall","src":"16287:15:7"},"nativeSrc":"16284:106:7","nodeType":"YulIf","src":"16284:106:7"}]},"name":"g1_acc","nativeSrc":"15906:498:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"pR","nativeSrc":"15922:2:7","nodeType":"YulTypedName","src":"15922:2:7","type":""},{"name":"pP","nativeSrc":"15926:2:7","nodeType":"YulTypedName","src":"15926:2:7","type":""}],"src":"15906:498:7"},{"body":{"nativeSrc":"16448:789:7","nodeType":"YulBlock","src":"16448:789:7","statements":[{"nativeSrc":"16466:11:7","nodeType":"YulVariableDeclaration","src":"16466:11:7","variables":[{"name":"success","nativeSrc":"16470:7:7","nodeType":"YulTypedName","src":"16470:7:7","type":""}]},{"nativeSrc":"16494:22:7","nodeType":"YulVariableDeclaration","src":"16494:22:7","value":{"arguments":[{"kind":"number","nativeSrc":"16511:4:7","nodeType":"YulLiteral","src":"16511:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"16505:5:7","nodeType":"YulIdentifier","src":"16505:5:7"},"nativeSrc":"16505:11:7","nodeType":"YulFunctionCall","src":"16505:11:7"},"variables":[{"name":"mIn","nativeSrc":"16498:3:7","nodeType":"YulTypedName","src":"16498:3:7","type":""}]},{"expression":{"arguments":[{"name":"mIn","nativeSrc":"16540:3:7","nodeType":"YulIdentifier","src":"16540:3:7"},{"arguments":[{"name":"pP","nativeSrc":"16551:2:7","nodeType":"YulIdentifier","src":"16551:2:7"}],"functionName":{"name":"mload","nativeSrc":"16545:5:7","nodeType":"YulIdentifier","src":"16545:5:7"},"nativeSrc":"16545:9:7","nodeType":"YulFunctionCall","src":"16545:9:7"}],"functionName":{"name":"mstore","nativeSrc":"16533:6:7","nodeType":"YulIdentifier","src":"16533:6:7"},"nativeSrc":"16533:22:7","nodeType":"YulFunctionCall","src":"16533:22:7"},"nativeSrc":"16533:22:7","nodeType":"YulExpressionStatement","src":"16533:22:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16583:3:7","nodeType":"YulIdentifier","src":"16583:3:7"},{"kind":"number","nativeSrc":"16587:2:7","nodeType":"YulLiteral","src":"16587:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16579:3:7","nodeType":"YulIdentifier","src":"16579:3:7"},"nativeSrc":"16579:11:7","nodeType":"YulFunctionCall","src":"16579:11:7"},{"arguments":[{"arguments":[{"name":"pP","nativeSrc":"16602:2:7","nodeType":"YulIdentifier","src":"16602:2:7"},{"kind":"number","nativeSrc":"16606:2:7","nodeType":"YulLiteral","src":"16606:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16598:3:7","nodeType":"YulIdentifier","src":"16598:3:7"},"nativeSrc":"16598:11:7","nodeType":"YulFunctionCall","src":"16598:11:7"}],"functionName":{"name":"mload","nativeSrc":"16592:5:7","nodeType":"YulIdentifier","src":"16592:5:7"},"nativeSrc":"16592:18:7","nodeType":"YulFunctionCall","src":"16592:18:7"}],"functionName":{"name":"mstore","nativeSrc":"16572:6:7","nodeType":"YulIdentifier","src":"16572:6:7"},"nativeSrc":"16572:39:7","nodeType":"YulFunctionCall","src":"16572:39:7"},"nativeSrc":"16572:39:7","nodeType":"YulExpressionStatement","src":"16572:39:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16639:3:7","nodeType":"YulIdentifier","src":"16639:3:7"},{"kind":"number","nativeSrc":"16643:2:7","nodeType":"YulLiteral","src":"16643:2:7","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16635:3:7","nodeType":"YulIdentifier","src":"16635:3:7"},"nativeSrc":"16635:11:7","nodeType":"YulFunctionCall","src":"16635:11:7"},{"name":"s","nativeSrc":"16648:1:7","nodeType":"YulIdentifier","src":"16648:1:7"}],"functionName":{"name":"mstore","nativeSrc":"16628:6:7","nodeType":"YulIdentifier","src":"16628:6:7"},"nativeSrc":"16628:22:7","nodeType":"YulFunctionCall","src":"16628:22:7"},"nativeSrc":"16628:22:7","nodeType":"YulExpressionStatement","src":"16628:22:7"},{"nativeSrc":"16668:60:7","nodeType":"YulAssignment","src":"16668:60:7","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"16694:3:7","nodeType":"YulIdentifier","src":"16694:3:7"},"nativeSrc":"16694:5:7","nodeType":"YulFunctionCall","src":"16694:5:7"},{"kind":"number","nativeSrc":"16701:4:7","nodeType":"YulLiteral","src":"16701:4:7","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"16690:3:7","nodeType":"YulIdentifier","src":"16690:3:7"},"nativeSrc":"16690:16:7","nodeType":"YulFunctionCall","src":"16690:16:7"},{"kind":"number","nativeSrc":"16708:1:7","nodeType":"YulLiteral","src":"16708:1:7","type":"","value":"7"},{"name":"mIn","nativeSrc":"16711:3:7","nodeType":"YulIdentifier","src":"16711:3:7"},{"kind":"number","nativeSrc":"16716:2:7","nodeType":"YulLiteral","src":"16716:2:7","type":"","value":"96"},{"name":"mIn","nativeSrc":"16720:3:7","nodeType":"YulIdentifier","src":"16720:3:7"},{"kind":"number","nativeSrc":"16725:2:7","nodeType":"YulLiteral","src":"16725:2:7","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"16679:10:7","nodeType":"YulIdentifier","src":"16679:10:7"},"nativeSrc":"16679:49:7","nodeType":"YulFunctionCall","src":"16679:49:7"},"variableNames":[{"name":"success","nativeSrc":"16668:7:7","nodeType":"YulIdentifier","src":"16668:7:7"}]},{"body":{"nativeSrc":"16781:87:7","nodeType":"YulBlock","src":"16781:87:7","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16810:1:7","nodeType":"YulLiteral","src":"16810:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"16813:1:7","nodeType":"YulLiteral","src":"16813:1:7","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16803:6:7","nodeType":"YulIdentifier","src":"16803:6:7"},"nativeSrc":"16803:12:7","nodeType":"YulFunctionCall","src":"16803:12:7"},"nativeSrc":"16803:12:7","nodeType":"YulExpressionStatement","src":"16803:12:7"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16843:1:7","nodeType":"YulLiteral","src":"16843:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"16845:4:7","nodeType":"YulLiteral","src":"16845:4:7","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"16836:6:7","nodeType":"YulIdentifier","src":"16836:6:7"},"nativeSrc":"16836:14:7","nodeType":"YulFunctionCall","src":"16836:14:7"},"nativeSrc":"16836:14:7","nodeType":"YulExpressionStatement","src":"16836:14:7"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"16772:7:7","nodeType":"YulIdentifier","src":"16772:7:7"}],"functionName":{"name":"iszero","nativeSrc":"16765:6:7","nodeType":"YulIdentifier","src":"16765:6:7"},"nativeSrc":"16765:15:7","nodeType":"YulFunctionCall","src":"16765:15:7"},"nativeSrc":"16762:106:7","nodeType":"YulIf","src":"16762:106:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16913:3:7","nodeType":"YulIdentifier","src":"16913:3:7"},{"kind":"number","nativeSrc":"16917:2:7","nodeType":"YulLiteral","src":"16917:2:7","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16909:3:7","nodeType":"YulIdentifier","src":"16909:3:7"},"nativeSrc":"16909:11:7","nodeType":"YulFunctionCall","src":"16909:11:7"},{"arguments":[{"name":"pR","nativeSrc":"16928:2:7","nodeType":"YulIdentifier","src":"16928:2:7"}],"functionName":{"name":"mload","nativeSrc":"16922:5:7","nodeType":"YulIdentifier","src":"16922:5:7"},"nativeSrc":"16922:9:7","nodeType":"YulFunctionCall","src":"16922:9:7"}],"functionName":{"name":"mstore","nativeSrc":"16902:6:7","nodeType":"YulIdentifier","src":"16902:6:7"},"nativeSrc":"16902:30:7","nodeType":"YulFunctionCall","src":"16902:30:7"},"nativeSrc":"16902:30:7","nodeType":"YulExpressionStatement","src":"16902:30:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16960:3:7","nodeType":"YulIdentifier","src":"16960:3:7"},{"kind":"number","nativeSrc":"16964:2:7","nodeType":"YulLiteral","src":"16964:2:7","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16956:3:7","nodeType":"YulIdentifier","src":"16956:3:7"},"nativeSrc":"16956:11:7","nodeType":"YulFunctionCall","src":"16956:11:7"},{"arguments":[{"arguments":[{"name":"pR","nativeSrc":"16979:2:7","nodeType":"YulIdentifier","src":"16979:2:7"},{"kind":"number","nativeSrc":"16983:2:7","nodeType":"YulLiteral","src":"16983:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16975:3:7","nodeType":"YulIdentifier","src":"16975:3:7"},"nativeSrc":"16975:11:7","nodeType":"YulFunctionCall","src":"16975:11:7"}],"functionName":{"name":"mload","nativeSrc":"16969:5:7","nodeType":"YulIdentifier","src":"16969:5:7"},"nativeSrc":"16969:18:7","nodeType":"YulFunctionCall","src":"16969:18:7"}],"functionName":{"name":"mstore","nativeSrc":"16949:6:7","nodeType":"YulIdentifier","src":"16949:6:7"},"nativeSrc":"16949:39:7","nodeType":"YulFunctionCall","src":"16949:39:7"},"nativeSrc":"16949:39:7","nodeType":"YulExpressionStatement","src":"16949:39:7"},{"nativeSrc":"17006:60:7","nodeType":"YulAssignment","src":"17006:60:7","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"17032:3:7","nodeType":"YulIdentifier","src":"17032:3:7"},"nativeSrc":"17032:5:7","nodeType":"YulFunctionCall","src":"17032:5:7"},{"kind":"number","nativeSrc":"17039:4:7","nodeType":"YulLiteral","src":"17039:4:7","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"17028:3:7","nodeType":"YulIdentifier","src":"17028:3:7"},"nativeSrc":"17028:16:7","nodeType":"YulFunctionCall","src":"17028:16:7"},{"kind":"number","nativeSrc":"17046:1:7","nodeType":"YulLiteral","src":"17046:1:7","type":"","value":"6"},{"name":"mIn","nativeSrc":"17049:3:7","nodeType":"YulIdentifier","src":"17049:3:7"},{"kind":"number","nativeSrc":"17054:3:7","nodeType":"YulLiteral","src":"17054:3:7","type":"","value":"128"},{"name":"pR","nativeSrc":"17059:2:7","nodeType":"YulIdentifier","src":"17059:2:7"},{"kind":"number","nativeSrc":"17063:2:7","nodeType":"YulLiteral","src":"17063:2:7","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"17017:10:7","nodeType":"YulIdentifier","src":"17017:10:7"},"nativeSrc":"17017:49:7","nodeType":"YulFunctionCall","src":"17017:49:7"},"variableNames":[{"name":"success","nativeSrc":"17006:7:7","nodeType":"YulIdentifier","src":"17006:7:7"}]},{"body":{"nativeSrc":"17119:87:7","nodeType":"YulBlock","src":"17119:87:7","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17148:1:7","nodeType":"YulLiteral","src":"17148:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"17151:1:7","nodeType":"YulLiteral","src":"17151:1:7","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17141:6:7","nodeType":"YulIdentifier","src":"17141:6:7"},"nativeSrc":"17141:12:7","nodeType":"YulFunctionCall","src":"17141:12:7"},"nativeSrc":"17141:12:7","nodeType":"YulExpressionStatement","src":"17141:12:7"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17181:1:7","nodeType":"YulLiteral","src":"17181:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"17183:4:7","nodeType":"YulLiteral","src":"17183:4:7","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"17174:6:7","nodeType":"YulIdentifier","src":"17174:6:7"},"nativeSrc":"17174:14:7","nodeType":"YulFunctionCall","src":"17174:14:7"},"nativeSrc":"17174:14:7","nodeType":"YulExpressionStatement","src":"17174:14:7"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"17110:7:7","nodeType":"YulIdentifier","src":"17110:7:7"}],"functionName":{"name":"iszero","nativeSrc":"17103:6:7","nodeType":"YulIdentifier","src":"17103:6:7"},"nativeSrc":"17103:15:7","nodeType":"YulFunctionCall","src":"17103:15:7"},"nativeSrc":"17100:106:7","nodeType":"YulIf","src":"17100:106:7"}]},"name":"g1_mulAcc","nativeSrc":"16418:819:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"pR","nativeSrc":"16437:2:7","nodeType":"YulTypedName","src":"16437:2:7","type":""},{"name":"pP","nativeSrc":"16441:2:7","nodeType":"YulTypedName","src":"16441:2:7","type":""},{"name":"s","nativeSrc":"16445:1:7","nodeType":"YulTypedName","src":"16445:1:7","type":""}],"src":"16418:819:7"},{"body":{"nativeSrc":"17284:747:7","nodeType":"YulBlock","src":"17284:747:7","statements":[{"nativeSrc":"17302:11:7","nodeType":"YulVariableDeclaration","src":"17302:11:7","variables":[{"name":"success","nativeSrc":"17306:7:7","nodeType":"YulTypedName","src":"17306:7:7","type":""}]},{"nativeSrc":"17330:22:7","nodeType":"YulVariableDeclaration","src":"17330:22:7","value":{"arguments":[{"kind":"number","nativeSrc":"17347:4:7","nodeType":"YulLiteral","src":"17347:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"17341:5:7","nodeType":"YulIdentifier","src":"17341:5:7"},"nativeSrc":"17341:11:7","nodeType":"YulFunctionCall","src":"17341:11:7"},"variables":[{"name":"mIn","nativeSrc":"17334:3:7","nodeType":"YulTypedName","src":"17334:3:7","type":""}]},{"expression":{"arguments":[{"name":"mIn","nativeSrc":"17376:3:7","nodeType":"YulIdentifier","src":"17376:3:7"},{"name":"x","nativeSrc":"17381:1:7","nodeType":"YulIdentifier","src":"17381:1:7"}],"functionName":{"name":"mstore","nativeSrc":"17369:6:7","nodeType":"YulIdentifier","src":"17369:6:7"},"nativeSrc":"17369:14:7","nodeType":"YulFunctionCall","src":"17369:14:7"},"nativeSrc":"17369:14:7","nodeType":"YulExpressionStatement","src":"17369:14:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"17411:3:7","nodeType":"YulIdentifier","src":"17411:3:7"},{"kind":"number","nativeSrc":"17415:2:7","nodeType":"YulLiteral","src":"17415:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17407:3:7","nodeType":"YulIdentifier","src":"17407:3:7"},"nativeSrc":"17407:11:7","nodeType":"YulFunctionCall","src":"17407:11:7"},{"name":"y","nativeSrc":"17420:1:7","nodeType":"YulIdentifier","src":"17420:1:7"}],"functionName":{"name":"mstore","nativeSrc":"17400:6:7","nodeType":"YulIdentifier","src":"17400:6:7"},"nativeSrc":"17400:22:7","nodeType":"YulFunctionCall","src":"17400:22:7"},"nativeSrc":"17400:22:7","nodeType":"YulExpressionStatement","src":"17400:22:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"17450:3:7","nodeType":"YulIdentifier","src":"17450:3:7"},{"kind":"number","nativeSrc":"17454:2:7","nodeType":"YulLiteral","src":"17454:2:7","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17446:3:7","nodeType":"YulIdentifier","src":"17446:3:7"},"nativeSrc":"17446:11:7","nodeType":"YulFunctionCall","src":"17446:11:7"},{"name":"s","nativeSrc":"17459:1:7","nodeType":"YulIdentifier","src":"17459:1:7"}],"functionName":{"name":"mstore","nativeSrc":"17439:6:7","nodeType":"YulIdentifier","src":"17439:6:7"},"nativeSrc":"17439:22:7","nodeType":"YulFunctionCall","src":"17439:22:7"},"nativeSrc":"17439:22:7","nodeType":"YulExpressionStatement","src":"17439:22:7"},{"nativeSrc":"17479:60:7","nodeType":"YulAssignment","src":"17479:60:7","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"17505:3:7","nodeType":"YulIdentifier","src":"17505:3:7"},"nativeSrc":"17505:5:7","nodeType":"YulFunctionCall","src":"17505:5:7"},{"kind":"number","nativeSrc":"17512:4:7","nodeType":"YulLiteral","src":"17512:4:7","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"17501:3:7","nodeType":"YulIdentifier","src":"17501:3:7"},"nativeSrc":"17501:16:7","nodeType":"YulFunctionCall","src":"17501:16:7"},{"kind":"number","nativeSrc":"17519:1:7","nodeType":"YulLiteral","src":"17519:1:7","type":"","value":"7"},{"name":"mIn","nativeSrc":"17522:3:7","nodeType":"YulIdentifier","src":"17522:3:7"},{"kind":"number","nativeSrc":"17527:2:7","nodeType":"YulLiteral","src":"17527:2:7","type":"","value":"96"},{"name":"mIn","nativeSrc":"17531:3:7","nodeType":"YulIdentifier","src":"17531:3:7"},{"kind":"number","nativeSrc":"17536:2:7","nodeType":"YulLiteral","src":"17536:2:7","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"17490:10:7","nodeType":"YulIdentifier","src":"17490:10:7"},"nativeSrc":"17490:49:7","nodeType":"YulFunctionCall","src":"17490:49:7"},"variableNames":[{"name":"success","nativeSrc":"17479:7:7","nodeType":"YulIdentifier","src":"17479:7:7"}]},{"body":{"nativeSrc":"17592:87:7","nodeType":"YulBlock","src":"17592:87:7","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17621:1:7","nodeType":"YulLiteral","src":"17621:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"17624:1:7","nodeType":"YulLiteral","src":"17624:1:7","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17614:6:7","nodeType":"YulIdentifier","src":"17614:6:7"},"nativeSrc":"17614:12:7","nodeType":"YulFunctionCall","src":"17614:12:7"},"nativeSrc":"17614:12:7","nodeType":"YulExpressionStatement","src":"17614:12:7"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17654:1:7","nodeType":"YulLiteral","src":"17654:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"17656:4:7","nodeType":"YulLiteral","src":"17656:4:7","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"17647:6:7","nodeType":"YulIdentifier","src":"17647:6:7"},"nativeSrc":"17647:14:7","nodeType":"YulFunctionCall","src":"17647:14:7"},"nativeSrc":"17647:14:7","nodeType":"YulExpressionStatement","src":"17647:14:7"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"17583:7:7","nodeType":"YulIdentifier","src":"17583:7:7"}],"functionName":{"name":"iszero","nativeSrc":"17576:6:7","nodeType":"YulIdentifier","src":"17576:6:7"},"nativeSrc":"17576:15:7","nodeType":"YulFunctionCall","src":"17576:15:7"},"nativeSrc":"17573:106:7","nodeType":"YulIf","src":"17573:106:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"17724:3:7","nodeType":"YulIdentifier","src":"17724:3:7"},{"kind":"number","nativeSrc":"17728:2:7","nodeType":"YulLiteral","src":"17728:2:7","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17720:3:7","nodeType":"YulIdentifier","src":"17720:3:7"},"nativeSrc":"17720:11:7","nodeType":"YulFunctionCall","src":"17720:11:7"},{"arguments":[{"name":"pR","nativeSrc":"17739:2:7","nodeType":"YulIdentifier","src":"17739:2:7"}],"functionName":{"name":"mload","nativeSrc":"17733:5:7","nodeType":"YulIdentifier","src":"17733:5:7"},"nativeSrc":"17733:9:7","nodeType":"YulFunctionCall","src":"17733:9:7"}],"functionName":{"name":"mstore","nativeSrc":"17713:6:7","nodeType":"YulIdentifier","src":"17713:6:7"},"nativeSrc":"17713:30:7","nodeType":"YulFunctionCall","src":"17713:30:7"},"nativeSrc":"17713:30:7","nodeType":"YulExpressionStatement","src":"17713:30:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"17771:3:7","nodeType":"YulIdentifier","src":"17771:3:7"},{"kind":"number","nativeSrc":"17775:2:7","nodeType":"YulLiteral","src":"17775:2:7","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17767:3:7","nodeType":"YulIdentifier","src":"17767:3:7"},"nativeSrc":"17767:11:7","nodeType":"YulFunctionCall","src":"17767:11:7"},{"arguments":[{"arguments":[{"name":"pR","nativeSrc":"17790:2:7","nodeType":"YulIdentifier","src":"17790:2:7"},{"kind":"number","nativeSrc":"17794:2:7","nodeType":"YulLiteral","src":"17794:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17786:3:7","nodeType":"YulIdentifier","src":"17786:3:7"},"nativeSrc":"17786:11:7","nodeType":"YulFunctionCall","src":"17786:11:7"}],"functionName":{"name":"mload","nativeSrc":"17780:5:7","nodeType":"YulIdentifier","src":"17780:5:7"},"nativeSrc":"17780:18:7","nodeType":"YulFunctionCall","src":"17780:18:7"}],"functionName":{"name":"mstore","nativeSrc":"17760:6:7","nodeType":"YulIdentifier","src":"17760:6:7"},"nativeSrc":"17760:39:7","nodeType":"YulFunctionCall","src":"17760:39:7"},"nativeSrc":"17760:39:7","nodeType":"YulExpressionStatement","src":"17760:39:7"},{"nativeSrc":"17817:60:7","nodeType":"YulAssignment","src":"17817:60:7","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"17843:3:7","nodeType":"YulIdentifier","src":"17843:3:7"},"nativeSrc":"17843:5:7","nodeType":"YulFunctionCall","src":"17843:5:7"},{"kind":"number","nativeSrc":"17850:4:7","nodeType":"YulLiteral","src":"17850:4:7","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"17839:3:7","nodeType":"YulIdentifier","src":"17839:3:7"},"nativeSrc":"17839:16:7","nodeType":"YulFunctionCall","src":"17839:16:7"},{"kind":"number","nativeSrc":"17857:1:7","nodeType":"YulLiteral","src":"17857:1:7","type":"","value":"6"},{"name":"mIn","nativeSrc":"17860:3:7","nodeType":"YulIdentifier","src":"17860:3:7"},{"kind":"number","nativeSrc":"17865:3:7","nodeType":"YulLiteral","src":"17865:3:7","type":"","value":"128"},{"name":"pR","nativeSrc":"17870:2:7","nodeType":"YulIdentifier","src":"17870:2:7"},{"kind":"number","nativeSrc":"17874:2:7","nodeType":"YulLiteral","src":"17874:2:7","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"17828:10:7","nodeType":"YulIdentifier","src":"17828:10:7"},"nativeSrc":"17828:49:7","nodeType":"YulFunctionCall","src":"17828:49:7"},"variableNames":[{"name":"success","nativeSrc":"17817:7:7","nodeType":"YulIdentifier","src":"17817:7:7"}]},{"body":{"nativeSrc":"17930:87:7","nodeType":"YulBlock","src":"17930:87:7","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17959:1:7","nodeType":"YulLiteral","src":"17959:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"17962:1:7","nodeType":"YulLiteral","src":"17962:1:7","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17952:6:7","nodeType":"YulIdentifier","src":"17952:6:7"},"nativeSrc":"17952:12:7","nodeType":"YulFunctionCall","src":"17952:12:7"},"nativeSrc":"17952:12:7","nodeType":"YulExpressionStatement","src":"17952:12:7"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17992:1:7","nodeType":"YulLiteral","src":"17992:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"17994:4:7","nodeType":"YulLiteral","src":"17994:4:7","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"17985:6:7","nodeType":"YulIdentifier","src":"17985:6:7"},"nativeSrc":"17985:14:7","nodeType":"YulFunctionCall","src":"17985:14:7"},"nativeSrc":"17985:14:7","nodeType":"YulExpressionStatement","src":"17985:14:7"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"17921:7:7","nodeType":"YulIdentifier","src":"17921:7:7"}],"functionName":{"name":"iszero","nativeSrc":"17914:6:7","nodeType":"YulIdentifier","src":"17914:6:7"},"nativeSrc":"17914:15:7","nodeType":"YulFunctionCall","src":"17914:15:7"},"nativeSrc":"17911:106:7","nodeType":"YulIf","src":"17911:106:7"}]},"name":"g1_mulAccC","nativeSrc":"17251:780:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"pR","nativeSrc":"17271:2:7","nodeType":"YulTypedName","src":"17271:2:7","type":""},{"name":"x","nativeSrc":"17275:1:7","nodeType":"YulTypedName","src":"17275:1:7","type":""},{"name":"y","nativeSrc":"17278:1:7","nodeType":"YulTypedName","src":"17278:1:7","type":""},{"name":"s","nativeSrc":"17281:1:7","nodeType":"YulTypedName","src":"17281:1:7","type":""}],"src":"17251:780:7"},{"body":{"nativeSrc":"18078:408:7","nodeType":"YulBlock","src":"18078:408:7","statements":[{"nativeSrc":"18096:11:7","nodeType":"YulVariableDeclaration","src":"18096:11:7","variables":[{"name":"success","nativeSrc":"18100:7:7","nodeType":"YulTypedName","src":"18100:7:7","type":""}]},{"nativeSrc":"18124:22:7","nodeType":"YulVariableDeclaration","src":"18124:22:7","value":{"arguments":[{"kind":"number","nativeSrc":"18141:4:7","nodeType":"YulLiteral","src":"18141:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"18135:5:7","nodeType":"YulIdentifier","src":"18135:5:7"},"nativeSrc":"18135:11:7","nodeType":"YulFunctionCall","src":"18135:11:7"},"variables":[{"name":"mIn","nativeSrc":"18128:3:7","nodeType":"YulTypedName","src":"18128:3:7","type":""}]},{"expression":{"arguments":[{"name":"mIn","nativeSrc":"18170:3:7","nodeType":"YulIdentifier","src":"18170:3:7"},{"name":"x","nativeSrc":"18175:1:7","nodeType":"YulIdentifier","src":"18175:1:7"}],"functionName":{"name":"mstore","nativeSrc":"18163:6:7","nodeType":"YulIdentifier","src":"18163:6:7"},"nativeSrc":"18163:14:7","nodeType":"YulFunctionCall","src":"18163:14:7"},"nativeSrc":"18163:14:7","nodeType":"YulExpressionStatement","src":"18163:14:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"18205:3:7","nodeType":"YulIdentifier","src":"18205:3:7"},{"kind":"number","nativeSrc":"18209:2:7","nodeType":"YulLiteral","src":"18209:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18201:3:7","nodeType":"YulIdentifier","src":"18201:3:7"},"nativeSrc":"18201:11:7","nodeType":"YulFunctionCall","src":"18201:11:7"},{"name":"y","nativeSrc":"18214:1:7","nodeType":"YulIdentifier","src":"18214:1:7"}],"functionName":{"name":"mstore","nativeSrc":"18194:6:7","nodeType":"YulIdentifier","src":"18194:6:7"},"nativeSrc":"18194:22:7","nodeType":"YulFunctionCall","src":"18194:22:7"},"nativeSrc":"18194:22:7","nodeType":"YulExpressionStatement","src":"18194:22:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"18244:3:7","nodeType":"YulIdentifier","src":"18244:3:7"},{"kind":"number","nativeSrc":"18248:2:7","nodeType":"YulLiteral","src":"18248:2:7","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18240:3:7","nodeType":"YulIdentifier","src":"18240:3:7"},"nativeSrc":"18240:11:7","nodeType":"YulFunctionCall","src":"18240:11:7"},{"name":"s","nativeSrc":"18253:1:7","nodeType":"YulIdentifier","src":"18253:1:7"}],"functionName":{"name":"mstore","nativeSrc":"18233:6:7","nodeType":"YulIdentifier","src":"18233:6:7"},"nativeSrc":"18233:22:7","nodeType":"YulFunctionCall","src":"18233:22:7"},"nativeSrc":"18233:22:7","nodeType":"YulExpressionStatement","src":"18233:22:7"},{"nativeSrc":"18273:59:7","nodeType":"YulAssignment","src":"18273:59:7","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18299:3:7","nodeType":"YulIdentifier","src":"18299:3:7"},"nativeSrc":"18299:5:7","nodeType":"YulFunctionCall","src":"18299:5:7"},{"kind":"number","nativeSrc":"18306:4:7","nodeType":"YulLiteral","src":"18306:4:7","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"18295:3:7","nodeType":"YulIdentifier","src":"18295:3:7"},"nativeSrc":"18295:16:7","nodeType":"YulFunctionCall","src":"18295:16:7"},{"kind":"number","nativeSrc":"18313:1:7","nodeType":"YulLiteral","src":"18313:1:7","type":"","value":"7"},{"name":"mIn","nativeSrc":"18316:3:7","nodeType":"YulIdentifier","src":"18316:3:7"},{"kind":"number","nativeSrc":"18321:2:7","nodeType":"YulLiteral","src":"18321:2:7","type":"","value":"96"},{"name":"pR","nativeSrc":"18325:2:7","nodeType":"YulIdentifier","src":"18325:2:7"},{"kind":"number","nativeSrc":"18329:2:7","nodeType":"YulLiteral","src":"18329:2:7","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"18284:10:7","nodeType":"YulIdentifier","src":"18284:10:7"},"nativeSrc":"18284:48:7","nodeType":"YulFunctionCall","src":"18284:48:7"},"variableNames":[{"name":"success","nativeSrc":"18273:7:7","nodeType":"YulIdentifier","src":"18273:7:7"}]},{"body":{"nativeSrc":"18385:87:7","nodeType":"YulBlock","src":"18385:87:7","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18414:1:7","nodeType":"YulLiteral","src":"18414:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"18417:1:7","nodeType":"YulLiteral","src":"18417:1:7","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18407:6:7","nodeType":"YulIdentifier","src":"18407:6:7"},"nativeSrc":"18407:12:7","nodeType":"YulFunctionCall","src":"18407:12:7"},"nativeSrc":"18407:12:7","nodeType":"YulExpressionStatement","src":"18407:12:7"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18447:1:7","nodeType":"YulLiteral","src":"18447:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"18449:4:7","nodeType":"YulLiteral","src":"18449:4:7","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"18440:6:7","nodeType":"YulIdentifier","src":"18440:6:7"},"nativeSrc":"18440:14:7","nodeType":"YulFunctionCall","src":"18440:14:7"},"nativeSrc":"18440:14:7","nodeType":"YulExpressionStatement","src":"18440:14:7"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"18376:7:7","nodeType":"YulIdentifier","src":"18376:7:7"}],"functionName":{"name":"iszero","nativeSrc":"18369:6:7","nodeType":"YulIdentifier","src":"18369:6:7"},"nativeSrc":"18369:15:7","nodeType":"YulFunctionCall","src":"18369:15:7"},"nativeSrc":"18366:106:7","nodeType":"YulIf","src":"18366:106:7"}]},"name":"g1_mulSetC","nativeSrc":"18045:441:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"pR","nativeSrc":"18065:2:7","nodeType":"YulTypedName","src":"18065:2:7","type":""},{"name":"x","nativeSrc":"18069:1:7","nodeType":"YulTypedName","src":"18069:1:7","type":""},{"name":"y","nativeSrc":"18072:1:7","nodeType":"YulTypedName","src":"18072:1:7","type":""},{"name":"s","nativeSrc":"18075:1:7","nodeType":"YulTypedName","src":"18075:1:7","type":""}],"src":"18045:441:7"},{"body":{"nativeSrc":"18536:171:7","nodeType":"YulBlock","src":"18536:171:7","statements":[{"nativeSrc":"18554:23:7","nodeType":"YulVariableDeclaration","src":"18554:23:7","value":{"arguments":[{"name":"pMem","nativeSrc":"18567:4:7","nodeType":"YulIdentifier","src":"18567:4:7"},{"name":"pA1","nativeSrc":"18573:3:7","nodeType":"YulIdentifier","src":"18573:3:7"}],"functionName":{"name":"add","nativeSrc":"18563:3:7","nodeType":"YulIdentifier","src":"18563:3:7"},"nativeSrc":"18563:14:7","nodeType":"YulFunctionCall","src":"18563:14:7"},"variables":[{"name":"p","nativeSrc":"18558:1:7","nodeType":"YulTypedName","src":"18558:1:7","type":""}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"18601:1:7","nodeType":"YulIdentifier","src":"18601:1:7"},{"arguments":[{"name":"pProof","nativeSrc":"18608:6:7","nodeType":"YulIdentifier","src":"18608:6:7"},{"name":"pWxi","nativeSrc":"18616:4:7","nodeType":"YulIdentifier","src":"18616:4:7"}],"functionName":{"name":"add","nativeSrc":"18604:3:7","nodeType":"YulIdentifier","src":"18604:3:7"},"nativeSrc":"18604:17:7","nodeType":"YulFunctionCall","src":"18604:17:7"}],"functionName":{"name":"g1_set","nativeSrc":"18594:6:7","nodeType":"YulIdentifier","src":"18594:6:7"},"nativeSrc":"18594:28:7","nodeType":"YulFunctionCall","src":"18594:28:7"},"nativeSrc":"18594:28:7","nodeType":"YulExpressionStatement","src":"18594:28:7"},{"expression":{"arguments":[{"name":"p","nativeSrc":"18649:1:7","nodeType":"YulIdentifier","src":"18649:1:7"},{"arguments":[{"name":"pProof","nativeSrc":"18656:6:7","nodeType":"YulIdentifier","src":"18656:6:7"},{"name":"pWxiw","nativeSrc":"18664:5:7","nodeType":"YulIdentifier","src":"18664:5:7"}],"functionName":{"name":"add","nativeSrc":"18652:3:7","nodeType":"YulIdentifier","src":"18652:3:7"},"nativeSrc":"18652:18:7","nodeType":"YulFunctionCall","src":"18652:18:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"18682:4:7","nodeType":"YulIdentifier","src":"18682:4:7"},{"name":"pU","nativeSrc":"18688:2:7","nodeType":"YulIdentifier","src":"18688:2:7"}],"functionName":{"name":"add","nativeSrc":"18678:3:7","nodeType":"YulIdentifier","src":"18678:3:7"},"nativeSrc":"18678:13:7","nodeType":"YulFunctionCall","src":"18678:13:7"}],"functionName":{"name":"mload","nativeSrc":"18672:5:7","nodeType":"YulIdentifier","src":"18672:5:7"},"nativeSrc":"18672:20:7","nodeType":"YulFunctionCall","src":"18672:20:7"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"18639:9:7","nodeType":"YulIdentifier","src":"18639:9:7"},"nativeSrc":"18639:54:7","nodeType":"YulFunctionCall","src":"18639:54:7"},"nativeSrc":"18639:54:7","nodeType":"YulExpressionStatement","src":"18639:54:7"}]},"name":"calculateA1","nativeSrc":"18501:206:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"pProof","nativeSrc":"18522:6:7","nodeType":"YulTypedName","src":"18522:6:7","type":""},{"name":"pMem","nativeSrc":"18530:4:7","nodeType":"YulTypedName","src":"18530:4:7","type":""}],"src":"18501:206:7"},{"body":{"nativeSrc":"18781:4443:7","nodeType":"YulBlock","src":"18781:4443:7","statements":[{"nativeSrc":"18799:5:7","nodeType":"YulVariableDeclaration","src":"18799:5:7","variables":[{"name":"s","nativeSrc":"18803:1:7","nodeType":"YulTypedName","src":"18803:1:7","type":""}]},{"nativeSrc":"18821:6:7","nodeType":"YulVariableDeclaration","src":"18821:6:7","variables":[{"name":"s1","nativeSrc":"18825:2:7","nodeType":"YulTypedName","src":"18825:2:7","type":""}]},{"nativeSrc":"18844:23:7","nodeType":"YulVariableDeclaration","src":"18844:23:7","value":{"arguments":[{"name":"pMem","nativeSrc":"18857:4:7","nodeType":"YulIdentifier","src":"18857:4:7"},{"name":"pB1","nativeSrc":"18863:3:7","nodeType":"YulIdentifier","src":"18863:3:7"}],"functionName":{"name":"add","nativeSrc":"18853:3:7","nodeType":"YulIdentifier","src":"18853:3:7"},"nativeSrc":"18853:14:7","nodeType":"YulFunctionCall","src":"18853:14:7"},"variables":[{"name":"p","nativeSrc":"18848:1:7","nodeType":"YulTypedName","src":"18848:1:7","type":""}]},{"nativeSrc":"18932:67:7","nodeType":"YulAssignment","src":"18932:67:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"18955:6:7","nodeType":"YulIdentifier","src":"18955:6:7"},{"name":"pEval_a","nativeSrc":"18963:7:7","nodeType":"YulIdentifier","src":"18963:7:7"}],"functionName":{"name":"add","nativeSrc":"18951:3:7","nodeType":"YulIdentifier","src":"18951:3:7"},"nativeSrc":"18951:20:7","nodeType":"YulFunctionCall","src":"18951:20:7"}],"functionName":{"name":"mload","nativeSrc":"18945:5:7","nodeType":"YulIdentifier","src":"18945:5:7"},"nativeSrc":"18945:27:7","nodeType":"YulFunctionCall","src":"18945:27:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"18984:4:7","nodeType":"YulIdentifier","src":"18984:4:7"},{"name":"pV1","nativeSrc":"18990:3:7","nodeType":"YulIdentifier","src":"18990:3:7"}],"functionName":{"name":"add","nativeSrc":"18980:3:7","nodeType":"YulIdentifier","src":"18980:3:7"},"nativeSrc":"18980:14:7","nodeType":"YulFunctionCall","src":"18980:14:7"}],"functionName":{"name":"mload","nativeSrc":"18974:5:7","nodeType":"YulIdentifier","src":"18974:5:7"},"nativeSrc":"18974:21:7","nodeType":"YulFunctionCall","src":"18974:21:7"},{"name":"q","nativeSrc":"18997:1:7","nodeType":"YulIdentifier","src":"18997:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"18937:6:7","nodeType":"YulIdentifier","src":"18937:6:7"},"nativeSrc":"18937:62:7","nodeType":"YulFunctionCall","src":"18937:62:7"},"variableNames":[{"name":"s","nativeSrc":"18932:1:7","nodeType":"YulIdentifier","src":"18932:1:7"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"19027:1:7","nodeType":"YulIdentifier","src":"19027:1:7"},{"name":"Qlx","nativeSrc":"19030:3:7","nodeType":"YulIdentifier","src":"19030:3:7"},{"name":"Qly","nativeSrc":"19035:3:7","nodeType":"YulIdentifier","src":"19035:3:7"},{"name":"s","nativeSrc":"19040:1:7","nodeType":"YulIdentifier","src":"19040:1:7"}],"functionName":{"name":"g1_mulSetC","nativeSrc":"19016:10:7","nodeType":"YulIdentifier","src":"19016:10:7"},"nativeSrc":"19016:26:7","nodeType":"YulFunctionCall","src":"19016:26:7"},"nativeSrc":"19016:26:7","nodeType":"YulExpressionStatement","src":"19016:26:7"},{"nativeSrc":"19060:47:7","nodeType":"YulAssignment","src":"19060:47:7","value":{"arguments":[{"name":"s","nativeSrc":"19073:1:7","nodeType":"YulIdentifier","src":"19073:1:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"19086:6:7","nodeType":"YulIdentifier","src":"19086:6:7"},{"name":"pEval_b","nativeSrc":"19094:7:7","nodeType":"YulIdentifier","src":"19094:7:7"}],"functionName":{"name":"add","nativeSrc":"19082:3:7","nodeType":"YulIdentifier","src":"19082:3:7"},"nativeSrc":"19082:20:7","nodeType":"YulFunctionCall","src":"19082:20:7"}],"functionName":{"name":"mload","nativeSrc":"19076:5:7","nodeType":"YulIdentifier","src":"19076:5:7"},"nativeSrc":"19076:27:7","nodeType":"YulFunctionCall","src":"19076:27:7"},{"name":"q","nativeSrc":"19105:1:7","nodeType":"YulIdentifier","src":"19105:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"19065:6:7","nodeType":"YulIdentifier","src":"19065:6:7"},"nativeSrc":"19065:42:7","nodeType":"YulFunctionCall","src":"19065:42:7"},"variableNames":[{"name":"s","nativeSrc":"19060:1:7","nodeType":"YulIdentifier","src":"19060:1:7"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"19151:1:7","nodeType":"YulIdentifier","src":"19151:1:7"},{"name":"Qmx","nativeSrc":"19154:3:7","nodeType":"YulIdentifier","src":"19154:3:7"},{"name":"Qmy","nativeSrc":"19159:3:7","nodeType":"YulIdentifier","src":"19159:3:7"},{"name":"s","nativeSrc":"19164:1:7","nodeType":"YulIdentifier","src":"19164:1:7"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"19140:10:7","nodeType":"YulIdentifier","src":"19140:10:7"},"nativeSrc":"19140:26:7","nodeType":"YulFunctionCall","src":"19140:26:7"},"nativeSrc":"19140:26:7","nodeType":"YulExpressionStatement","src":"19140:26:7"},{"nativeSrc":"19184:67:7","nodeType":"YulAssignment","src":"19184:67:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"19207:6:7","nodeType":"YulIdentifier","src":"19207:6:7"},{"name":"pEval_b","nativeSrc":"19215:7:7","nodeType":"YulIdentifier","src":"19215:7:7"}],"functionName":{"name":"add","nativeSrc":"19203:3:7","nodeType":"YulIdentifier","src":"19203:3:7"},"nativeSrc":"19203:20:7","nodeType":"YulFunctionCall","src":"19203:20:7"}],"functionName":{"name":"mload","nativeSrc":"19197:5:7","nodeType":"YulIdentifier","src":"19197:5:7"},"nativeSrc":"19197:27:7","nodeType":"YulFunctionCall","src":"19197:27:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19236:4:7","nodeType":"YulIdentifier","src":"19236:4:7"},{"name":"pV1","nativeSrc":"19242:3:7","nodeType":"YulIdentifier","src":"19242:3:7"}],"functionName":{"name":"add","nativeSrc":"19232:3:7","nodeType":"YulIdentifier","src":"19232:3:7"},"nativeSrc":"19232:14:7","nodeType":"YulFunctionCall","src":"19232:14:7"}],"functionName":{"name":"mload","nativeSrc":"19226:5:7","nodeType":"YulIdentifier","src":"19226:5:7"},"nativeSrc":"19226:21:7","nodeType":"YulFunctionCall","src":"19226:21:7"},{"name":"q","nativeSrc":"19249:1:7","nodeType":"YulIdentifier","src":"19249:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"19189:6:7","nodeType":"YulIdentifier","src":"19189:6:7"},"nativeSrc":"19189:62:7","nodeType":"YulFunctionCall","src":"19189:62:7"},"variableNames":[{"name":"s","nativeSrc":"19184:1:7","nodeType":"YulIdentifier","src":"19184:1:7"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"19279:1:7","nodeType":"YulIdentifier","src":"19279:1:7"},{"name":"Qrx","nativeSrc":"19282:3:7","nodeType":"YulIdentifier","src":"19282:3:7"},{"name":"Qry","nativeSrc":"19287:3:7","nodeType":"YulIdentifier","src":"19287:3:7"},{"name":"s","nativeSrc":"19292:1:7","nodeType":"YulIdentifier","src":"19292:1:7"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"19268:10:7","nodeType":"YulIdentifier","src":"19268:10:7"},"nativeSrc":"19268:26:7","nodeType":"YulFunctionCall","src":"19268:26:7"},"nativeSrc":"19268:26:7","nodeType":"YulExpressionStatement","src":"19268:26:7"},{"nativeSrc":"19328:67:7","nodeType":"YulAssignment","src":"19328:67:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"19351:6:7","nodeType":"YulIdentifier","src":"19351:6:7"},{"name":"pEval_c","nativeSrc":"19359:7:7","nodeType":"YulIdentifier","src":"19359:7:7"}],"functionName":{"name":"add","nativeSrc":"19347:3:7","nodeType":"YulIdentifier","src":"19347:3:7"},"nativeSrc":"19347:20:7","nodeType":"YulFunctionCall","src":"19347:20:7"}],"functionName":{"name":"mload","nativeSrc":"19341:5:7","nodeType":"YulIdentifier","src":"19341:5:7"},"nativeSrc":"19341:27:7","nodeType":"YulFunctionCall","src":"19341:27:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19380:4:7","nodeType":"YulIdentifier","src":"19380:4:7"},{"name":"pV1","nativeSrc":"19386:3:7","nodeType":"YulIdentifier","src":"19386:3:7"}],"functionName":{"name":"add","nativeSrc":"19376:3:7","nodeType":"YulIdentifier","src":"19376:3:7"},"nativeSrc":"19376:14:7","nodeType":"YulFunctionCall","src":"19376:14:7"}],"functionName":{"name":"mload","nativeSrc":"19370:5:7","nodeType":"YulIdentifier","src":"19370:5:7"},"nativeSrc":"19370:21:7","nodeType":"YulFunctionCall","src":"19370:21:7"},{"name":"q","nativeSrc":"19393:1:7","nodeType":"YulIdentifier","src":"19393:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"19333:6:7","nodeType":"YulIdentifier","src":"19333:6:7"},"nativeSrc":"19333:62:7","nodeType":"YulFunctionCall","src":"19333:62:7"},"variableNames":[{"name":"s","nativeSrc":"19328:1:7","nodeType":"YulIdentifier","src":"19328:1:7"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"19423:1:7","nodeType":"YulIdentifier","src":"19423:1:7"},{"name":"Qox","nativeSrc":"19426:3:7","nodeType":"YulIdentifier","src":"19426:3:7"},{"name":"Qoy","nativeSrc":"19431:3:7","nodeType":"YulIdentifier","src":"19431:3:7"},{"name":"s","nativeSrc":"19436:1:7","nodeType":"YulIdentifier","src":"19436:1:7"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"19412:10:7","nodeType":"YulIdentifier","src":"19412:10:7"},"nativeSrc":"19412:26:7","nodeType":"YulFunctionCall","src":"19412:26:7"},"nativeSrc":"19412:26:7","nodeType":"YulExpressionStatement","src":"19412:26:7"},{"nativeSrc":"19456:25:7","nodeType":"YulAssignment","src":"19456:25:7","value":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19470:4:7","nodeType":"YulIdentifier","src":"19470:4:7"},{"name":"pV1","nativeSrc":"19476:3:7","nodeType":"YulIdentifier","src":"19476:3:7"}],"functionName":{"name":"add","nativeSrc":"19466:3:7","nodeType":"YulIdentifier","src":"19466:3:7"},"nativeSrc":"19466:14:7","nodeType":"YulFunctionCall","src":"19466:14:7"}],"functionName":{"name":"mload","nativeSrc":"19460:5:7","nodeType":"YulIdentifier","src":"19460:5:7"},"nativeSrc":"19460:21:7","nodeType":"YulFunctionCall","src":"19460:21:7"},"variableNames":[{"name":"s","nativeSrc":"19456:1:7","nodeType":"YulIdentifier","src":"19456:1:7"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"19509:1:7","nodeType":"YulIdentifier","src":"19509:1:7"},{"name":"Qcx","nativeSrc":"19512:3:7","nodeType":"YulIdentifier","src":"19512:3:7"},{"name":"Qcy","nativeSrc":"19517:3:7","nodeType":"YulIdentifier","src":"19517:3:7"},{"name":"s","nativeSrc":"19522:1:7","nodeType":"YulIdentifier","src":"19522:1:7"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"19498:10:7","nodeType":"YulIdentifier","src":"19498:10:7"},"nativeSrc":"19498:26:7","nodeType":"YulFunctionCall","src":"19498:26:7"},"nativeSrc":"19498:26:7","nodeType":"YulExpressionStatement","src":"19498:26:7"},{"nativeSrc":"19542:70:7","nodeType":"YulAssignment","src":"19542:70:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"19564:6:7","nodeType":"YulIdentifier","src":"19564:6:7"},{"name":"pEval_a","nativeSrc":"19572:7:7","nodeType":"YulIdentifier","src":"19572:7:7"}],"functionName":{"name":"add","nativeSrc":"19560:3:7","nodeType":"YulIdentifier","src":"19560:3:7"},"nativeSrc":"19560:20:7","nodeType":"YulFunctionCall","src":"19560:20:7"}],"functionName":{"name":"mload","nativeSrc":"19554:5:7","nodeType":"YulIdentifier","src":"19554:5:7"},"nativeSrc":"19554:27:7","nodeType":"YulFunctionCall","src":"19554:27:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19593:4:7","nodeType":"YulIdentifier","src":"19593:4:7"},{"name":"pBetaXi","nativeSrc":"19599:7:7","nodeType":"YulIdentifier","src":"19599:7:7"}],"functionName":{"name":"add","nativeSrc":"19589:3:7","nodeType":"YulIdentifier","src":"19589:3:7"},"nativeSrc":"19589:18:7","nodeType":"YulFunctionCall","src":"19589:18:7"}],"functionName":{"name":"mload","nativeSrc":"19583:5:7","nodeType":"YulIdentifier","src":"19583:5:7"},"nativeSrc":"19583:25:7","nodeType":"YulFunctionCall","src":"19583:25:7"},{"name":"q","nativeSrc":"19610:1:7","nodeType":"YulIdentifier","src":"19610:1:7"}],"functionName":{"name":"addmod","nativeSrc":"19547:6:7","nodeType":"YulIdentifier","src":"19547:6:7"},"nativeSrc":"19547:65:7","nodeType":"YulFunctionCall","src":"19547:65:7"},"variableNames":[{"name":"s","nativeSrc":"19542:1:7","nodeType":"YulIdentifier","src":"19542:1:7"}]},{"nativeSrc":"19629:43:7","nodeType":"YulAssignment","src":"19629:43:7","value":{"arguments":[{"name":"s","nativeSrc":"19641:1:7","nodeType":"YulIdentifier","src":"19641:1:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19654:4:7","nodeType":"YulIdentifier","src":"19654:4:7"},{"name":"pGamma","nativeSrc":"19660:6:7","nodeType":"YulIdentifier","src":"19660:6:7"}],"functionName":{"name":"add","nativeSrc":"19650:3:7","nodeType":"YulIdentifier","src":"19650:3:7"},"nativeSrc":"19650:17:7","nodeType":"YulFunctionCall","src":"19650:17:7"}],"functionName":{"name":"mload","nativeSrc":"19644:5:7","nodeType":"YulIdentifier","src":"19644:5:7"},"nativeSrc":"19644:24:7","nodeType":"YulFunctionCall","src":"19644:24:7"},{"name":"q","nativeSrc":"19670:1:7","nodeType":"YulIdentifier","src":"19670:1:7"}],"functionName":{"name":"addmod","nativeSrc":"19634:6:7","nodeType":"YulIdentifier","src":"19634:6:7"},"nativeSrc":"19634:38:7","nodeType":"YulFunctionCall","src":"19634:38:7"},"variableNames":[{"name":"s","nativeSrc":"19629:1:7","nodeType":"YulIdentifier","src":"19629:1:7"}]},{"nativeSrc":"19689:46:7","nodeType":"YulAssignment","src":"19689:46:7","value":{"arguments":[{"name":"k1","nativeSrc":"19702:2:7","nodeType":"YulIdentifier","src":"19702:2:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19716:4:7","nodeType":"YulIdentifier","src":"19716:4:7"},{"name":"pBetaXi","nativeSrc":"19722:7:7","nodeType":"YulIdentifier","src":"19722:7:7"}],"functionName":{"name":"add","nativeSrc":"19712:3:7","nodeType":"YulIdentifier","src":"19712:3:7"},"nativeSrc":"19712:18:7","nodeType":"YulFunctionCall","src":"19712:18:7"}],"functionName":{"name":"mload","nativeSrc":"19706:5:7","nodeType":"YulIdentifier","src":"19706:5:7"},"nativeSrc":"19706:25:7","nodeType":"YulFunctionCall","src":"19706:25:7"},{"name":"q","nativeSrc":"19733:1:7","nodeType":"YulIdentifier","src":"19733:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"19695:6:7","nodeType":"YulIdentifier","src":"19695:6:7"},"nativeSrc":"19695:40:7","nodeType":"YulFunctionCall","src":"19695:40:7"},"variableNames":[{"name":"s1","nativeSrc":"19689:2:7","nodeType":"YulIdentifier","src":"19689:2:7"}]},{"nativeSrc":"19752:48:7","nodeType":"YulAssignment","src":"19752:48:7","value":{"arguments":[{"name":"s1","nativeSrc":"19765:2:7","nodeType":"YulIdentifier","src":"19765:2:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"19779:6:7","nodeType":"YulIdentifier","src":"19779:6:7"},{"name":"pEval_b","nativeSrc":"19787:7:7","nodeType":"YulIdentifier","src":"19787:7:7"}],"functionName":{"name":"add","nativeSrc":"19775:3:7","nodeType":"YulIdentifier","src":"19775:3:7"},"nativeSrc":"19775:20:7","nodeType":"YulFunctionCall","src":"19775:20:7"}],"functionName":{"name":"mload","nativeSrc":"19769:5:7","nodeType":"YulIdentifier","src":"19769:5:7"},"nativeSrc":"19769:27:7","nodeType":"YulFunctionCall","src":"19769:27:7"},{"name":"q","nativeSrc":"19798:1:7","nodeType":"YulIdentifier","src":"19798:1:7"}],"functionName":{"name":"addmod","nativeSrc":"19758:6:7","nodeType":"YulIdentifier","src":"19758:6:7"},"nativeSrc":"19758:42:7","nodeType":"YulFunctionCall","src":"19758:42:7"},"variableNames":[{"name":"s1","nativeSrc":"19752:2:7","nodeType":"YulIdentifier","src":"19752:2:7"}]},{"nativeSrc":"19817:45:7","nodeType":"YulAssignment","src":"19817:45:7","value":{"arguments":[{"name":"s1","nativeSrc":"19830:2:7","nodeType":"YulIdentifier","src":"19830:2:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19844:4:7","nodeType":"YulIdentifier","src":"19844:4:7"},{"name":"pGamma","nativeSrc":"19850:6:7","nodeType":"YulIdentifier","src":"19850:6:7"}],"functionName":{"name":"add","nativeSrc":"19840:3:7","nodeType":"YulIdentifier","src":"19840:3:7"},"nativeSrc":"19840:17:7","nodeType":"YulFunctionCall","src":"19840:17:7"}],"functionName":{"name":"mload","nativeSrc":"19834:5:7","nodeType":"YulIdentifier","src":"19834:5:7"},"nativeSrc":"19834:24:7","nodeType":"YulFunctionCall","src":"19834:24:7"},{"name":"q","nativeSrc":"19860:1:7","nodeType":"YulIdentifier","src":"19860:1:7"}],"functionName":{"name":"addmod","nativeSrc":"19823:6:7","nodeType":"YulIdentifier","src":"19823:6:7"},"nativeSrc":"19823:39:7","nodeType":"YulFunctionCall","src":"19823:39:7"},"variableNames":[{"name":"s1","nativeSrc":"19817:2:7","nodeType":"YulIdentifier","src":"19817:2:7"}]},{"nativeSrc":"19879:21:7","nodeType":"YulAssignment","src":"19879:21:7","value":{"arguments":[{"name":"s","nativeSrc":"19891:1:7","nodeType":"YulIdentifier","src":"19891:1:7"},{"name":"s1","nativeSrc":"19894:2:7","nodeType":"YulIdentifier","src":"19894:2:7"},{"name":"q","nativeSrc":"19898:1:7","nodeType":"YulIdentifier","src":"19898:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"19884:6:7","nodeType":"YulIdentifier","src":"19884:6:7"},"nativeSrc":"19884:16:7","nodeType":"YulFunctionCall","src":"19884:16:7"},"variableNames":[{"name":"s","nativeSrc":"19879:1:7","nodeType":"YulIdentifier","src":"19879:1:7"}]},{"nativeSrc":"19917:46:7","nodeType":"YulAssignment","src":"19917:46:7","value":{"arguments":[{"name":"k2","nativeSrc":"19930:2:7","nodeType":"YulIdentifier","src":"19930:2:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19944:4:7","nodeType":"YulIdentifier","src":"19944:4:7"},{"name":"pBetaXi","nativeSrc":"19950:7:7","nodeType":"YulIdentifier","src":"19950:7:7"}],"functionName":{"name":"add","nativeSrc":"19940:3:7","nodeType":"YulIdentifier","src":"19940:3:7"},"nativeSrc":"19940:18:7","nodeType":"YulFunctionCall","src":"19940:18:7"}],"functionName":{"name":"mload","nativeSrc":"19934:5:7","nodeType":"YulIdentifier","src":"19934:5:7"},"nativeSrc":"19934:25:7","nodeType":"YulFunctionCall","src":"19934:25:7"},{"name":"q","nativeSrc":"19961:1:7","nodeType":"YulIdentifier","src":"19961:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"19923:6:7","nodeType":"YulIdentifier","src":"19923:6:7"},"nativeSrc":"19923:40:7","nodeType":"YulFunctionCall","src":"19923:40:7"},"variableNames":[{"name":"s1","nativeSrc":"19917:2:7","nodeType":"YulIdentifier","src":"19917:2:7"}]},{"nativeSrc":"19980:48:7","nodeType":"YulAssignment","src":"19980:48:7","value":{"arguments":[{"name":"s1","nativeSrc":"19993:2:7","nodeType":"YulIdentifier","src":"19993:2:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"20007:6:7","nodeType":"YulIdentifier","src":"20007:6:7"},{"name":"pEval_c","nativeSrc":"20015:7:7","nodeType":"YulIdentifier","src":"20015:7:7"}],"functionName":{"name":"add","nativeSrc":"20003:3:7","nodeType":"YulIdentifier","src":"20003:3:7"},"nativeSrc":"20003:20:7","nodeType":"YulFunctionCall","src":"20003:20:7"}],"functionName":{"name":"mload","nativeSrc":"19997:5:7","nodeType":"YulIdentifier","src":"19997:5:7"},"nativeSrc":"19997:27:7","nodeType":"YulFunctionCall","src":"19997:27:7"},{"name":"q","nativeSrc":"20026:1:7","nodeType":"YulIdentifier","src":"20026:1:7"}],"functionName":{"name":"addmod","nativeSrc":"19986:6:7","nodeType":"YulIdentifier","src":"19986:6:7"},"nativeSrc":"19986:42:7","nodeType":"YulFunctionCall","src":"19986:42:7"},"variableNames":[{"name":"s1","nativeSrc":"19980:2:7","nodeType":"YulIdentifier","src":"19980:2:7"}]},{"nativeSrc":"20045:45:7","nodeType":"YulAssignment","src":"20045:45:7","value":{"arguments":[{"name":"s1","nativeSrc":"20058:2:7","nodeType":"YulIdentifier","src":"20058:2:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20072:4:7","nodeType":"YulIdentifier","src":"20072:4:7"},{"name":"pGamma","nativeSrc":"20078:6:7","nodeType":"YulIdentifier","src":"20078:6:7"}],"functionName":{"name":"add","nativeSrc":"20068:3:7","nodeType":"YulIdentifier","src":"20068:3:7"},"nativeSrc":"20068:17:7","nodeType":"YulFunctionCall","src":"20068:17:7"}],"functionName":{"name":"mload","nativeSrc":"20062:5:7","nodeType":"YulIdentifier","src":"20062:5:7"},"nativeSrc":"20062:24:7","nodeType":"YulFunctionCall","src":"20062:24:7"},{"name":"q","nativeSrc":"20088:1:7","nodeType":"YulIdentifier","src":"20088:1:7"}],"functionName":{"name":"addmod","nativeSrc":"20051:6:7","nodeType":"YulIdentifier","src":"20051:6:7"},"nativeSrc":"20051:39:7","nodeType":"YulFunctionCall","src":"20051:39:7"},"variableNames":[{"name":"s1","nativeSrc":"20045:2:7","nodeType":"YulIdentifier","src":"20045:2:7"}]},{"nativeSrc":"20107:21:7","nodeType":"YulAssignment","src":"20107:21:7","value":{"arguments":[{"name":"s","nativeSrc":"20119:1:7","nodeType":"YulIdentifier","src":"20119:1:7"},{"name":"s1","nativeSrc":"20122:2:7","nodeType":"YulIdentifier","src":"20122:2:7"},{"name":"q","nativeSrc":"20126:1:7","nodeType":"YulIdentifier","src":"20126:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"20112:6:7","nodeType":"YulIdentifier","src":"20112:6:7"},"nativeSrc":"20112:16:7","nodeType":"YulFunctionCall","src":"20112:16:7"},"variableNames":[{"name":"s","nativeSrc":"20107:1:7","nodeType":"YulIdentifier","src":"20107:1:7"}]},{"nativeSrc":"20145:43:7","nodeType":"YulAssignment","src":"20145:43:7","value":{"arguments":[{"name":"s","nativeSrc":"20157:1:7","nodeType":"YulIdentifier","src":"20157:1:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20170:4:7","nodeType":"YulIdentifier","src":"20170:4:7"},{"name":"pAlpha","nativeSrc":"20176:6:7","nodeType":"YulIdentifier","src":"20176:6:7"}],"functionName":{"name":"add","nativeSrc":"20166:3:7","nodeType":"YulIdentifier","src":"20166:3:7"},"nativeSrc":"20166:17:7","nodeType":"YulFunctionCall","src":"20166:17:7"}],"functionName":{"name":"mload","nativeSrc":"20160:5:7","nodeType":"YulIdentifier","src":"20160:5:7"},"nativeSrc":"20160:24:7","nodeType":"YulFunctionCall","src":"20160:24:7"},{"name":"q","nativeSrc":"20186:1:7","nodeType":"YulIdentifier","src":"20186:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"20150:6:7","nodeType":"YulIdentifier","src":"20150:6:7"},"nativeSrc":"20150:38:7","nodeType":"YulFunctionCall","src":"20150:38:7"},"variableNames":[{"name":"s","nativeSrc":"20145:1:7","nodeType":"YulIdentifier","src":"20145:1:7"}]},{"nativeSrc":"20205:40:7","nodeType":"YulAssignment","src":"20205:40:7","value":{"arguments":[{"name":"s","nativeSrc":"20217:1:7","nodeType":"YulIdentifier","src":"20217:1:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20230:4:7","nodeType":"YulIdentifier","src":"20230:4:7"},{"name":"pV1","nativeSrc":"20236:3:7","nodeType":"YulIdentifier","src":"20236:3:7"}],"functionName":{"name":"add","nativeSrc":"20226:3:7","nodeType":"YulIdentifier","src":"20226:3:7"},"nativeSrc":"20226:14:7","nodeType":"YulFunctionCall","src":"20226:14:7"}],"functionName":{"name":"mload","nativeSrc":"20220:5:7","nodeType":"YulIdentifier","src":"20220:5:7"},"nativeSrc":"20220:21:7","nodeType":"YulFunctionCall","src":"20220:21:7"},{"name":"q","nativeSrc":"20243:1:7","nodeType":"YulIdentifier","src":"20243:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"20210:6:7","nodeType":"YulIdentifier","src":"20210:6:7"},"nativeSrc":"20210:35:7","nodeType":"YulFunctionCall","src":"20210:35:7"},"variableNames":[{"name":"s","nativeSrc":"20205:1:7","nodeType":"YulIdentifier","src":"20205:1:7"}]},{"nativeSrc":"20262:69:7","nodeType":"YulAssignment","src":"20262:69:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20285:4:7","nodeType":"YulIdentifier","src":"20285:4:7"},{"name":"pEval_l1","nativeSrc":"20291:8:7","nodeType":"YulIdentifier","src":"20291:8:7"}],"functionName":{"name":"add","nativeSrc":"20281:3:7","nodeType":"YulIdentifier","src":"20281:3:7"},"nativeSrc":"20281:19:7","nodeType":"YulFunctionCall","src":"20281:19:7"}],"functionName":{"name":"mload","nativeSrc":"20275:5:7","nodeType":"YulIdentifier","src":"20275:5:7"},"nativeSrc":"20275:26:7","nodeType":"YulFunctionCall","src":"20275:26:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20313:4:7","nodeType":"YulIdentifier","src":"20313:4:7"},{"name":"pAlpha","nativeSrc":"20319:6:7","nodeType":"YulIdentifier","src":"20319:6:7"}],"functionName":{"name":"add","nativeSrc":"20309:3:7","nodeType":"YulIdentifier","src":"20309:3:7"},"nativeSrc":"20309:17:7","nodeType":"YulFunctionCall","src":"20309:17:7"}],"functionName":{"name":"mload","nativeSrc":"20303:5:7","nodeType":"YulIdentifier","src":"20303:5:7"},"nativeSrc":"20303:24:7","nodeType":"YulFunctionCall","src":"20303:24:7"},{"name":"q","nativeSrc":"20329:1:7","nodeType":"YulIdentifier","src":"20329:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"20268:6:7","nodeType":"YulIdentifier","src":"20268:6:7"},"nativeSrc":"20268:63:7","nodeType":"YulFunctionCall","src":"20268:63:7"},"variableNames":[{"name":"s1","nativeSrc":"20262:2:7","nodeType":"YulIdentifier","src":"20262:2:7"}]},{"nativeSrc":"20348:45:7","nodeType":"YulAssignment","src":"20348:45:7","value":{"arguments":[{"name":"s1","nativeSrc":"20361:2:7","nodeType":"YulIdentifier","src":"20361:2:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20375:4:7","nodeType":"YulIdentifier","src":"20375:4:7"},{"name":"pAlpha","nativeSrc":"20381:6:7","nodeType":"YulIdentifier","src":"20381:6:7"}],"functionName":{"name":"add","nativeSrc":"20371:3:7","nodeType":"YulIdentifier","src":"20371:3:7"},"nativeSrc":"20371:17:7","nodeType":"YulFunctionCall","src":"20371:17:7"}],"functionName":{"name":"mload","nativeSrc":"20365:5:7","nodeType":"YulIdentifier","src":"20365:5:7"},"nativeSrc":"20365:24:7","nodeType":"YulFunctionCall","src":"20365:24:7"},{"name":"q","nativeSrc":"20391:1:7","nodeType":"YulIdentifier","src":"20391:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"20354:6:7","nodeType":"YulIdentifier","src":"20354:6:7"},"nativeSrc":"20354:39:7","nodeType":"YulFunctionCall","src":"20354:39:7"},"variableNames":[{"name":"s1","nativeSrc":"20348:2:7","nodeType":"YulIdentifier","src":"20348:2:7"}]},{"nativeSrc":"20410:42:7","nodeType":"YulAssignment","src":"20410:42:7","value":{"arguments":[{"name":"s1","nativeSrc":"20423:2:7","nodeType":"YulIdentifier","src":"20423:2:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20437:4:7","nodeType":"YulIdentifier","src":"20437:4:7"},{"name":"pV1","nativeSrc":"20443:3:7","nodeType":"YulIdentifier","src":"20443:3:7"}],"functionName":{"name":"add","nativeSrc":"20433:3:7","nodeType":"YulIdentifier","src":"20433:3:7"},"nativeSrc":"20433:14:7","nodeType":"YulFunctionCall","src":"20433:14:7"}],"functionName":{"name":"mload","nativeSrc":"20427:5:7","nodeType":"YulIdentifier","src":"20427:5:7"},"nativeSrc":"20427:21:7","nodeType":"YulFunctionCall","src":"20427:21:7"},{"name":"q","nativeSrc":"20450:1:7","nodeType":"YulIdentifier","src":"20450:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"20416:6:7","nodeType":"YulIdentifier","src":"20416:6:7"},"nativeSrc":"20416:36:7","nodeType":"YulFunctionCall","src":"20416:36:7"},"variableNames":[{"name":"s1","nativeSrc":"20410:2:7","nodeType":"YulIdentifier","src":"20410:2:7"}]},{"nativeSrc":"20469:21:7","nodeType":"YulAssignment","src":"20469:21:7","value":{"arguments":[{"name":"s","nativeSrc":"20481:1:7","nodeType":"YulIdentifier","src":"20481:1:7"},{"name":"s1","nativeSrc":"20484:2:7","nodeType":"YulIdentifier","src":"20484:2:7"},{"name":"q","nativeSrc":"20488:1:7","nodeType":"YulIdentifier","src":"20488:1:7"}],"functionName":{"name":"addmod","nativeSrc":"20474:6:7","nodeType":"YulIdentifier","src":"20474:6:7"},"nativeSrc":"20474:16:7","nodeType":"YulFunctionCall","src":"20474:16:7"},"variableNames":[{"name":"s","nativeSrc":"20469:1:7","nodeType":"YulIdentifier","src":"20469:1:7"}]},{"nativeSrc":"20507:39:7","nodeType":"YulAssignment","src":"20507:39:7","value":{"arguments":[{"name":"s","nativeSrc":"20519:1:7","nodeType":"YulIdentifier","src":"20519:1:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20532:4:7","nodeType":"YulIdentifier","src":"20532:4:7"},{"name":"pU","nativeSrc":"20538:2:7","nodeType":"YulIdentifier","src":"20538:2:7"}],"functionName":{"name":"add","nativeSrc":"20528:3:7","nodeType":"YulIdentifier","src":"20528:3:7"},"nativeSrc":"20528:13:7","nodeType":"YulFunctionCall","src":"20528:13:7"}],"functionName":{"name":"mload","nativeSrc":"20522:5:7","nodeType":"YulIdentifier","src":"20522:5:7"},"nativeSrc":"20522:20:7","nodeType":"YulFunctionCall","src":"20522:20:7"},{"name":"q","nativeSrc":"20544:1:7","nodeType":"YulIdentifier","src":"20544:1:7"}],"functionName":{"name":"addmod","nativeSrc":"20512:6:7","nodeType":"YulIdentifier","src":"20512:6:7"},"nativeSrc":"20512:34:7","nodeType":"YulFunctionCall","src":"20512:34:7"},"variableNames":[{"name":"s","nativeSrc":"20507:1:7","nodeType":"YulIdentifier","src":"20507:1:7"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"20573:1:7","nodeType":"YulIdentifier","src":"20573:1:7"},{"arguments":[{"name":"pProof","nativeSrc":"20580:6:7","nodeType":"YulIdentifier","src":"20580:6:7"},{"name":"pZ","nativeSrc":"20588:2:7","nodeType":"YulIdentifier","src":"20588:2:7"}],"functionName":{"name":"add","nativeSrc":"20576:3:7","nodeType":"YulIdentifier","src":"20576:3:7"},"nativeSrc":"20576:15:7","nodeType":"YulFunctionCall","src":"20576:15:7"},{"name":"s","nativeSrc":"20593:1:7","nodeType":"YulIdentifier","src":"20593:1:7"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"20563:9:7","nodeType":"YulIdentifier","src":"20563:9:7"},"nativeSrc":"20563:32:7","nodeType":"YulFunctionCall","src":"20563:32:7"},"nativeSrc":"20563:32:7","nodeType":"YulExpressionStatement","src":"20563:32:7"},{"nativeSrc":"20629:69:7","nodeType":"YulAssignment","src":"20629:69:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20651:4:7","nodeType":"YulIdentifier","src":"20651:4:7"},{"name":"pBeta","nativeSrc":"20657:5:7","nodeType":"YulIdentifier","src":"20657:5:7"}],"functionName":{"name":"add","nativeSrc":"20647:3:7","nodeType":"YulIdentifier","src":"20647:3:7"},"nativeSrc":"20647:16:7","nodeType":"YulFunctionCall","src":"20647:16:7"}],"functionName":{"name":"mload","nativeSrc":"20641:5:7","nodeType":"YulIdentifier","src":"20641:5:7"},"nativeSrc":"20641:23:7","nodeType":"YulFunctionCall","src":"20641:23:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"20676:6:7","nodeType":"YulIdentifier","src":"20676:6:7"},{"name":"pEval_s1","nativeSrc":"20684:8:7","nodeType":"YulIdentifier","src":"20684:8:7"}],"functionName":{"name":"add","nativeSrc":"20672:3:7","nodeType":"YulIdentifier","src":"20672:3:7"},"nativeSrc":"20672:21:7","nodeType":"YulFunctionCall","src":"20672:21:7"}],"functionName":{"name":"mload","nativeSrc":"20666:5:7","nodeType":"YulIdentifier","src":"20666:5:7"},"nativeSrc":"20666:28:7","nodeType":"YulFunctionCall","src":"20666:28:7"},{"name":"q","nativeSrc":"20696:1:7","nodeType":"YulIdentifier","src":"20696:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"20634:6:7","nodeType":"YulIdentifier","src":"20634:6:7"},"nativeSrc":"20634:64:7","nodeType":"YulFunctionCall","src":"20634:64:7"},"variableNames":[{"name":"s","nativeSrc":"20629:1:7","nodeType":"YulIdentifier","src":"20629:1:7"}]},{"nativeSrc":"20715:46:7","nodeType":"YulAssignment","src":"20715:46:7","value":{"arguments":[{"name":"s","nativeSrc":"20727:1:7","nodeType":"YulIdentifier","src":"20727:1:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"20740:6:7","nodeType":"YulIdentifier","src":"20740:6:7"},{"name":"pEval_a","nativeSrc":"20748:7:7","nodeType":"YulIdentifier","src":"20748:7:7"}],"functionName":{"name":"add","nativeSrc":"20736:3:7","nodeType":"YulIdentifier","src":"20736:3:7"},"nativeSrc":"20736:20:7","nodeType":"YulFunctionCall","src":"20736:20:7"}],"functionName":{"name":"mload","nativeSrc":"20730:5:7","nodeType":"YulIdentifier","src":"20730:5:7"},"nativeSrc":"20730:27:7","nodeType":"YulFunctionCall","src":"20730:27:7"},{"name":"q","nativeSrc":"20759:1:7","nodeType":"YulIdentifier","src":"20759:1:7"}],"functionName":{"name":"addmod","nativeSrc":"20720:6:7","nodeType":"YulIdentifier","src":"20720:6:7"},"nativeSrc":"20720:41:7","nodeType":"YulFunctionCall","src":"20720:41:7"},"variableNames":[{"name":"s","nativeSrc":"20715:1:7","nodeType":"YulIdentifier","src":"20715:1:7"}]},{"nativeSrc":"20778:43:7","nodeType":"YulAssignment","src":"20778:43:7","value":{"arguments":[{"name":"s","nativeSrc":"20790:1:7","nodeType":"YulIdentifier","src":"20790:1:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20803:4:7","nodeType":"YulIdentifier","src":"20803:4:7"},{"name":"pGamma","nativeSrc":"20809:6:7","nodeType":"YulIdentifier","src":"20809:6:7"}],"functionName":{"name":"add","nativeSrc":"20799:3:7","nodeType":"YulIdentifier","src":"20799:3:7"},"nativeSrc":"20799:17:7","nodeType":"YulFunctionCall","src":"20799:17:7"}],"functionName":{"name":"mload","nativeSrc":"20793:5:7","nodeType":"YulIdentifier","src":"20793:5:7"},"nativeSrc":"20793:24:7","nodeType":"YulFunctionCall","src":"20793:24:7"},{"name":"q","nativeSrc":"20819:1:7","nodeType":"YulIdentifier","src":"20819:1:7"}],"functionName":{"name":"addmod","nativeSrc":"20783:6:7","nodeType":"YulIdentifier","src":"20783:6:7"},"nativeSrc":"20783:38:7","nodeType":"YulFunctionCall","src":"20783:38:7"},"variableNames":[{"name":"s","nativeSrc":"20778:1:7","nodeType":"YulIdentifier","src":"20778:1:7"}]},{"nativeSrc":"20838:70:7","nodeType":"YulAssignment","src":"20838:70:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20861:4:7","nodeType":"YulIdentifier","src":"20861:4:7"},{"name":"pBeta","nativeSrc":"20867:5:7","nodeType":"YulIdentifier","src":"20867:5:7"}],"functionName":{"name":"add","nativeSrc":"20857:3:7","nodeType":"YulIdentifier","src":"20857:3:7"},"nativeSrc":"20857:16:7","nodeType":"YulFunctionCall","src":"20857:16:7"}],"functionName":{"name":"mload","nativeSrc":"20851:5:7","nodeType":"YulIdentifier","src":"20851:5:7"},"nativeSrc":"20851:23:7","nodeType":"YulFunctionCall","src":"20851:23:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"20886:6:7","nodeType":"YulIdentifier","src":"20886:6:7"},{"name":"pEval_s2","nativeSrc":"20894:8:7","nodeType":"YulIdentifier","src":"20894:8:7"}],"functionName":{"name":"add","nativeSrc":"20882:3:7","nodeType":"YulIdentifier","src":"20882:3:7"},"nativeSrc":"20882:21:7","nodeType":"YulFunctionCall","src":"20882:21:7"}],"functionName":{"name":"mload","nativeSrc":"20876:5:7","nodeType":"YulIdentifier","src":"20876:5:7"},"nativeSrc":"20876:28:7","nodeType":"YulFunctionCall","src":"20876:28:7"},{"name":"q","nativeSrc":"20906:1:7","nodeType":"YulIdentifier","src":"20906:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"20844:6:7","nodeType":"YulIdentifier","src":"20844:6:7"},"nativeSrc":"20844:64:7","nodeType":"YulFunctionCall","src":"20844:64:7"},"variableNames":[{"name":"s1","nativeSrc":"20838:2:7","nodeType":"YulIdentifier","src":"20838:2:7"}]},{"nativeSrc":"20925:48:7","nodeType":"YulAssignment","src":"20925:48:7","value":{"arguments":[{"name":"s1","nativeSrc":"20938:2:7","nodeType":"YulIdentifier","src":"20938:2:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"20952:6:7","nodeType":"YulIdentifier","src":"20952:6:7"},{"name":"pEval_b","nativeSrc":"20960:7:7","nodeType":"YulIdentifier","src":"20960:7:7"}],"functionName":{"name":"add","nativeSrc":"20948:3:7","nodeType":"YulIdentifier","src":"20948:3:7"},"nativeSrc":"20948:20:7","nodeType":"YulFunctionCall","src":"20948:20:7"}],"functionName":{"name":"mload","nativeSrc":"20942:5:7","nodeType":"YulIdentifier","src":"20942:5:7"},"nativeSrc":"20942:27:7","nodeType":"YulFunctionCall","src":"20942:27:7"},{"name":"q","nativeSrc":"20971:1:7","nodeType":"YulIdentifier","src":"20971:1:7"}],"functionName":{"name":"addmod","nativeSrc":"20931:6:7","nodeType":"YulIdentifier","src":"20931:6:7"},"nativeSrc":"20931:42:7","nodeType":"YulFunctionCall","src":"20931:42:7"},"variableNames":[{"name":"s1","nativeSrc":"20925:2:7","nodeType":"YulIdentifier","src":"20925:2:7"}]},{"nativeSrc":"20990:45:7","nodeType":"YulAssignment","src":"20990:45:7","value":{"arguments":[{"name":"s1","nativeSrc":"21003:2:7","nodeType":"YulIdentifier","src":"21003:2:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21017:4:7","nodeType":"YulIdentifier","src":"21017:4:7"},{"name":"pGamma","nativeSrc":"21023:6:7","nodeType":"YulIdentifier","src":"21023:6:7"}],"functionName":{"name":"add","nativeSrc":"21013:3:7","nodeType":"YulIdentifier","src":"21013:3:7"},"nativeSrc":"21013:17:7","nodeType":"YulFunctionCall","src":"21013:17:7"}],"functionName":{"name":"mload","nativeSrc":"21007:5:7","nodeType":"YulIdentifier","src":"21007:5:7"},"nativeSrc":"21007:24:7","nodeType":"YulFunctionCall","src":"21007:24:7"},{"name":"q","nativeSrc":"21033:1:7","nodeType":"YulIdentifier","src":"21033:1:7"}],"functionName":{"name":"addmod","nativeSrc":"20996:6:7","nodeType":"YulIdentifier","src":"20996:6:7"},"nativeSrc":"20996:39:7","nodeType":"YulFunctionCall","src":"20996:39:7"},"variableNames":[{"name":"s1","nativeSrc":"20990:2:7","nodeType":"YulIdentifier","src":"20990:2:7"}]},{"nativeSrc":"21052:21:7","nodeType":"YulAssignment","src":"21052:21:7","value":{"arguments":[{"name":"s","nativeSrc":"21064:1:7","nodeType":"YulIdentifier","src":"21064:1:7"},{"name":"s1","nativeSrc":"21067:2:7","nodeType":"YulIdentifier","src":"21067:2:7"},{"name":"q","nativeSrc":"21071:1:7","nodeType":"YulIdentifier","src":"21071:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"21057:6:7","nodeType":"YulIdentifier","src":"21057:6:7"},"nativeSrc":"21057:16:7","nodeType":"YulFunctionCall","src":"21057:16:7"},"variableNames":[{"name":"s","nativeSrc":"21052:1:7","nodeType":"YulIdentifier","src":"21052:1:7"}]},{"nativeSrc":"21090:43:7","nodeType":"YulAssignment","src":"21090:43:7","value":{"arguments":[{"name":"s","nativeSrc":"21102:1:7","nodeType":"YulIdentifier","src":"21102:1:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21115:4:7","nodeType":"YulIdentifier","src":"21115:4:7"},{"name":"pAlpha","nativeSrc":"21121:6:7","nodeType":"YulIdentifier","src":"21121:6:7"}],"functionName":{"name":"add","nativeSrc":"21111:3:7","nodeType":"YulIdentifier","src":"21111:3:7"},"nativeSrc":"21111:17:7","nodeType":"YulFunctionCall","src":"21111:17:7"}],"functionName":{"name":"mload","nativeSrc":"21105:5:7","nodeType":"YulIdentifier","src":"21105:5:7"},"nativeSrc":"21105:24:7","nodeType":"YulFunctionCall","src":"21105:24:7"},{"name":"q","nativeSrc":"21131:1:7","nodeType":"YulIdentifier","src":"21131:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"21095:6:7","nodeType":"YulIdentifier","src":"21095:6:7"},"nativeSrc":"21095:38:7","nodeType":"YulFunctionCall","src":"21095:38:7"},"variableNames":[{"name":"s","nativeSrc":"21090:1:7","nodeType":"YulIdentifier","src":"21090:1:7"}]},{"nativeSrc":"21150:40:7","nodeType":"YulAssignment","src":"21150:40:7","value":{"arguments":[{"name":"s","nativeSrc":"21162:1:7","nodeType":"YulIdentifier","src":"21162:1:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21175:4:7","nodeType":"YulIdentifier","src":"21175:4:7"},{"name":"pV1","nativeSrc":"21181:3:7","nodeType":"YulIdentifier","src":"21181:3:7"}],"functionName":{"name":"add","nativeSrc":"21171:3:7","nodeType":"YulIdentifier","src":"21171:3:7"},"nativeSrc":"21171:14:7","nodeType":"YulFunctionCall","src":"21171:14:7"}],"functionName":{"name":"mload","nativeSrc":"21165:5:7","nodeType":"YulIdentifier","src":"21165:5:7"},"nativeSrc":"21165:21:7","nodeType":"YulFunctionCall","src":"21165:21:7"},{"name":"q","nativeSrc":"21188:1:7","nodeType":"YulIdentifier","src":"21188:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"21155:6:7","nodeType":"YulIdentifier","src":"21155:6:7"},"nativeSrc":"21155:35:7","nodeType":"YulFunctionCall","src":"21155:35:7"},"variableNames":[{"name":"s","nativeSrc":"21150:1:7","nodeType":"YulIdentifier","src":"21150:1:7"}]},{"nativeSrc":"21207:42:7","nodeType":"YulAssignment","src":"21207:42:7","value":{"arguments":[{"name":"s","nativeSrc":"21219:1:7","nodeType":"YulIdentifier","src":"21219:1:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21232:4:7","nodeType":"YulIdentifier","src":"21232:4:7"},{"name":"pBeta","nativeSrc":"21238:5:7","nodeType":"YulIdentifier","src":"21238:5:7"}],"functionName":{"name":"add","nativeSrc":"21228:3:7","nodeType":"YulIdentifier","src":"21228:3:7"},"nativeSrc":"21228:16:7","nodeType":"YulFunctionCall","src":"21228:16:7"}],"functionName":{"name":"mload","nativeSrc":"21222:5:7","nodeType":"YulIdentifier","src":"21222:5:7"},"nativeSrc":"21222:23:7","nodeType":"YulFunctionCall","src":"21222:23:7"},{"name":"q","nativeSrc":"21247:1:7","nodeType":"YulIdentifier","src":"21247:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"21212:6:7","nodeType":"YulIdentifier","src":"21212:6:7"},"nativeSrc":"21212:37:7","nodeType":"YulFunctionCall","src":"21212:37:7"},"variableNames":[{"name":"s","nativeSrc":"21207:1:7","nodeType":"YulIdentifier","src":"21207:1:7"}]},{"nativeSrc":"21266:47:7","nodeType":"YulAssignment","src":"21266:47:7","value":{"arguments":[{"name":"s","nativeSrc":"21278:1:7","nodeType":"YulIdentifier","src":"21278:1:7"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"21291:6:7","nodeType":"YulIdentifier","src":"21291:6:7"},{"name":"pEval_zw","nativeSrc":"21299:8:7","nodeType":"YulIdentifier","src":"21299:8:7"}],"functionName":{"name":"add","nativeSrc":"21287:3:7","nodeType":"YulIdentifier","src":"21287:3:7"},"nativeSrc":"21287:21:7","nodeType":"YulFunctionCall","src":"21287:21:7"}],"functionName":{"name":"mload","nativeSrc":"21281:5:7","nodeType":"YulIdentifier","src":"21281:5:7"},"nativeSrc":"21281:28:7","nodeType":"YulFunctionCall","src":"21281:28:7"},{"name":"q","nativeSrc":"21311:1:7","nodeType":"YulIdentifier","src":"21311:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"21271:6:7","nodeType":"YulIdentifier","src":"21271:6:7"},"nativeSrc":"21271:42:7","nodeType":"YulFunctionCall","src":"21271:42:7"},"variableNames":[{"name":"s","nativeSrc":"21266:1:7","nodeType":"YulIdentifier","src":"21266:1:7"}]},{"nativeSrc":"21330:22:7","nodeType":"YulAssignment","src":"21330:22:7","value":{"arguments":[{"arguments":[{"name":"q","nativeSrc":"21343:1:7","nodeType":"YulIdentifier","src":"21343:1:7"},{"name":"s","nativeSrc":"21346:1:7","nodeType":"YulIdentifier","src":"21346:1:7"}],"functionName":{"name":"sub","nativeSrc":"21339:3:7","nodeType":"YulIdentifier","src":"21339:3:7"},"nativeSrc":"21339:9:7","nodeType":"YulFunctionCall","src":"21339:9:7"},{"name":"q","nativeSrc":"21350:1:7","nodeType":"YulIdentifier","src":"21350:1:7"}],"functionName":{"name":"mod","nativeSrc":"21335:3:7","nodeType":"YulIdentifier","src":"21335:3:7"},"nativeSrc":"21335:17:7","nodeType":"YulFunctionCall","src":"21335:17:7"},"variableNames":[{"name":"s","nativeSrc":"21330:1:7","nodeType":"YulIdentifier","src":"21330:1:7"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"21380:1:7","nodeType":"YulIdentifier","src":"21380:1:7"},{"name":"S3x","nativeSrc":"21383:3:7","nodeType":"YulIdentifier","src":"21383:3:7"},{"name":"S3y","nativeSrc":"21388:3:7","nodeType":"YulIdentifier","src":"21388:3:7"},{"name":"s","nativeSrc":"21393:1:7","nodeType":"YulIdentifier","src":"21393:1:7"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"21369:10:7","nodeType":"YulIdentifier","src":"21369:10:7"},"nativeSrc":"21369:26:7","nodeType":"YulFunctionCall","src":"21369:26:7"},"nativeSrc":"21369:26:7","nodeType":"YulExpressionStatement","src":"21369:26:7"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21452:1:7","nodeType":"YulIdentifier","src":"21452:1:7"},{"arguments":[{"name":"pProof","nativeSrc":"21460:6:7","nodeType":"YulIdentifier","src":"21460:6:7"},{"name":"pT1","nativeSrc":"21468:3:7","nodeType":"YulIdentifier","src":"21468:3:7"}],"functionName":{"name":"add","nativeSrc":"21456:3:7","nodeType":"YulIdentifier","src":"21456:3:7"},"nativeSrc":"21456:16:7","nodeType":"YulFunctionCall","src":"21456:16:7"}],"functionName":{"name":"g1_acc","nativeSrc":"21445:6:7","nodeType":"YulIdentifier","src":"21445:6:7"},"nativeSrc":"21445:28:7","nodeType":"YulFunctionCall","src":"21445:28:7"},"nativeSrc":"21445:28:7","nodeType":"YulExpressionStatement","src":"21445:28:7"},{"nativeSrc":"21491:27:7","nodeType":"YulAssignment","src":"21491:27:7","value":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21506:4:7","nodeType":"YulIdentifier","src":"21506:4:7"},{"name":"pXin","nativeSrc":"21512:4:7","nodeType":"YulIdentifier","src":"21512:4:7"}],"functionName":{"name":"add","nativeSrc":"21502:3:7","nodeType":"YulIdentifier","src":"21502:3:7"},"nativeSrc":"21502:15:7","nodeType":"YulFunctionCall","src":"21502:15:7"}],"functionName":{"name":"mload","nativeSrc":"21496:5:7","nodeType":"YulIdentifier","src":"21496:5:7"},"nativeSrc":"21496:22:7","nodeType":"YulFunctionCall","src":"21496:22:7"},"variableNames":[{"name":"s","nativeSrc":"21491:1:7","nodeType":"YulIdentifier","src":"21491:1:7"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"21545:1:7","nodeType":"YulIdentifier","src":"21545:1:7"},{"arguments":[{"name":"pProof","nativeSrc":"21552:6:7","nodeType":"YulIdentifier","src":"21552:6:7"},{"name":"pT2","nativeSrc":"21560:3:7","nodeType":"YulIdentifier","src":"21560:3:7"}],"functionName":{"name":"add","nativeSrc":"21548:3:7","nodeType":"YulIdentifier","src":"21548:3:7"},"nativeSrc":"21548:16:7","nodeType":"YulFunctionCall","src":"21548:16:7"},{"name":"s","nativeSrc":"21566:1:7","nodeType":"YulIdentifier","src":"21566:1:7"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"21535:9:7","nodeType":"YulIdentifier","src":"21535:9:7"},"nativeSrc":"21535:33:7","nodeType":"YulFunctionCall","src":"21535:33:7"},"nativeSrc":"21535:33:7","nodeType":"YulExpressionStatement","src":"21535:33:7"},{"nativeSrc":"21602:20:7","nodeType":"YulAssignment","src":"21602:20:7","value":{"arguments":[{"name":"s","nativeSrc":"21614:1:7","nodeType":"YulIdentifier","src":"21614:1:7"},{"name":"s","nativeSrc":"21617:1:7","nodeType":"YulIdentifier","src":"21617:1:7"},{"name":"q","nativeSrc":"21620:1:7","nodeType":"YulIdentifier","src":"21620:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"21607:6:7","nodeType":"YulIdentifier","src":"21607:6:7"},"nativeSrc":"21607:15:7","nodeType":"YulFunctionCall","src":"21607:15:7"},"variableNames":[{"name":"s","nativeSrc":"21602:1:7","nodeType":"YulIdentifier","src":"21602:1:7"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"21649:1:7","nodeType":"YulIdentifier","src":"21649:1:7"},{"arguments":[{"name":"pProof","nativeSrc":"21656:6:7","nodeType":"YulIdentifier","src":"21656:6:7"},{"name":"pT3","nativeSrc":"21664:3:7","nodeType":"YulIdentifier","src":"21664:3:7"}],"functionName":{"name":"add","nativeSrc":"21652:3:7","nodeType":"YulIdentifier","src":"21652:3:7"},"nativeSrc":"21652:16:7","nodeType":"YulFunctionCall","src":"21652:16:7"},{"name":"s","nativeSrc":"21670:1:7","nodeType":"YulIdentifier","src":"21670:1:7"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"21639:9:7","nodeType":"YulIdentifier","src":"21639:9:7"},"nativeSrc":"21639:33:7","nodeType":"YulFunctionCall","src":"21639:33:7"},"nativeSrc":"21639:33:7","nodeType":"YulExpressionStatement","src":"21639:33:7"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21716:1:7","nodeType":"YulIdentifier","src":"21716:1:7"},{"arguments":[{"name":"pProof","nativeSrc":"21723:6:7","nodeType":"YulIdentifier","src":"21723:6:7"},{"name":"pA","nativeSrc":"21731:2:7","nodeType":"YulIdentifier","src":"21731:2:7"}],"functionName":{"name":"add","nativeSrc":"21719:3:7","nodeType":"YulIdentifier","src":"21719:3:7"},"nativeSrc":"21719:15:7","nodeType":"YulFunctionCall","src":"21719:15:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21746:4:7","nodeType":"YulIdentifier","src":"21746:4:7"},{"name":"pV2","nativeSrc":"21752:3:7","nodeType":"YulIdentifier","src":"21752:3:7"}],"functionName":{"name":"add","nativeSrc":"21742:3:7","nodeType":"YulIdentifier","src":"21742:3:7"},"nativeSrc":"21742:14:7","nodeType":"YulFunctionCall","src":"21742:14:7"}],"functionName":{"name":"mload","nativeSrc":"21736:5:7","nodeType":"YulIdentifier","src":"21736:5:7"},"nativeSrc":"21736:21:7","nodeType":"YulFunctionCall","src":"21736:21:7"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"21706:9:7","nodeType":"YulIdentifier","src":"21706:9:7"},"nativeSrc":"21706:52:7","nodeType":"YulFunctionCall","src":"21706:52:7"},"nativeSrc":"21706:52:7","nodeType":"YulExpressionStatement","src":"21706:52:7"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21785:1:7","nodeType":"YulIdentifier","src":"21785:1:7"},{"arguments":[{"name":"pProof","nativeSrc":"21792:6:7","nodeType":"YulIdentifier","src":"21792:6:7"},{"name":"pB","nativeSrc":"21800:2:7","nodeType":"YulIdentifier","src":"21800:2:7"}],"functionName":{"name":"add","nativeSrc":"21788:3:7","nodeType":"YulIdentifier","src":"21788:3:7"},"nativeSrc":"21788:15:7","nodeType":"YulFunctionCall","src":"21788:15:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21815:4:7","nodeType":"YulIdentifier","src":"21815:4:7"},{"name":"pV3","nativeSrc":"21821:3:7","nodeType":"YulIdentifier","src":"21821:3:7"}],"functionName":{"name":"add","nativeSrc":"21811:3:7","nodeType":"YulIdentifier","src":"21811:3:7"},"nativeSrc":"21811:14:7","nodeType":"YulFunctionCall","src":"21811:14:7"}],"functionName":{"name":"mload","nativeSrc":"21805:5:7","nodeType":"YulIdentifier","src":"21805:5:7"},"nativeSrc":"21805:21:7","nodeType":"YulFunctionCall","src":"21805:21:7"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"21775:9:7","nodeType":"YulIdentifier","src":"21775:9:7"},"nativeSrc":"21775:52:7","nodeType":"YulFunctionCall","src":"21775:52:7"},"nativeSrc":"21775:52:7","nodeType":"YulExpressionStatement","src":"21775:52:7"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21854:1:7","nodeType":"YulIdentifier","src":"21854:1:7"},{"arguments":[{"name":"pProof","nativeSrc":"21861:6:7","nodeType":"YulIdentifier","src":"21861:6:7"},{"name":"pC","nativeSrc":"21869:2:7","nodeType":"YulIdentifier","src":"21869:2:7"}],"functionName":{"name":"add","nativeSrc":"21857:3:7","nodeType":"YulIdentifier","src":"21857:3:7"},"nativeSrc":"21857:15:7","nodeType":"YulFunctionCall","src":"21857:15:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21884:4:7","nodeType":"YulIdentifier","src":"21884:4:7"},{"name":"pV4","nativeSrc":"21890:3:7","nodeType":"YulIdentifier","src":"21890:3:7"}],"functionName":{"name":"add","nativeSrc":"21880:3:7","nodeType":"YulIdentifier","src":"21880:3:7"},"nativeSrc":"21880:14:7","nodeType":"YulFunctionCall","src":"21880:14:7"}],"functionName":{"name":"mload","nativeSrc":"21874:5:7","nodeType":"YulIdentifier","src":"21874:5:7"},"nativeSrc":"21874:21:7","nodeType":"YulFunctionCall","src":"21874:21:7"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"21844:9:7","nodeType":"YulIdentifier","src":"21844:9:7"},"nativeSrc":"21844:52:7","nodeType":"YulFunctionCall","src":"21844:52:7"},"nativeSrc":"21844:52:7","nodeType":"YulExpressionStatement","src":"21844:52:7"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21924:1:7","nodeType":"YulIdentifier","src":"21924:1:7"},{"name":"S1x","nativeSrc":"21927:3:7","nodeType":"YulIdentifier","src":"21927:3:7"},{"name":"S1y","nativeSrc":"21932:3:7","nodeType":"YulIdentifier","src":"21932:3:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21947:4:7","nodeType":"YulIdentifier","src":"21947:4:7"},{"name":"pV5","nativeSrc":"21953:3:7","nodeType":"YulIdentifier","src":"21953:3:7"}],"functionName":{"name":"add","nativeSrc":"21943:3:7","nodeType":"YulIdentifier","src":"21943:3:7"},"nativeSrc":"21943:14:7","nodeType":"YulFunctionCall","src":"21943:14:7"}],"functionName":{"name":"mload","nativeSrc":"21937:5:7","nodeType":"YulIdentifier","src":"21937:5:7"},"nativeSrc":"21937:21:7","nodeType":"YulFunctionCall","src":"21937:21:7"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"21913:10:7","nodeType":"YulIdentifier","src":"21913:10:7"},"nativeSrc":"21913:46:7","nodeType":"YulFunctionCall","src":"21913:46:7"},"nativeSrc":"21913:46:7","nodeType":"YulExpressionStatement","src":"21913:46:7"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21987:1:7","nodeType":"YulIdentifier","src":"21987:1:7"},{"name":"S2x","nativeSrc":"21990:3:7","nodeType":"YulIdentifier","src":"21990:3:7"},{"name":"S2y","nativeSrc":"21995:3:7","nodeType":"YulIdentifier","src":"21995:3:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22010:4:7","nodeType":"YulIdentifier","src":"22010:4:7"},{"name":"pV6","nativeSrc":"22016:3:7","nodeType":"YulIdentifier","src":"22016:3:7"}],"functionName":{"name":"add","nativeSrc":"22006:3:7","nodeType":"YulIdentifier","src":"22006:3:7"},"nativeSrc":"22006:14:7","nodeType":"YulFunctionCall","src":"22006:14:7"}],"functionName":{"name":"mload","nativeSrc":"22000:5:7","nodeType":"YulIdentifier","src":"22000:5:7"},"nativeSrc":"22000:21:7","nodeType":"YulFunctionCall","src":"22000:21:7"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"21976:10:7","nodeType":"YulIdentifier","src":"21976:10:7"},"nativeSrc":"21976:46:7","nodeType":"YulFunctionCall","src":"21976:46:7"},"nativeSrc":"21976:46:7","nodeType":"YulExpressionStatement","src":"21976:46:7"},{"nativeSrc":"22087:30:7","nodeType":"YulAssignment","src":"22087:30:7","value":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22102:4:7","nodeType":"YulIdentifier","src":"22102:4:7"},{"name":"pEval_t","nativeSrc":"22108:7:7","nodeType":"YulIdentifier","src":"22108:7:7"}],"functionName":{"name":"add","nativeSrc":"22098:3:7","nodeType":"YulIdentifier","src":"22098:3:7"},"nativeSrc":"22098:18:7","nodeType":"YulFunctionCall","src":"22098:18:7"}],"functionName":{"name":"mload","nativeSrc":"22092:5:7","nodeType":"YulIdentifier","src":"22092:5:7"},"nativeSrc":"22092:25:7","nodeType":"YulFunctionCall","src":"22092:25:7"},"variableNames":[{"name":"s","nativeSrc":"22087:1:7","nodeType":"YulIdentifier","src":"22087:1:7"}]},{"nativeSrc":"22134:80:7","nodeType":"YulAssignment","src":"22134:80:7","value":{"arguments":[{"name":"s","nativeSrc":"22146:1:7","nodeType":"YulIdentifier","src":"22146:1:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22166:6:7","nodeType":"YulIdentifier","src":"22166:6:7"},{"name":"pEval_r","nativeSrc":"22174:7:7","nodeType":"YulIdentifier","src":"22174:7:7"}],"functionName":{"name":"add","nativeSrc":"22162:3:7","nodeType":"YulIdentifier","src":"22162:3:7"},"nativeSrc":"22162:20:7","nodeType":"YulFunctionCall","src":"22162:20:7"}],"functionName":{"name":"mload","nativeSrc":"22156:5:7","nodeType":"YulIdentifier","src":"22156:5:7"},"nativeSrc":"22156:27:7","nodeType":"YulFunctionCall","src":"22156:27:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22195:4:7","nodeType":"YulIdentifier","src":"22195:4:7"},{"name":"pV1","nativeSrc":"22201:3:7","nodeType":"YulIdentifier","src":"22201:3:7"}],"functionName":{"name":"add","nativeSrc":"22191:3:7","nodeType":"YulIdentifier","src":"22191:3:7"},"nativeSrc":"22191:14:7","nodeType":"YulFunctionCall","src":"22191:14:7"}],"functionName":{"name":"mload","nativeSrc":"22185:5:7","nodeType":"YulIdentifier","src":"22185:5:7"},"nativeSrc":"22185:21:7","nodeType":"YulFunctionCall","src":"22185:21:7"},{"name":"q","nativeSrc":"22208:1:7","nodeType":"YulIdentifier","src":"22208:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"22149:6:7","nodeType":"YulIdentifier","src":"22149:6:7"},"nativeSrc":"22149:61:7","nodeType":"YulFunctionCall","src":"22149:61:7"},{"name":"q","nativeSrc":"22212:1:7","nodeType":"YulIdentifier","src":"22212:1:7"}],"functionName":{"name":"addmod","nativeSrc":"22139:6:7","nodeType":"YulIdentifier","src":"22139:6:7"},"nativeSrc":"22139:75:7","nodeType":"YulFunctionCall","src":"22139:75:7"},"variableNames":[{"name":"s","nativeSrc":"22134:1:7","nodeType":"YulIdentifier","src":"22134:1:7"}]},{"nativeSrc":"22231:80:7","nodeType":"YulAssignment","src":"22231:80:7","value":{"arguments":[{"name":"s","nativeSrc":"22243:1:7","nodeType":"YulIdentifier","src":"22243:1:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22263:6:7","nodeType":"YulIdentifier","src":"22263:6:7"},{"name":"pEval_a","nativeSrc":"22271:7:7","nodeType":"YulIdentifier","src":"22271:7:7"}],"functionName":{"name":"add","nativeSrc":"22259:3:7","nodeType":"YulIdentifier","src":"22259:3:7"},"nativeSrc":"22259:20:7","nodeType":"YulFunctionCall","src":"22259:20:7"}],"functionName":{"name":"mload","nativeSrc":"22253:5:7","nodeType":"YulIdentifier","src":"22253:5:7"},"nativeSrc":"22253:27:7","nodeType":"YulFunctionCall","src":"22253:27:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22292:4:7","nodeType":"YulIdentifier","src":"22292:4:7"},{"name":"pV2","nativeSrc":"22298:3:7","nodeType":"YulIdentifier","src":"22298:3:7"}],"functionName":{"name":"add","nativeSrc":"22288:3:7","nodeType":"YulIdentifier","src":"22288:3:7"},"nativeSrc":"22288:14:7","nodeType":"YulFunctionCall","src":"22288:14:7"}],"functionName":{"name":"mload","nativeSrc":"22282:5:7","nodeType":"YulIdentifier","src":"22282:5:7"},"nativeSrc":"22282:21:7","nodeType":"YulFunctionCall","src":"22282:21:7"},{"name":"q","nativeSrc":"22305:1:7","nodeType":"YulIdentifier","src":"22305:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"22246:6:7","nodeType":"YulIdentifier","src":"22246:6:7"},"nativeSrc":"22246:61:7","nodeType":"YulFunctionCall","src":"22246:61:7"},{"name":"q","nativeSrc":"22309:1:7","nodeType":"YulIdentifier","src":"22309:1:7"}],"functionName":{"name":"addmod","nativeSrc":"22236:6:7","nodeType":"YulIdentifier","src":"22236:6:7"},"nativeSrc":"22236:75:7","nodeType":"YulFunctionCall","src":"22236:75:7"},"variableNames":[{"name":"s","nativeSrc":"22231:1:7","nodeType":"YulIdentifier","src":"22231:1:7"}]},{"nativeSrc":"22328:80:7","nodeType":"YulAssignment","src":"22328:80:7","value":{"arguments":[{"name":"s","nativeSrc":"22340:1:7","nodeType":"YulIdentifier","src":"22340:1:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22360:6:7","nodeType":"YulIdentifier","src":"22360:6:7"},{"name":"pEval_b","nativeSrc":"22368:7:7","nodeType":"YulIdentifier","src":"22368:7:7"}],"functionName":{"name":"add","nativeSrc":"22356:3:7","nodeType":"YulIdentifier","src":"22356:3:7"},"nativeSrc":"22356:20:7","nodeType":"YulFunctionCall","src":"22356:20:7"}],"functionName":{"name":"mload","nativeSrc":"22350:5:7","nodeType":"YulIdentifier","src":"22350:5:7"},"nativeSrc":"22350:27:7","nodeType":"YulFunctionCall","src":"22350:27:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22389:4:7","nodeType":"YulIdentifier","src":"22389:4:7"},{"name":"pV3","nativeSrc":"22395:3:7","nodeType":"YulIdentifier","src":"22395:3:7"}],"functionName":{"name":"add","nativeSrc":"22385:3:7","nodeType":"YulIdentifier","src":"22385:3:7"},"nativeSrc":"22385:14:7","nodeType":"YulFunctionCall","src":"22385:14:7"}],"functionName":{"name":"mload","nativeSrc":"22379:5:7","nodeType":"YulIdentifier","src":"22379:5:7"},"nativeSrc":"22379:21:7","nodeType":"YulFunctionCall","src":"22379:21:7"},{"name":"q","nativeSrc":"22402:1:7","nodeType":"YulIdentifier","src":"22402:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"22343:6:7","nodeType":"YulIdentifier","src":"22343:6:7"},"nativeSrc":"22343:61:7","nodeType":"YulFunctionCall","src":"22343:61:7"},{"name":"q","nativeSrc":"22406:1:7","nodeType":"YulIdentifier","src":"22406:1:7"}],"functionName":{"name":"addmod","nativeSrc":"22333:6:7","nodeType":"YulIdentifier","src":"22333:6:7"},"nativeSrc":"22333:75:7","nodeType":"YulFunctionCall","src":"22333:75:7"},"variableNames":[{"name":"s","nativeSrc":"22328:1:7","nodeType":"YulIdentifier","src":"22328:1:7"}]},{"nativeSrc":"22425:80:7","nodeType":"YulAssignment","src":"22425:80:7","value":{"arguments":[{"name":"s","nativeSrc":"22437:1:7","nodeType":"YulIdentifier","src":"22437:1:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22457:6:7","nodeType":"YulIdentifier","src":"22457:6:7"},{"name":"pEval_c","nativeSrc":"22465:7:7","nodeType":"YulIdentifier","src":"22465:7:7"}],"functionName":{"name":"add","nativeSrc":"22453:3:7","nodeType":"YulIdentifier","src":"22453:3:7"},"nativeSrc":"22453:20:7","nodeType":"YulFunctionCall","src":"22453:20:7"}],"functionName":{"name":"mload","nativeSrc":"22447:5:7","nodeType":"YulIdentifier","src":"22447:5:7"},"nativeSrc":"22447:27:7","nodeType":"YulFunctionCall","src":"22447:27:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22486:4:7","nodeType":"YulIdentifier","src":"22486:4:7"},{"name":"pV4","nativeSrc":"22492:3:7","nodeType":"YulIdentifier","src":"22492:3:7"}],"functionName":{"name":"add","nativeSrc":"22482:3:7","nodeType":"YulIdentifier","src":"22482:3:7"},"nativeSrc":"22482:14:7","nodeType":"YulFunctionCall","src":"22482:14:7"}],"functionName":{"name":"mload","nativeSrc":"22476:5:7","nodeType":"YulIdentifier","src":"22476:5:7"},"nativeSrc":"22476:21:7","nodeType":"YulFunctionCall","src":"22476:21:7"},{"name":"q","nativeSrc":"22499:1:7","nodeType":"YulIdentifier","src":"22499:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"22440:6:7","nodeType":"YulIdentifier","src":"22440:6:7"},"nativeSrc":"22440:61:7","nodeType":"YulFunctionCall","src":"22440:61:7"},{"name":"q","nativeSrc":"22503:1:7","nodeType":"YulIdentifier","src":"22503:1:7"}],"functionName":{"name":"addmod","nativeSrc":"22430:6:7","nodeType":"YulIdentifier","src":"22430:6:7"},"nativeSrc":"22430:75:7","nodeType":"YulFunctionCall","src":"22430:75:7"},"variableNames":[{"name":"s","nativeSrc":"22425:1:7","nodeType":"YulIdentifier","src":"22425:1:7"}]},{"nativeSrc":"22522:81:7","nodeType":"YulAssignment","src":"22522:81:7","value":{"arguments":[{"name":"s","nativeSrc":"22534:1:7","nodeType":"YulIdentifier","src":"22534:1:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22554:6:7","nodeType":"YulIdentifier","src":"22554:6:7"},{"name":"pEval_s1","nativeSrc":"22562:8:7","nodeType":"YulIdentifier","src":"22562:8:7"}],"functionName":{"name":"add","nativeSrc":"22550:3:7","nodeType":"YulIdentifier","src":"22550:3:7"},"nativeSrc":"22550:21:7","nodeType":"YulFunctionCall","src":"22550:21:7"}],"functionName":{"name":"mload","nativeSrc":"22544:5:7","nodeType":"YulIdentifier","src":"22544:5:7"},"nativeSrc":"22544:28:7","nodeType":"YulFunctionCall","src":"22544:28:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22584:4:7","nodeType":"YulIdentifier","src":"22584:4:7"},{"name":"pV5","nativeSrc":"22590:3:7","nodeType":"YulIdentifier","src":"22590:3:7"}],"functionName":{"name":"add","nativeSrc":"22580:3:7","nodeType":"YulIdentifier","src":"22580:3:7"},"nativeSrc":"22580:14:7","nodeType":"YulFunctionCall","src":"22580:14:7"}],"functionName":{"name":"mload","nativeSrc":"22574:5:7","nodeType":"YulIdentifier","src":"22574:5:7"},"nativeSrc":"22574:21:7","nodeType":"YulFunctionCall","src":"22574:21:7"},{"name":"q","nativeSrc":"22597:1:7","nodeType":"YulIdentifier","src":"22597:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"22537:6:7","nodeType":"YulIdentifier","src":"22537:6:7"},"nativeSrc":"22537:62:7","nodeType":"YulFunctionCall","src":"22537:62:7"},{"name":"q","nativeSrc":"22601:1:7","nodeType":"YulIdentifier","src":"22601:1:7"}],"functionName":{"name":"addmod","nativeSrc":"22527:6:7","nodeType":"YulIdentifier","src":"22527:6:7"},"nativeSrc":"22527:76:7","nodeType":"YulFunctionCall","src":"22527:76:7"},"variableNames":[{"name":"s","nativeSrc":"22522:1:7","nodeType":"YulIdentifier","src":"22522:1:7"}]},{"nativeSrc":"22620:81:7","nodeType":"YulAssignment","src":"22620:81:7","value":{"arguments":[{"name":"s","nativeSrc":"22632:1:7","nodeType":"YulIdentifier","src":"22632:1:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22652:6:7","nodeType":"YulIdentifier","src":"22652:6:7"},{"name":"pEval_s2","nativeSrc":"22660:8:7","nodeType":"YulIdentifier","src":"22660:8:7"}],"functionName":{"name":"add","nativeSrc":"22648:3:7","nodeType":"YulIdentifier","src":"22648:3:7"},"nativeSrc":"22648:21:7","nodeType":"YulFunctionCall","src":"22648:21:7"}],"functionName":{"name":"mload","nativeSrc":"22642:5:7","nodeType":"YulIdentifier","src":"22642:5:7"},"nativeSrc":"22642:28:7","nodeType":"YulFunctionCall","src":"22642:28:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22682:4:7","nodeType":"YulIdentifier","src":"22682:4:7"},{"name":"pV6","nativeSrc":"22688:3:7","nodeType":"YulIdentifier","src":"22688:3:7"}],"functionName":{"name":"add","nativeSrc":"22678:3:7","nodeType":"YulIdentifier","src":"22678:3:7"},"nativeSrc":"22678:14:7","nodeType":"YulFunctionCall","src":"22678:14:7"}],"functionName":{"name":"mload","nativeSrc":"22672:5:7","nodeType":"YulIdentifier","src":"22672:5:7"},"nativeSrc":"22672:21:7","nodeType":"YulFunctionCall","src":"22672:21:7"},{"name":"q","nativeSrc":"22695:1:7","nodeType":"YulIdentifier","src":"22695:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"22635:6:7","nodeType":"YulIdentifier","src":"22635:6:7"},"nativeSrc":"22635:62:7","nodeType":"YulFunctionCall","src":"22635:62:7"},{"name":"q","nativeSrc":"22699:1:7","nodeType":"YulIdentifier","src":"22699:1:7"}],"functionName":{"name":"addmod","nativeSrc":"22625:6:7","nodeType":"YulIdentifier","src":"22625:6:7"},"nativeSrc":"22625:76:7","nodeType":"YulFunctionCall","src":"22625:76:7"},"variableNames":[{"name":"s","nativeSrc":"22620:1:7","nodeType":"YulIdentifier","src":"22620:1:7"}]},{"nativeSrc":"22718:80:7","nodeType":"YulAssignment","src":"22718:80:7","value":{"arguments":[{"name":"s","nativeSrc":"22730:1:7","nodeType":"YulIdentifier","src":"22730:1:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22750:6:7","nodeType":"YulIdentifier","src":"22750:6:7"},{"name":"pEval_zw","nativeSrc":"22758:8:7","nodeType":"YulIdentifier","src":"22758:8:7"}],"functionName":{"name":"add","nativeSrc":"22746:3:7","nodeType":"YulIdentifier","src":"22746:3:7"},"nativeSrc":"22746:21:7","nodeType":"YulFunctionCall","src":"22746:21:7"}],"functionName":{"name":"mload","nativeSrc":"22740:5:7","nodeType":"YulIdentifier","src":"22740:5:7"},"nativeSrc":"22740:28:7","nodeType":"YulFunctionCall","src":"22740:28:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22780:4:7","nodeType":"YulIdentifier","src":"22780:4:7"},{"name":"pU","nativeSrc":"22786:2:7","nodeType":"YulIdentifier","src":"22786:2:7"}],"functionName":{"name":"add","nativeSrc":"22776:3:7","nodeType":"YulIdentifier","src":"22776:3:7"},"nativeSrc":"22776:13:7","nodeType":"YulFunctionCall","src":"22776:13:7"}],"functionName":{"name":"mload","nativeSrc":"22770:5:7","nodeType":"YulIdentifier","src":"22770:5:7"},"nativeSrc":"22770:20:7","nodeType":"YulFunctionCall","src":"22770:20:7"},{"name":"q","nativeSrc":"22792:1:7","nodeType":"YulIdentifier","src":"22792:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"22733:6:7","nodeType":"YulIdentifier","src":"22733:6:7"},"nativeSrc":"22733:61:7","nodeType":"YulFunctionCall","src":"22733:61:7"},{"name":"q","nativeSrc":"22796:1:7","nodeType":"YulIdentifier","src":"22796:1:7"}],"functionName":{"name":"addmod","nativeSrc":"22723:6:7","nodeType":"YulIdentifier","src":"22723:6:7"},"nativeSrc":"22723:75:7","nodeType":"YulFunctionCall","src":"22723:75:7"},"variableNames":[{"name":"s","nativeSrc":"22718:1:7","nodeType":"YulIdentifier","src":"22718:1:7"}]},{"nativeSrc":"22815:22:7","nodeType":"YulAssignment","src":"22815:22:7","value":{"arguments":[{"arguments":[{"name":"q","nativeSrc":"22828:1:7","nodeType":"YulIdentifier","src":"22828:1:7"},{"name":"s","nativeSrc":"22831:1:7","nodeType":"YulIdentifier","src":"22831:1:7"}],"functionName":{"name":"sub","nativeSrc":"22824:3:7","nodeType":"YulIdentifier","src":"22824:3:7"},"nativeSrc":"22824:9:7","nodeType":"YulFunctionCall","src":"22824:9:7"},{"name":"q","nativeSrc":"22835:1:7","nodeType":"YulIdentifier","src":"22835:1:7"}],"functionName":{"name":"mod","nativeSrc":"22820:3:7","nodeType":"YulIdentifier","src":"22820:3:7"},"nativeSrc":"22820:17:7","nodeType":"YulFunctionCall","src":"22820:17:7"},"variableNames":[{"name":"s","nativeSrc":"22815:1:7","nodeType":"YulIdentifier","src":"22815:1:7"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"22865:1:7","nodeType":"YulIdentifier","src":"22865:1:7"},{"name":"G1x","nativeSrc":"22868:3:7","nodeType":"YulIdentifier","src":"22868:3:7"},{"name":"G1y","nativeSrc":"22873:3:7","nodeType":"YulIdentifier","src":"22873:3:7"},{"name":"s","nativeSrc":"22878:1:7","nodeType":"YulIdentifier","src":"22878:1:7"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"22854:10:7","nodeType":"YulIdentifier","src":"22854:10:7"},"nativeSrc":"22854:26:7","nodeType":"YulFunctionCall","src":"22854:26:7"},"nativeSrc":"22854:26:7","nodeType":"YulExpressionStatement","src":"22854:26:7"},{"nativeSrc":"22965:26:7","nodeType":"YulAssignment","src":"22965:26:7","value":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22980:4:7","nodeType":"YulIdentifier","src":"22980:4:7"},{"name":"pXi","nativeSrc":"22986:3:7","nodeType":"YulIdentifier","src":"22986:3:7"}],"functionName":{"name":"add","nativeSrc":"22976:3:7","nodeType":"YulIdentifier","src":"22976:3:7"},"nativeSrc":"22976:14:7","nodeType":"YulFunctionCall","src":"22976:14:7"}],"functionName":{"name":"mload","nativeSrc":"22970:5:7","nodeType":"YulIdentifier","src":"22970:5:7"},"nativeSrc":"22970:21:7","nodeType":"YulFunctionCall","src":"22970:21:7"},"variableNames":[{"name":"s","nativeSrc":"22965:1:7","nodeType":"YulIdentifier","src":"22965:1:7"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"23018:1:7","nodeType":"YulIdentifier","src":"23018:1:7"},{"arguments":[{"name":"pProof","nativeSrc":"23025:6:7","nodeType":"YulIdentifier","src":"23025:6:7"},{"name":"pWxi","nativeSrc":"23033:4:7","nodeType":"YulIdentifier","src":"23033:4:7"}],"functionName":{"name":"add","nativeSrc":"23021:3:7","nodeType":"YulIdentifier","src":"23021:3:7"},"nativeSrc":"23021:17:7","nodeType":"YulFunctionCall","src":"23021:17:7"},{"name":"s","nativeSrc":"23040:1:7","nodeType":"YulIdentifier","src":"23040:1:7"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"23008:9:7","nodeType":"YulIdentifier","src":"23008:9:7"},"nativeSrc":"23008:34:7","nodeType":"YulFunctionCall","src":"23008:34:7"},"nativeSrc":"23008:34:7","nodeType":"YulExpressionStatement","src":"23008:34:7"},{"nativeSrc":"23060:59:7","nodeType":"YulAssignment","src":"23060:59:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23082:4:7","nodeType":"YulIdentifier","src":"23082:4:7"},{"name":"pU","nativeSrc":"23088:2:7","nodeType":"YulIdentifier","src":"23088:2:7"}],"functionName":{"name":"add","nativeSrc":"23078:3:7","nodeType":"YulIdentifier","src":"23078:3:7"},"nativeSrc":"23078:13:7","nodeType":"YulFunctionCall","src":"23078:13:7"}],"functionName":{"name":"mload","nativeSrc":"23072:5:7","nodeType":"YulIdentifier","src":"23072:5:7"},"nativeSrc":"23072:20:7","nodeType":"YulFunctionCall","src":"23072:20:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23104:4:7","nodeType":"YulIdentifier","src":"23104:4:7"},{"name":"pXi","nativeSrc":"23110:3:7","nodeType":"YulIdentifier","src":"23110:3:7"}],"functionName":{"name":"add","nativeSrc":"23100:3:7","nodeType":"YulIdentifier","src":"23100:3:7"},"nativeSrc":"23100:14:7","nodeType":"YulFunctionCall","src":"23100:14:7"}],"functionName":{"name":"mload","nativeSrc":"23094:5:7","nodeType":"YulIdentifier","src":"23094:5:7"},"nativeSrc":"23094:21:7","nodeType":"YulFunctionCall","src":"23094:21:7"},{"name":"q","nativeSrc":"23117:1:7","nodeType":"YulIdentifier","src":"23117:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"23065:6:7","nodeType":"YulIdentifier","src":"23065:6:7"},"nativeSrc":"23065:54:7","nodeType":"YulFunctionCall","src":"23065:54:7"},"variableNames":[{"name":"s","nativeSrc":"23060:1:7","nodeType":"YulIdentifier","src":"23060:1:7"}]},{"nativeSrc":"23136:21:7","nodeType":"YulAssignment","src":"23136:21:7","value":{"arguments":[{"name":"s","nativeSrc":"23148:1:7","nodeType":"YulIdentifier","src":"23148:1:7"},{"name":"w1","nativeSrc":"23151:2:7","nodeType":"YulIdentifier","src":"23151:2:7"},{"name":"q","nativeSrc":"23155:1:7","nodeType":"YulIdentifier","src":"23155:1:7"}],"functionName":{"name":"mulmod","nativeSrc":"23141:6:7","nodeType":"YulIdentifier","src":"23141:6:7"},"nativeSrc":"23141:16:7","nodeType":"YulFunctionCall","src":"23141:16:7"},"variableNames":[{"name":"s","nativeSrc":"23136:1:7","nodeType":"YulIdentifier","src":"23136:1:7"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"23184:1:7","nodeType":"YulIdentifier","src":"23184:1:7"},{"arguments":[{"name":"pProof","nativeSrc":"23191:6:7","nodeType":"YulIdentifier","src":"23191:6:7"},{"name":"pWxiw","nativeSrc":"23199:5:7","nodeType":"YulIdentifier","src":"23199:5:7"}],"functionName":{"name":"add","nativeSrc":"23187:3:7","nodeType":"YulIdentifier","src":"23187:3:7"},"nativeSrc":"23187:18:7","nodeType":"YulFunctionCall","src":"23187:18:7"},{"name":"s","nativeSrc":"23207:1:7","nodeType":"YulIdentifier","src":"23207:1:7"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"23174:9:7","nodeType":"YulIdentifier","src":"23174:9:7"},"nativeSrc":"23174:35:7","nodeType":"YulFunctionCall","src":"23174:35:7"},"nativeSrc":"23174:35:7","nodeType":"YulExpressionStatement","src":"23174:35:7"}]},"name":"calculateB1","nativeSrc":"18746:4478:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"pProof","nativeSrc":"18767:6:7","nodeType":"YulTypedName","src":"18767:6:7","type":""},{"name":"pMem","nativeSrc":"18775:4:7","nodeType":"YulTypedName","src":"18775:4:7","type":""}],"src":"18746:4478:7"},{"body":{"nativeSrc":"23286:879:7","nodeType":"YulBlock","src":"23286:879:7","statements":[{"nativeSrc":"23304:22:7","nodeType":"YulVariableDeclaration","src":"23304:22:7","value":{"arguments":[{"kind":"number","nativeSrc":"23321:4:7","nodeType":"YulLiteral","src":"23321:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"23315:5:7","nodeType":"YulIdentifier","src":"23315:5:7"},"nativeSrc":"23315:11:7","nodeType":"YulFunctionCall","src":"23315:11:7"},"variables":[{"name":"mIn","nativeSrc":"23308:3:7","nodeType":"YulTypedName","src":"23308:3:7","type":""}]},{"expression":{"arguments":[{"name":"mIn","nativeSrc":"23350:3:7","nodeType":"YulIdentifier","src":"23350:3:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23365:4:7","nodeType":"YulIdentifier","src":"23365:4:7"},{"name":"pA1","nativeSrc":"23371:3:7","nodeType":"YulIdentifier","src":"23371:3:7"}],"functionName":{"name":"add","nativeSrc":"23361:3:7","nodeType":"YulIdentifier","src":"23361:3:7"},"nativeSrc":"23361:14:7","nodeType":"YulFunctionCall","src":"23361:14:7"}],"functionName":{"name":"mload","nativeSrc":"23355:5:7","nodeType":"YulIdentifier","src":"23355:5:7"},"nativeSrc":"23355:21:7","nodeType":"YulFunctionCall","src":"23355:21:7"}],"functionName":{"name":"mstore","nativeSrc":"23343:6:7","nodeType":"YulIdentifier","src":"23343:6:7"},"nativeSrc":"23343:34:7","nodeType":"YulFunctionCall","src":"23343:34:7"},"nativeSrc":"23343:34:7","nodeType":"YulExpressionStatement","src":"23343:34:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23405:3:7","nodeType":"YulIdentifier","src":"23405:3:7"},{"kind":"number","nativeSrc":"23409:2:7","nodeType":"YulLiteral","src":"23409:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23401:3:7","nodeType":"YulIdentifier","src":"23401:3:7"},"nativeSrc":"23401:11:7","nodeType":"YulFunctionCall","src":"23401:11:7"},{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23428:4:7","nodeType":"YulIdentifier","src":"23428:4:7"},{"name":"pA1","nativeSrc":"23434:3:7","nodeType":"YulIdentifier","src":"23434:3:7"}],"functionName":{"name":"add","nativeSrc":"23424:3:7","nodeType":"YulIdentifier","src":"23424:3:7"},"nativeSrc":"23424:14:7","nodeType":"YulFunctionCall","src":"23424:14:7"},{"kind":"number","nativeSrc":"23440:2:7","nodeType":"YulLiteral","src":"23440:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23420:3:7","nodeType":"YulIdentifier","src":"23420:3:7"},"nativeSrc":"23420:23:7","nodeType":"YulFunctionCall","src":"23420:23:7"}],"functionName":{"name":"mload","nativeSrc":"23414:5:7","nodeType":"YulIdentifier","src":"23414:5:7"},"nativeSrc":"23414:30:7","nodeType":"YulFunctionCall","src":"23414:30:7"}],"functionName":{"name":"mstore","nativeSrc":"23394:6:7","nodeType":"YulIdentifier","src":"23394:6:7"},"nativeSrc":"23394:51:7","nodeType":"YulFunctionCall","src":"23394:51:7"},"nativeSrc":"23394:51:7","nodeType":"YulExpressionStatement","src":"23394:51:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23473:3:7","nodeType":"YulIdentifier","src":"23473:3:7"},{"kind":"number","nativeSrc":"23477:2:7","nodeType":"YulLiteral","src":"23477:2:7","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23469:3:7","nodeType":"YulIdentifier","src":"23469:3:7"},"nativeSrc":"23469:11:7","nodeType":"YulFunctionCall","src":"23469:11:7"},{"name":"X2x2","nativeSrc":"23482:4:7","nodeType":"YulIdentifier","src":"23482:4:7"}],"functionName":{"name":"mstore","nativeSrc":"23462:6:7","nodeType":"YulIdentifier","src":"23462:6:7"},"nativeSrc":"23462:25:7","nodeType":"YulFunctionCall","src":"23462:25:7"},"nativeSrc":"23462:25:7","nodeType":"YulExpressionStatement","src":"23462:25:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23515:3:7","nodeType":"YulIdentifier","src":"23515:3:7"},{"kind":"number","nativeSrc":"23519:2:7","nodeType":"YulLiteral","src":"23519:2:7","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23511:3:7","nodeType":"YulIdentifier","src":"23511:3:7"},"nativeSrc":"23511:11:7","nodeType":"YulFunctionCall","src":"23511:11:7"},{"name":"X2x1","nativeSrc":"23524:4:7","nodeType":"YulIdentifier","src":"23524:4:7"}],"functionName":{"name":"mstore","nativeSrc":"23504:6:7","nodeType":"YulIdentifier","src":"23504:6:7"},"nativeSrc":"23504:25:7","nodeType":"YulFunctionCall","src":"23504:25:7"},"nativeSrc":"23504:25:7","nodeType":"YulExpressionStatement","src":"23504:25:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23557:3:7","nodeType":"YulIdentifier","src":"23557:3:7"},{"kind":"number","nativeSrc":"23561:3:7","nodeType":"YulLiteral","src":"23561:3:7","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23553:3:7","nodeType":"YulIdentifier","src":"23553:3:7"},"nativeSrc":"23553:12:7","nodeType":"YulFunctionCall","src":"23553:12:7"},{"name":"X2y2","nativeSrc":"23567:4:7","nodeType":"YulIdentifier","src":"23567:4:7"}],"functionName":{"name":"mstore","nativeSrc":"23546:6:7","nodeType":"YulIdentifier","src":"23546:6:7"},"nativeSrc":"23546:26:7","nodeType":"YulFunctionCall","src":"23546:26:7"},"nativeSrc":"23546:26:7","nodeType":"YulExpressionStatement","src":"23546:26:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23600:3:7","nodeType":"YulIdentifier","src":"23600:3:7"},{"kind":"number","nativeSrc":"23604:3:7","nodeType":"YulLiteral","src":"23604:3:7","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"23596:3:7","nodeType":"YulIdentifier","src":"23596:3:7"},"nativeSrc":"23596:12:7","nodeType":"YulFunctionCall","src":"23596:12:7"},{"name":"X2y1","nativeSrc":"23610:4:7","nodeType":"YulIdentifier","src":"23610:4:7"}],"functionName":{"name":"mstore","nativeSrc":"23589:6:7","nodeType":"YulIdentifier","src":"23589:6:7"},"nativeSrc":"23589:26:7","nodeType":"YulFunctionCall","src":"23589:26:7"},"nativeSrc":"23589:26:7","nodeType":"YulExpressionStatement","src":"23589:26:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23643:3:7","nodeType":"YulIdentifier","src":"23643:3:7"},{"kind":"number","nativeSrc":"23647:3:7","nodeType":"YulLiteral","src":"23647:3:7","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"23639:3:7","nodeType":"YulIdentifier","src":"23639:3:7"},"nativeSrc":"23639:12:7","nodeType":"YulFunctionCall","src":"23639:12:7"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23663:4:7","nodeType":"YulIdentifier","src":"23663:4:7"},{"name":"pB1","nativeSrc":"23669:3:7","nodeType":"YulIdentifier","src":"23669:3:7"}],"functionName":{"name":"add","nativeSrc":"23659:3:7","nodeType":"YulIdentifier","src":"23659:3:7"},"nativeSrc":"23659:14:7","nodeType":"YulFunctionCall","src":"23659:14:7"}],"functionName":{"name":"mload","nativeSrc":"23653:5:7","nodeType":"YulIdentifier","src":"23653:5:7"},"nativeSrc":"23653:21:7","nodeType":"YulFunctionCall","src":"23653:21:7"}],"functionName":{"name":"mstore","nativeSrc":"23632:6:7","nodeType":"YulIdentifier","src":"23632:6:7"},"nativeSrc":"23632:43:7","nodeType":"YulFunctionCall","src":"23632:43:7"},"nativeSrc":"23632:43:7","nodeType":"YulExpressionStatement","src":"23632:43:7"},{"nativeSrc":"23692:39:7","nodeType":"YulVariableDeclaration","src":"23692:39:7","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23715:4:7","nodeType":"YulIdentifier","src":"23715:4:7"},{"name":"pB1","nativeSrc":"23721:3:7","nodeType":"YulIdentifier","src":"23721:3:7"}],"functionName":{"name":"add","nativeSrc":"23711:3:7","nodeType":"YulIdentifier","src":"23711:3:7"},"nativeSrc":"23711:14:7","nodeType":"YulFunctionCall","src":"23711:14:7"},{"kind":"number","nativeSrc":"23727:2:7","nodeType":"YulLiteral","src":"23727:2:7","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23707:3:7","nodeType":"YulIdentifier","src":"23707:3:7"},"nativeSrc":"23707:23:7","nodeType":"YulFunctionCall","src":"23707:23:7"}],"functionName":{"name":"mload","nativeSrc":"23701:5:7","nodeType":"YulIdentifier","src":"23701:5:7"},"nativeSrc":"23701:30:7","nodeType":"YulFunctionCall","src":"23701:30:7"},"variables":[{"name":"s","nativeSrc":"23696:1:7","nodeType":"YulTypedName","src":"23696:1:7","type":""}]},{"nativeSrc":"23748:24:7","nodeType":"YulAssignment","src":"23748:24:7","value":{"arguments":[{"arguments":[{"name":"qf","nativeSrc":"23761:2:7","nodeType":"YulIdentifier","src":"23761:2:7"},{"name":"s","nativeSrc":"23765:1:7","nodeType":"YulIdentifier","src":"23765:1:7"}],"functionName":{"name":"sub","nativeSrc":"23757:3:7","nodeType":"YulIdentifier","src":"23757:3:7"},"nativeSrc":"23757:10:7","nodeType":"YulFunctionCall","src":"23757:10:7"},{"name":"qf","nativeSrc":"23769:2:7","nodeType":"YulIdentifier","src":"23769:2:7"}],"functionName":{"name":"mod","nativeSrc":"23753:3:7","nodeType":"YulIdentifier","src":"23753:3:7"},"nativeSrc":"23753:19:7","nodeType":"YulFunctionCall","src":"23753:19:7"},"variableNames":[{"name":"s","nativeSrc":"23748:1:7","nodeType":"YulIdentifier","src":"23748:1:7"}]},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23800:3:7","nodeType":"YulIdentifier","src":"23800:3:7"},{"kind":"number","nativeSrc":"23804:3:7","nodeType":"YulLiteral","src":"23804:3:7","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"23796:3:7","nodeType":"YulIdentifier","src":"23796:3:7"},"nativeSrc":"23796:12:7","nodeType":"YulFunctionCall","src":"23796:12:7"},{"name":"s","nativeSrc":"23810:1:7","nodeType":"YulIdentifier","src":"23810:1:7"}],"functionName":{"name":"mstore","nativeSrc":"23789:6:7","nodeType":"YulIdentifier","src":"23789:6:7"},"nativeSrc":"23789:23:7","nodeType":"YulFunctionCall","src":"23789:23:7"},"nativeSrc":"23789:23:7","nodeType":"YulExpressionStatement","src":"23789:23:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23840:3:7","nodeType":"YulIdentifier","src":"23840:3:7"},{"kind":"number","nativeSrc":"23844:3:7","nodeType":"YulLiteral","src":"23844:3:7","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"23836:3:7","nodeType":"YulIdentifier","src":"23836:3:7"},"nativeSrc":"23836:12:7","nodeType":"YulFunctionCall","src":"23836:12:7"},{"name":"G2x2","nativeSrc":"23850:4:7","nodeType":"YulIdentifier","src":"23850:4:7"}],"functionName":{"name":"mstore","nativeSrc":"23829:6:7","nodeType":"YulIdentifier","src":"23829:6:7"},"nativeSrc":"23829:26:7","nodeType":"YulFunctionCall","src":"23829:26:7"},"nativeSrc":"23829:26:7","nodeType":"YulExpressionStatement","src":"23829:26:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23883:3:7","nodeType":"YulIdentifier","src":"23883:3:7"},{"kind":"number","nativeSrc":"23887:3:7","nodeType":"YulLiteral","src":"23887:3:7","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"23879:3:7","nodeType":"YulIdentifier","src":"23879:3:7"},"nativeSrc":"23879:12:7","nodeType":"YulFunctionCall","src":"23879:12:7"},{"name":"G2x1","nativeSrc":"23893:4:7","nodeType":"YulIdentifier","src":"23893:4:7"}],"functionName":{"name":"mstore","nativeSrc":"23872:6:7","nodeType":"YulIdentifier","src":"23872:6:7"},"nativeSrc":"23872:26:7","nodeType":"YulFunctionCall","src":"23872:26:7"},"nativeSrc":"23872:26:7","nodeType":"YulExpressionStatement","src":"23872:26:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23926:3:7","nodeType":"YulIdentifier","src":"23926:3:7"},{"kind":"number","nativeSrc":"23930:3:7","nodeType":"YulLiteral","src":"23930:3:7","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"23922:3:7","nodeType":"YulIdentifier","src":"23922:3:7"},"nativeSrc":"23922:12:7","nodeType":"YulFunctionCall","src":"23922:12:7"},{"name":"G2y2","nativeSrc":"23936:4:7","nodeType":"YulIdentifier","src":"23936:4:7"}],"functionName":{"name":"mstore","nativeSrc":"23915:6:7","nodeType":"YulIdentifier","src":"23915:6:7"},"nativeSrc":"23915:26:7","nodeType":"YulFunctionCall","src":"23915:26:7"},"nativeSrc":"23915:26:7","nodeType":"YulExpressionStatement","src":"23915:26:7"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23969:3:7","nodeType":"YulIdentifier","src":"23969:3:7"},{"kind":"number","nativeSrc":"23973:3:7","nodeType":"YulLiteral","src":"23973:3:7","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"23965:3:7","nodeType":"YulIdentifier","src":"23965:3:7"},"nativeSrc":"23965:12:7","nodeType":"YulFunctionCall","src":"23965:12:7"},{"name":"G2y1","nativeSrc":"23979:4:7","nodeType":"YulIdentifier","src":"23979:4:7"}],"functionName":{"name":"mstore","nativeSrc":"23958:6:7","nodeType":"YulIdentifier","src":"23958:6:7"},"nativeSrc":"23958:26:7","nodeType":"YulFunctionCall","src":"23958:26:7"},"nativeSrc":"23958:26:7","nodeType":"YulExpressionStatement","src":"23958:26:7"},{"nativeSrc":"24018:67:7","nodeType":"YulVariableDeclaration","src":"24018:67:7","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"24048:3:7","nodeType":"YulIdentifier","src":"24048:3:7"},"nativeSrc":"24048:5:7","nodeType":"YulFunctionCall","src":"24048:5:7"},{"kind":"number","nativeSrc":"24055:4:7","nodeType":"YulLiteral","src":"24055:4:7","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"24044:3:7","nodeType":"YulIdentifier","src":"24044:3:7"},"nativeSrc":"24044:16:7","nodeType":"YulFunctionCall","src":"24044:16:7"},{"kind":"number","nativeSrc":"24062:1:7","nodeType":"YulLiteral","src":"24062:1:7","type":"","value":"8"},{"name":"mIn","nativeSrc":"24065:3:7","nodeType":"YulIdentifier","src":"24065:3:7"},{"kind":"number","nativeSrc":"24070:3:7","nodeType":"YulLiteral","src":"24070:3:7","type":"","value":"384"},{"name":"mIn","nativeSrc":"24075:3:7","nodeType":"YulIdentifier","src":"24075:3:7"},{"kind":"number","nativeSrc":"24080:4:7","nodeType":"YulLiteral","src":"24080:4:7","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"24033:10:7","nodeType":"YulIdentifier","src":"24033:10:7"},"nativeSrc":"24033:52:7","nodeType":"YulFunctionCall","src":"24033:52:7"},"variables":[{"name":"success","nativeSrc":"24022:7:7","nodeType":"YulTypedName","src":"24022:7:7","type":""}]},{"nativeSrc":"24119:32:7","nodeType":"YulAssignment","src":"24119:32:7","value":{"arguments":[{"name":"success","nativeSrc":"24131:7:7","nodeType":"YulIdentifier","src":"24131:7:7"},{"arguments":[{"name":"mIn","nativeSrc":"24146:3:7","nodeType":"YulIdentifier","src":"24146:3:7"}],"functionName":{"name":"mload","nativeSrc":"24140:5:7","nodeType":"YulIdentifier","src":"24140:5:7"},"nativeSrc":"24140:10:7","nodeType":"YulFunctionCall","src":"24140:10:7"}],"functionName":{"name":"and","nativeSrc":"24127:3:7","nodeType":"YulIdentifier","src":"24127:3:7"},"nativeSrc":"24127:24:7","nodeType":"YulFunctionCall","src":"24127:24:7"},"variableNames":[{"name":"isOk","nativeSrc":"24119:4:7","nodeType":"YulIdentifier","src":"24119:4:7"}]}]},"name":"checkPairing","nativeSrc":"23250:915:7","nodeType":"YulFunctionDefinition","parameters":[{"name":"pMem","nativeSrc":"23272:4:7","nodeType":"YulTypedName","src":"23272:4:7","type":""}],"returnVariables":[{"name":"isOk","nativeSrc":"23281:4:7","nodeType":"YulTypedName","src":"23281:4:7","type":""}],"src":"23250:915:7"},{"nativeSrc":"24191:23:7","nodeType":"YulVariableDeclaration","src":"24191:23:7","value":{"arguments":[{"kind":"number","nativeSrc":"24209:4:7","nodeType":"YulLiteral","src":"24209:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"24203:5:7","nodeType":"YulIdentifier","src":"24203:5:7"},"nativeSrc":"24203:11:7","nodeType":"YulFunctionCall","src":"24203:11:7"},"variables":[{"name":"pMem","nativeSrc":"24195:4:7","nodeType":"YulTypedName","src":"24195:4:7","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24234:4:7","nodeType":"YulLiteral","src":"24234:4:7","type":"","value":"0x40"},{"arguments":[{"name":"pMem","nativeSrc":"24244:4:7","nodeType":"YulIdentifier","src":"24244:4:7"},{"name":"lastMem","nativeSrc":"24250:7:7","nodeType":"YulIdentifier","src":"24250:7:7"}],"functionName":{"name":"add","nativeSrc":"24240:3:7","nodeType":"YulIdentifier","src":"24240:3:7"},"nativeSrc":"24240:18:7","nodeType":"YulFunctionCall","src":"24240:18:7"}],"functionName":{"name":"mstore","nativeSrc":"24227:6:7","nodeType":"YulIdentifier","src":"24227:6:7"},"nativeSrc":"24227:32:7","nodeType":"YulFunctionCall","src":"24227:32:7"},"nativeSrc":"24227:32:7","nodeType":"YulExpressionStatement","src":"24227:32:7"},{"expression":{"arguments":[{"name":"proof","nativeSrc":"24296:5:7","nodeType":"YulIdentifier","src":"24296:5:7"}],"functionName":{"name":"checkInput","nativeSrc":"24285:10:7","nodeType":"YulIdentifier","src":"24285:10:7"},"nativeSrc":"24285:17:7","nodeType":"YulFunctionCall","src":"24285:17:7"},"nativeSrc":"24285:17:7","nodeType":"YulExpressionStatement","src":"24285:17:7"},{"expression":{"arguments":[{"name":"proof","nativeSrc":"24335:5:7","nodeType":"YulIdentifier","src":"24335:5:7"},{"name":"pMem","nativeSrc":"24342:4:7","nodeType":"YulIdentifier","src":"24342:4:7"},{"name":"pubSignals","nativeSrc":"24348:10:7","nodeType":"YulIdentifier","src":"24348:10:7"}],"functionName":{"name":"calculateChallanges","nativeSrc":"24315:19:7","nodeType":"YulIdentifier","src":"24315:19:7"},"nativeSrc":"24315:44:7","nodeType":"YulFunctionCall","src":"24315:44:7"},"nativeSrc":"24315:44:7","nodeType":"YulExpressionStatement","src":"24315:44:7"},{"expression":{"arguments":[{"name":"pMem","nativeSrc":"24390:4:7","nodeType":"YulIdentifier","src":"24390:4:7"}],"functionName":{"name":"calculateLagrange","nativeSrc":"24372:17:7","nodeType":"YulIdentifier","src":"24372:17:7"},"nativeSrc":"24372:23:7","nodeType":"YulFunctionCall","src":"24372:23:7"},"nativeSrc":"24372:23:7","nodeType":"YulExpressionStatement","src":"24372:23:7"},{"expression":{"arguments":[{"name":"pMem","nativeSrc":"24420:4:7","nodeType":"YulIdentifier","src":"24420:4:7"},{"name":"pubSignals","nativeSrc":"24426:10:7","nodeType":"YulIdentifier","src":"24426:10:7"}],"functionName":{"name":"calculatePl","nativeSrc":"24408:11:7","nodeType":"YulIdentifier","src":"24408:11:7"},"nativeSrc":"24408:29:7","nodeType":"YulFunctionCall","src":"24408:29:7"},"nativeSrc":"24408:29:7","nodeType":"YulExpressionStatement","src":"24408:29:7"},{"expression":{"arguments":[{"name":"proof","nativeSrc":"24461:5:7","nodeType":"YulIdentifier","src":"24461:5:7"},{"name":"pMem","nativeSrc":"24468:4:7","nodeType":"YulIdentifier","src":"24468:4:7"}],"functionName":{"name":"calculateT","nativeSrc":"24450:10:7","nodeType":"YulIdentifier","src":"24450:10:7"},"nativeSrc":"24450:23:7","nodeType":"YulFunctionCall","src":"24450:23:7"},"nativeSrc":"24450:23:7","nodeType":"YulExpressionStatement","src":"24450:23:7"},{"expression":{"arguments":[{"name":"proof","nativeSrc":"24498:5:7","nodeType":"YulIdentifier","src":"24498:5:7"},{"name":"pMem","nativeSrc":"24505:4:7","nodeType":"YulIdentifier","src":"24505:4:7"}],"functionName":{"name":"calculateA1","nativeSrc":"24486:11:7","nodeType":"YulIdentifier","src":"24486:11:7"},"nativeSrc":"24486:24:7","nodeType":"YulFunctionCall","src":"24486:24:7"},"nativeSrc":"24486:24:7","nodeType":"YulExpressionStatement","src":"24486:24:7"},{"expression":{"arguments":[{"name":"proof","nativeSrc":"24535:5:7","nodeType":"YulIdentifier","src":"24535:5:7"},{"name":"pMem","nativeSrc":"24542:4:7","nodeType":"YulIdentifier","src":"24542:4:7"}],"functionName":{"name":"calculateB1","nativeSrc":"24523:11:7","nodeType":"YulIdentifier","src":"24523:11:7"},"nativeSrc":"24523:24:7","nodeType":"YulFunctionCall","src":"24523:24:7"},"nativeSrc":"24523:24:7","nodeType":"YulExpressionStatement","src":"24523:24:7"},{"nativeSrc":"24560:33:7","nodeType":"YulVariableDeclaration","src":"24560:33:7","value":{"arguments":[{"name":"pMem","nativeSrc":"24588:4:7","nodeType":"YulIdentifier","src":"24588:4:7"}],"functionName":{"name":"checkPairing","nativeSrc":"24575:12:7","nodeType":"YulIdentifier","src":"24575:12:7"},"nativeSrc":"24575:18:7","nodeType":"YulFunctionCall","src":"24575:18:7"},"variables":[{"name":"isValid","nativeSrc":"24564:7:7","nodeType":"YulTypedName","src":"24564:7:7","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24626:4:7","nodeType":"YulLiteral","src":"24626:4:7","type":"","value":"0x40"},{"arguments":[{"name":"pMem","nativeSrc":"24636:4:7","nodeType":"YulIdentifier","src":"24636:4:7"},{"name":"lastMem","nativeSrc":"24642:7:7","nodeType":"YulIdentifier","src":"24642:7:7"}],"functionName":{"name":"sub","nativeSrc":"24632:3:7","nodeType":"YulIdentifier","src":"24632:3:7"},"nativeSrc":"24632:18:7","nodeType":"YulFunctionCall","src":"24632:18:7"}],"functionName":{"name":"mstore","nativeSrc":"24619:6:7","nodeType":"YulIdentifier","src":"24619:6:7"},"nativeSrc":"24619:32:7","nodeType":"YulFunctionCall","src":"24619:32:7"},"nativeSrc":"24619:32:7","nodeType":"YulExpressionStatement","src":"24619:32:7"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24671:1:7","nodeType":"YulLiteral","src":"24671:1:7","type":"","value":"0"},{"name":"isValid","nativeSrc":"24674:7:7","nodeType":"YulIdentifier","src":"24674:7:7"}],"functionName":{"name":"mstore","nativeSrc":"24664:6:7","nodeType":"YulIdentifier","src":"24664:6:7"},"nativeSrc":"24664:18:7","nodeType":"YulFunctionCall","src":"24664:18:7"},"nativeSrc":"24664:18:7","nodeType":"YulExpressionStatement","src":"24664:18:7"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24702:1:7","nodeType":"YulLiteral","src":"24702:1:7","type":"","value":"0"},{"kind":"number","nativeSrc":"24704:4:7","nodeType":"YulLiteral","src":"24704:4:7","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"24695:6:7","nodeType":"YulIdentifier","src":"24695:6:7"},"nativeSrc":"24695:14:7","nodeType":"YulFunctionCall","src":"24695:14:7"},"nativeSrc":"24695:14:7","nodeType":"YulExpressionStatement","src":"24695:14:7"}]},"evmVersion":"paris","externalReferences":[{"declaration":905,"isOffset":false,"isSlot":false,"src":"22868:3:7","valueSize":1},{"declaration":908,"isOffset":false,"isSlot":false,"src":"22873:3:7","valueSize":1},{"declaration":911,"isOffset":false,"isSlot":false,"src":"23893:4:7","valueSize":1},{"declaration":914,"isOffset":false,"isSlot":false,"src":"23850:4:7","valueSize":1},{"declaration":917,"isOffset":false,"isSlot":false,"src":"23979:4:7","valueSize":1},{"declaration":920,"isOffset":false,"isSlot":false,"src":"23936:4:7","valueSize":1},{"declaration":854,"isOffset":false,"isSlot":false,"src":"19512:3:7","valueSize":1},{"declaration":857,"isOffset":false,"isSlot":false,"src":"19517:3:7","valueSize":1},{"declaration":836,"isOffset":false,"isSlot":false,"src":"19030:3:7","valueSize":1},{"declaration":839,"isOffset":false,"isSlot":false,"src":"19035:3:7","valueSize":1},{"declaration":830,"isOffset":false,"isSlot":false,"src":"19154:3:7","valueSize":1},{"declaration":833,"isOffset":false,"isSlot":false,"src":"19159:3:7","valueSize":1},{"declaration":848,"isOffset":false,"isSlot":false,"src":"19426:3:7","valueSize":1},{"declaration":851,"isOffset":false,"isSlot":false,"src":"19431:3:7","valueSize":1},{"declaration":842,"isOffset":false,"isSlot":false,"src":"19282:3:7","valueSize":1},{"declaration":845,"isOffset":false,"isSlot":false,"src":"19287:3:7","valueSize":1},{"declaration":860,"isOffset":false,"isSlot":false,"src":"21927:3:7","valueSize":1},{"declaration":863,"isOffset":false,"isSlot":false,"src":"21932:3:7","valueSize":1},{"declaration":866,"isOffset":false,"isSlot":false,"src":"21990:3:7","valueSize":1},{"declaration":869,"isOffset":false,"isSlot":false,"src":"21995:3:7","valueSize":1},{"declaration":872,"isOffset":false,"isSlot":false,"src":"21383:3:7","valueSize":1},{"declaration":875,"isOffset":false,"isSlot":false,"src":"21388:3:7","valueSize":1},{"declaration":884,"isOffset":false,"isSlot":false,"src":"23524:4:7","valueSize":1},{"declaration":887,"isOffset":false,"isSlot":false,"src":"23482:4:7","valueSize":1},{"declaration":890,"isOffset":false,"isSlot":false,"src":"23610:4:7","valueSize":1},{"declaration":893,"isOffset":false,"isSlot":false,"src":"23567:4:7","valueSize":1},{"declaration":878,"isOffset":false,"isSlot":false,"src":"19702:2:7","valueSize":1},{"declaration":881,"isOffset":false,"isSlot":false,"src":"19930:2:7","valueSize":1},{"declaration":1031,"isOffset":false,"isSlot":false,"src":"24250:7:7","valueSize":1},{"declaration":1031,"isOffset":false,"isSlot":false,"src":"24642:7:7","valueSize":1},{"declaration":1031,"isOffset":false,"isSlot":false,"src":"9540:7:7","valueSize":1},{"declaration":821,"isOffset":false,"isSlot":false,"src":"11888:1:7","valueSize":1},{"declaration":923,"isOffset":false,"isSlot":false,"src":"21731:2:7","valueSize":1},{"declaration":923,"isOffset":false,"isSlot":false,"src":"9095:2:7","valueSize":1},{"declaration":923,"isOffset":false,"isSlot":false,"src":"9166:2:7","valueSize":1},{"declaration":923,"isOffset":false,"isSlot":false,"src":"9241:2:7","valueSize":1},{"declaration":923,"isOffset":false,"isSlot":false,"src":"9316:2:7","valueSize":1},{"declaration":923,"isOffset":false,"isSlot":false,"src":"9391:2:7","valueSize":1},{"declaration":923,"isOffset":false,"isSlot":false,"src":"9467:2:7","valueSize":1},{"declaration":1016,"isOffset":false,"isSlot":false,"src":"18573:3:7","valueSize":1},{"declaration":1016,"isOffset":false,"isSlot":false,"src":"23371:3:7","valueSize":1},{"declaration":1016,"isOffset":false,"isSlot":false,"src":"23434:3:7","valueSize":1},{"declaration":971,"isOffset":false,"isSlot":false,"src":"15150:6:7","valueSize":1},{"declaration":971,"isOffset":false,"isSlot":false,"src":"15295:6:7","valueSize":1},{"declaration":971,"isOffset":false,"isSlot":false,"src":"15438:6:7","valueSize":1},{"declaration":971,"isOffset":false,"isSlot":false,"src":"20176:6:7","valueSize":1},{"declaration":971,"isOffset":false,"isSlot":false,"src":"20319:6:7","valueSize":1},{"declaration":971,"isOffset":false,"isSlot":false,"src":"20381:6:7","valueSize":1},{"declaration":971,"isOffset":false,"isSlot":false,"src":"21121:6:7","valueSize":1},{"declaration":971,"isOffset":false,"isSlot":false,"src":"9723:6:7","valueSize":1},{"declaration":926,"isOffset":false,"isSlot":false,"src":"21800:2:7","valueSize":1},{"declaration":1019,"isOffset":false,"isSlot":false,"src":"18863:3:7","valueSize":1},{"declaration":1019,"isOffset":false,"isSlot":false,"src":"23669:3:7","valueSize":1},{"declaration":1019,"isOffset":false,"isSlot":false,"src":"23721:3:7","valueSize":1},{"declaration":974,"isOffset":false,"isSlot":false,"src":"13938:5:7","valueSize":1},{"declaration":974,"isOffset":false,"isSlot":false,"src":"14405:5:7","valueSize":1},{"declaration":974,"isOffset":false,"isSlot":false,"src":"20657:5:7","valueSize":1},{"declaration":974,"isOffset":false,"isSlot":false,"src":"20867:5:7","valueSize":1},{"declaration":974,"isOffset":false,"isSlot":false,"src":"21238:5:7","valueSize":1},{"declaration":974,"isOffset":false,"isSlot":false,"src":"9594:5:7","valueSize":1},{"declaration":974,"isOffset":false,"isSlot":false,"src":"9672:5:7","valueSize":1},{"declaration":986,"isOffset":false,"isSlot":false,"src":"19599:7:7","valueSize":1},{"declaration":986,"isOffset":false,"isSlot":false,"src":"19722:7:7","valueSize":1},{"declaration":986,"isOffset":false,"isSlot":false,"src":"19950:7:7","valueSize":1},{"declaration":986,"isOffset":false,"isSlot":false,"src":"9928:7:7","valueSize":1},{"declaration":929,"isOffset":false,"isSlot":false,"src":"21869:2:7","valueSize":1},{"declaration":950,"isOffset":false,"isSlot":false,"src":"11067:7:7","valueSize":1},{"declaration":950,"isOffset":false,"isSlot":false,"src":"14080:7:7","valueSize":1},{"declaration":950,"isOffset":false,"isSlot":false,"src":"18963:7:7","valueSize":1},{"declaration":950,"isOffset":false,"isSlot":false,"src":"19572:7:7","valueSize":1},{"declaration":950,"isOffset":false,"isSlot":false,"src":"20748:7:7","valueSize":1},{"declaration":950,"isOffset":false,"isSlot":false,"src":"22271:7:7","valueSize":1},{"declaration":950,"isOffset":false,"isSlot":false,"src":"8340:7:7","valueSize":1},{"declaration":953,"isOffset":false,"isSlot":false,"src":"14547:7:7","valueSize":1},{"declaration":953,"isOffset":false,"isSlot":false,"src":"19094:7:7","valueSize":1},{"declaration":953,"isOffset":false,"isSlot":false,"src":"19215:7:7","valueSize":1},{"declaration":953,"isOffset":false,"isSlot":false,"src":"19787:7:7","valueSize":1},{"declaration":953,"isOffset":false,"isSlot":false,"src":"20960:7:7","valueSize":1},{"declaration":953,"isOffset":false,"isSlot":false,"src":"22368:7:7","valueSize":1},{"declaration":953,"isOffset":false,"isSlot":false,"src":"8396:7:7","valueSize":1},{"declaration":956,"isOffset":false,"isSlot":false,"src":"14897:7:7","valueSize":1},{"declaration":956,"isOffset":false,"isSlot":false,"src":"19359:7:7","valueSize":1},{"declaration":956,"isOffset":false,"isSlot":false,"src":"20015:7:7","valueSize":1},{"declaration":956,"isOffset":false,"isSlot":false,"src":"22465:7:7","valueSize":1},{"declaration":956,"isOffset":false,"isSlot":false,"src":"8452:7:7","valueSize":1},{"declaration":1028,"isOffset":false,"isSlot":false,"src":"11824:8:7","valueSize":1},{"declaration":1028,"isOffset":false,"isSlot":false,"src":"12593:8:7","valueSize":1},{"declaration":1028,"isOffset":false,"isSlot":false,"src":"12674:8:7","valueSize":1},{"declaration":1028,"isOffset":false,"isSlot":false,"src":"13170:8:7","valueSize":1},{"declaration":1028,"isOffset":false,"isSlot":false,"src":"15246:8:7","valueSize":1},{"declaration":1028,"isOffset":false,"isSlot":false,"src":"20291:8:7","valueSize":1},{"declaration":968,"isOffset":false,"isSlot":false,"src":"13709:7:7","valueSize":1},{"declaration":968,"isOffset":false,"isSlot":false,"src":"22174:7:7","valueSize":1},{"declaration":968,"isOffset":false,"isSlot":false,"src":"8679:7:7","valueSize":1},{"declaration":959,"isOffset":false,"isSlot":false,"src":"13890:8:7","valueSize":1},{"declaration":959,"isOffset":false,"isSlot":false,"src":"20684:8:7","valueSize":1},{"declaration":959,"isOffset":false,"isSlot":false,"src":"22562:8:7","valueSize":1},{"declaration":959,"isOffset":false,"isSlot":false,"src":"8508:8:7","valueSize":1},{"declaration":962,"isOffset":false,"isSlot":false,"src":"14357:8:7","valueSize":1},{"declaration":962,"isOffset":false,"isSlot":false,"src":"20894:8:7","valueSize":1},{"declaration":962,"isOffset":false,"isSlot":false,"src":"22660:8:7","valueSize":1},{"declaration":962,"isOffset":false,"isSlot":false,"src":"8565:8:7","valueSize":1},{"declaration":1013,"isOffset":false,"isSlot":false,"src":"15706:7:7","valueSize":1},{"declaration":1013,"isOffset":false,"isSlot":false,"src":"22108:7:7","valueSize":1},{"declaration":965,"isOffset":false,"isSlot":false,"src":"15086:8:7","valueSize":1},{"declaration":965,"isOffset":false,"isSlot":false,"src":"21299:8:7","valueSize":1},{"declaration":965,"isOffset":false,"isSlot":false,"src":"22758:8:7","valueSize":1},{"declaration":965,"isOffset":false,"isSlot":false,"src":"8622:8:7","valueSize":1},{"declaration":977,"isOffset":false,"isSlot":false,"src":"14238:6:7","valueSize":1},{"declaration":977,"isOffset":false,"isSlot":false,"src":"14705:6:7","valueSize":1},{"declaration":977,"isOffset":false,"isSlot":false,"src":"14944:6:7","valueSize":1},{"declaration":977,"isOffset":false,"isSlot":false,"src":"19660:6:7","valueSize":1},{"declaration":977,"isOffset":false,"isSlot":false,"src":"19850:6:7","valueSize":1},{"declaration":977,"isOffset":false,"isSlot":false,"src":"20078:6:7","valueSize":1},{"declaration":977,"isOffset":false,"isSlot":false,"src":"20809:6:7","valueSize":1},{"declaration":977,"isOffset":false,"isSlot":false,"src":"21023:6:7","valueSize":1},{"declaration":977,"isOffset":false,"isSlot":false,"src":"9639:6:7","valueSize":1},{"declaration":1010,"isOffset":false,"isSlot":false,"src":"13483:3:7","valueSize":1},{"declaration":1010,"isOffset":false,"isSlot":false,"src":"13757:3:7","valueSize":1},{"declaration":935,"isOffset":false,"isSlot":false,"src":"21468:3:7","valueSize":1},{"declaration":935,"isOffset":false,"isSlot":false,"src":"9836:3:7","valueSize":1},{"declaration":938,"isOffset":false,"isSlot":false,"src":"21560:3:7","valueSize":1},{"declaration":941,"isOffset":false,"isSlot":false,"src":"21664:3:7","valueSize":1},{"declaration":1007,"isOffset":false,"isSlot":false,"src":"11587:2:7","valueSize":1},{"declaration":1007,"isOffset":false,"isSlot":false,"src":"18688:2:7","valueSize":1},{"declaration":1007,"isOffset":false,"isSlot":false,"src":"20538:2:7","valueSize":1},{"declaration":1007,"isOffset":false,"isSlot":false,"src":"22786:2:7","valueSize":1},{"declaration":1007,"isOffset":false,"isSlot":false,"src":"23088:2:7","valueSize":1},{"declaration":989,"isOffset":false,"isSlot":false,"src":"11120:3:7","valueSize":1},{"declaration":989,"isOffset":false,"isSlot":false,"src":"18990:3:7","valueSize":1},{"declaration":989,"isOffset":false,"isSlot":false,"src":"19242:3:7","valueSize":1},{"declaration":989,"isOffset":false,"isSlot":false,"src":"19386:3:7","valueSize":1},{"declaration":989,"isOffset":false,"isSlot":false,"src":"19476:3:7","valueSize":1},{"declaration":989,"isOffset":false,"isSlot":false,"src":"20236:3:7","valueSize":1},{"declaration":989,"isOffset":false,"isSlot":false,"src":"20443:3:7","valueSize":1},{"declaration":989,"isOffset":false,"isSlot":false,"src":"21181:3:7","valueSize":1},{"declaration":989,"isOffset":false,"isSlot":false,"src":"22201:3:7","valueSize":1},{"declaration":992,"isOffset":false,"isSlot":false,"src":"11203:3:7","valueSize":1},{"declaration":992,"isOffset":false,"isSlot":false,"src":"21752:3:7","valueSize":1},{"declaration":992,"isOffset":false,"isSlot":false,"src":"22298:3:7","valueSize":1},{"declaration":995,"isOffset":false,"isSlot":false,"src":"11284:3:7","valueSize":1},{"declaration":995,"isOffset":false,"isSlot":false,"src":"21821:3:7","valueSize":1},{"declaration":995,"isOffset":false,"isSlot":false,"src":"22395:3:7","valueSize":1},{"declaration":998,"isOffset":false,"isSlot":false,"src":"11365:3:7","valueSize":1},{"declaration":998,"isOffset":false,"isSlot":false,"src":"21890:3:7","valueSize":1},{"declaration":998,"isOffset":false,"isSlot":false,"src":"22492:3:7","valueSize":1},{"declaration":1001,"isOffset":false,"isSlot":false,"src":"11446:3:7","valueSize":1},{"declaration":1001,"isOffset":false,"isSlot":false,"src":"21953:3:7","valueSize":1},{"declaration":1001,"isOffset":false,"isSlot":false,"src":"22590:3:7","valueSize":1},{"declaration":1004,"isOffset":false,"isSlot":false,"src":"11527:3:7","valueSize":1},{"declaration":1004,"isOffset":false,"isSlot":false,"src":"22016:3:7","valueSize":1},{"declaration":1004,"isOffset":false,"isSlot":false,"src":"22688:3:7","valueSize":1},{"declaration":944,"isOffset":false,"isSlot":false,"src":"11618:4:7","valueSize":1},{"declaration":944,"isOffset":false,"isSlot":false,"src":"18616:4:7","valueSize":1},{"declaration":944,"isOffset":false,"isSlot":false,"src":"23033:4:7","valueSize":1},{"declaration":947,"isOffset":false,"isSlot":false,"src":"18664:5:7","valueSize":1},{"declaration":947,"isOffset":false,"isSlot":false,"src":"23199:5:7","valueSize":1},{"declaration":980,"isOffset":false,"isSlot":false,"src":"12043:3:7","valueSize":1},{"declaration":980,"isOffset":false,"isSlot":false,"src":"22986:3:7","valueSize":1},{"declaration":980,"isOffset":false,"isSlot":false,"src":"23110:3:7","valueSize":1},{"declaration":980,"isOffset":false,"isSlot":false,"src":"9885:3:7","valueSize":1},{"declaration":983,"isOffset":false,"isSlot":false,"src":"10801:4:7","valueSize":1},{"declaration":983,"isOffset":false,"isSlot":false,"src":"21512:4:7","valueSize":1},{"declaration":932,"isOffset":false,"isSlot":false,"src":"20588:2:7","valueSize":1},{"declaration":932,"isOffset":false,"isSlot":false,"src":"9758:2:7","valueSize":1},{"declaration":1022,"isOffset":false,"isSlot":false,"src":"10890:3:7","valueSize":1},{"declaration":1022,"isOffset":false,"isSlot":false,"src":"12476:3:7","valueSize":1},{"declaration":1025,"isOffset":false,"isSlot":false,"src":"10933:6:7","valueSize":1},{"declaration":1025,"isOffset":false,"isSlot":false,"src":"12404:6:7","valueSize":1},{"declaration":1025,"isOffset":false,"isSlot":false,"src":"15642:6:7","valueSize":1},{"declaration":1033,"isOffset":false,"isSlot":false,"src":"24296:5:7","valueSize":1},{"declaration":1033,"isOffset":false,"isSlot":false,"src":"24335:5:7","valueSize":1},{"declaration":1033,"isOffset":false,"isSlot":false,"src":"24461:5:7","valueSize":1},{"declaration":1033,"isOffset":false,"isSlot":false,"src":"24498:5:7","valueSize":1},{"declaration":1033,"isOffset":false,"isSlot":false,"src":"24535:5:7","valueSize":1},{"declaration":1036,"isOffset":false,"isSlot":false,"src":"24348:10:7","valueSize":1},{"declaration":1036,"isOffset":false,"isSlot":false,"src":"24426:10:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10005:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10058:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10111:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10164:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10217:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10270:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10323:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10376:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10429:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10482:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10535:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10588:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10641:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10694:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10747:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10849:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"10853:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"11083:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"11166:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"11247:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"11328:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"11409:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"11490:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"11631:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"12157:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"12218:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"12272:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"12739:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"13268:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"13351:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"13396:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"13785:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"13967:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"14111:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"14268:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"14434:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"14578:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"14735:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"14809:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"14974:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"15032:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"15098:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"15160:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"15326:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"15469:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"15527:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"15583:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"15592:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"15652:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"18997:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"19105:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"19249:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"19393:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"19610:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"19670:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"19733:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"19798:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"19860:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"19898:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"19961:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"20026:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"20088:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"20126:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"20186:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"20243:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"20329:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"20391:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"20450:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"20488:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"20544:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"20696:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"20759:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"20819:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"20906:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"20971:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"21033:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"21071:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"21131:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"21188:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"21247:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"21311:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"21343:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"21350:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"21620:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22208:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22212:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22305:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22309:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22402:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22406:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22499:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22503:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22597:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22601:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22695:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22699:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22792:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22796:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22828:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"22835:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"23117:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"23155:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"7063:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"7120:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"7690:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"7744:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"7995:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"9556:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"9685:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"9768:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"9848:1:7","valueSize":1},{"declaration":896,"isOffset":false,"isSlot":false,"src":"9951:1:7","valueSize":1},{"declaration":899,"isOffset":false,"isSlot":false,"src":"23761:2:7","valueSize":1},{"declaration":899,"isOffset":false,"isSlot":false,"src":"23769:2:7","valueSize":1},{"declaration":902,"isOffset":false,"isSlot":false,"src":"23151:2:7","valueSize":1}],"id":1041,"nodeType":"InlineAssembly","src":"5287:19432:7"}]},"functionSelector":"1e8e1e13","id":1043,"implemented":true,"kind":"function","modifiers":[],"name":"verifyProof","nameLocation":"5192:11:7","nodeType":"FunctionDefinition","parameters":{"id":1037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1033,"mutability":"mutable","name":"proof","nameLocation":"5217:5:7","nodeType":"VariableDeclaration","scope":1043,"src":"5204:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1032,"name":"bytes","nodeType":"ElementaryTypeName","src":"5204:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1036,"mutability":"mutable","name":"pubSignals","nameLocation":"5238:10:7","nodeType":"VariableDeclaration","scope":1043,"src":"5224:24:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1034,"name":"uint","nodeType":"ElementaryTypeName","src":"5224:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1035,"nodeType":"ArrayTypeName","src":"5224:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5203:46:7"},"returnParameters":{"id":1040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1039,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1043,"src":"5271:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1038,"name":"bool","nodeType":"ElementaryTypeName","src":"5271:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5270:6:7"},"scope":1044,"src":"5183:19551:7","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":1045,"src":"832:23904:7","usedErrors":[],"usedEvents":[]}],"src":"799:23938:7"},"id":7},"contracts/workstep3Verifier.sol":{"ast":{"absolutePath":"contracts/workstep3Verifier.sol","exportedSymbols":{"PlonkVerifier":[1272]},"id":1273,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":1046,"literals":["solidity",">=","0.7",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"799:31:8"},{"abstract":false,"baseContracts":[],"canonicalName":"PlonkVerifier","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":1272,"linearizedBaseContracts":[1272],"name":"PlonkVerifier","nameLocation":"841:13:8","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":1049,"mutability":"constant","name":"n","nameLocation":"882:1:8","nodeType":"VariableDeclaration","scope":1272,"src":"866:27:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1047,"name":"uint32","nodeType":"ElementaryTypeName","src":"866:6:8","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"value":{"hexValue":"3332373638","id":1048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"888:5:8","typeDescriptions":{"typeIdentifier":"t_rational_32768_by_1","typeString":"int_const 32768"},"value":"32768"},"visibility":"internal"},{"constant":true,"id":1052,"mutability":"constant","name":"nPublic","nameLocation":"915:7:8","nodeType":"VariableDeclaration","scope":1272,"src":"899:28:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1050,"name":"uint16","nodeType":"ElementaryTypeName","src":"899:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":1051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"926:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":1055,"mutability":"constant","name":"nLagrange","nameLocation":"949:9:8","nodeType":"VariableDeclaration","scope":1272,"src":"933:29:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1053,"name":"uint16","nodeType":"ElementaryTypeName","src":"933:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":1054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"961:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":1058,"mutability":"constant","name":"Qmx","nameLocation":"990:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"973:99:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1056,"name":"uint256","nodeType":"ElementaryTypeName","src":"973:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"39303331303134323031333334373836353938343337343734383139333333333733383937393834383337343732393632363330333234383531333335333631383434303538353435373830","id":1057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"996:76:8","typeDescriptions":{"typeIdentifier":"t_rational_9031014201334786598437474819333373897984837472962630324851335361844058545780_by_1","typeString":"int_const 9031...(68 digits omitted)...5780"},"value":"9031014201334786598437474819333373897984837472962630324851335361844058545780"},"visibility":"internal"},{"constant":true,"id":1061,"mutability":"constant","name":"Qmy","nameLocation":"1095:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"1078:100:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1059,"name":"uint256","nodeType":"ElementaryTypeName","src":"1078:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3136363037323130373836303836393231393831333637323833383135303439373738373430363030393638373730363230323233303938313437353338303937313338343330353337353935","id":1060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1101:77:8","typeDescriptions":{"typeIdentifier":"t_rational_16607210786086921981367283815049778740600968770620223098147538097138430537595_by_1","typeString":"int_const 1660...(69 digits omitted)...7595"},"value":"16607210786086921981367283815049778740600968770620223098147538097138430537595"},"visibility":"internal"},{"constant":true,"id":1064,"mutability":"constant","name":"Qlx","nameLocation":"1201:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"1184:99:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1062,"name":"uint256","nodeType":"ElementaryTypeName","src":"1184:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"36383038323738323830343835333036373539373435353438383931353336313931313632333432323336303939363937363333363530393936333435373430393134323234323230333035","id":1063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1207:76:8","typeDescriptions":{"typeIdentifier":"t_rational_6808278280485306759745548891536191162342236099697633650996345740914224220305_by_1","typeString":"int_const 6808...(68 digits omitted)...0305"},"value":"6808278280485306759745548891536191162342236099697633650996345740914224220305"},"visibility":"internal"},{"constant":true,"id":1067,"mutability":"constant","name":"Qly","nameLocation":"1306:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"1289:99:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1065,"name":"uint256","nodeType":"ElementaryTypeName","src":"1289:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"33323730313730313935383030363437393536343339373330373937333339323230303430363536393137353833353938353938313333363039323630363435363138393836313233353838","id":1066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1312:76:8","typeDescriptions":{"typeIdentifier":"t_rational_3270170195800647956439730797339220040656917583598598133609260645618986123588_by_1","typeString":"int_const 3270...(68 digits omitted)...3588"},"value":"3270170195800647956439730797339220040656917583598598133609260645618986123588"},"visibility":"internal"},{"constant":true,"id":1070,"mutability":"constant","name":"Qrx","nameLocation":"1411:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"1394:100:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1068,"name":"uint256","nodeType":"ElementaryTypeName","src":"1394:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3139383637363539393632393430333739343135383333373231393536313936383835383132353932383331323938353234333831393830353535373331313133323230303232303435373631","id":1069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1417:77:8","typeDescriptions":{"typeIdentifier":"t_rational_19867659962940379415833721956196885812592831298524381980555731113220022045761_by_1","typeString":"int_const 1986...(69 digits omitted)...5761"},"value":"19867659962940379415833721956196885812592831298524381980555731113220022045761"},"visibility":"internal"},{"constant":true,"id":1073,"mutability":"constant","name":"Qry","nameLocation":"1517:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"1500:99:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1071,"name":"uint256","nodeType":"ElementaryTypeName","src":"1500:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"35383339343832303132303331373635333332383836353337383438373730333731343733383638323338383039303931313437333233393034363030363533303934393437383735333435","id":1072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1523:76:8","typeDescriptions":{"typeIdentifier":"t_rational_5839482012031765332886537848770371473868238809091147323904600653094947875345_by_1","typeString":"int_const 5839...(68 digits omitted)...5345"},"value":"5839482012031765332886537848770371473868238809091147323904600653094947875345"},"visibility":"internal"},{"constant":true,"id":1076,"mutability":"constant","name":"Qox","nameLocation":"1622:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"1605:100:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1074,"name":"uint256","nodeType":"ElementaryTypeName","src":"1605:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3231363539323738383131393531373833353536343833313235363239323732383433313834373634383835343738323133373439393933353938343434383632323738303435383834373535","id":1075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1628:77:8","typeDescriptions":{"typeIdentifier":"t_rational_21659278811951783556483125629272843184764885478213749993598444862278045884755_by_1","typeString":"int_const 2165...(69 digits omitted)...4755"},"value":"21659278811951783556483125629272843184764885478213749993598444862278045884755"},"visibility":"internal"},{"constant":true,"id":1079,"mutability":"constant","name":"Qoy","nameLocation":"1728:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"1711:100:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1077,"name":"uint256","nodeType":"ElementaryTypeName","src":"1711:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3136363630353937343735323035363139353435323831343638313236303036323339393837353339323637333438323030333430353932373933393532313438343837353034383734333039","id":1078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1734:77:8","typeDescriptions":{"typeIdentifier":"t_rational_16660597475205619545281468126006239987539267348200340592793952148487504874309_by_1","typeString":"int_const 1666...(69 digits omitted)...4309"},"value":"16660597475205619545281468126006239987539267348200340592793952148487504874309"},"visibility":"internal"},{"constant":true,"id":1082,"mutability":"constant","name":"Qcx","nameLocation":"1834:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"1817:99:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1080,"name":"uint256","nodeType":"ElementaryTypeName","src":"1817:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"35333035353130333439383338303837333338373833353437383735353636323934343731373731343934303330393936343337363035363632323532303236333736303337303832393538","id":1081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1840:76:8","typeDescriptions":{"typeIdentifier":"t_rational_5305510349838087338783547875566294471771494030996437605662252026376037082958_by_1","typeString":"int_const 5305...(68 digits omitted)...2958"},"value":"5305510349838087338783547875566294471771494030996437605662252026376037082958"},"visibility":"internal"},{"constant":true,"id":1085,"mutability":"constant","name":"Qcy","nameLocation":"1939:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"1922:100:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1083,"name":"uint256","nodeType":"ElementaryTypeName","src":"1922:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3139333737333334303937373732333432333733393233383736353934323131353632323737373035303931333838383939343937333133313332363735353939303034313434393735333133","id":1084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1945:77:8","typeDescriptions":{"typeIdentifier":"t_rational_19377334097772342373923876594211562277705091388899497313132675599004144975313_by_1","typeString":"int_const 1937...(69 digits omitted)...5313"},"value":"19377334097772342373923876594211562277705091388899497313132675599004144975313"},"visibility":"internal"},{"constant":true,"id":1088,"mutability":"constant","name":"S1x","nameLocation":"2045:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"2028:100:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1086,"name":"uint256","nodeType":"ElementaryTypeName","src":"2028:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3133353131333734353838323437313637393937343134343832373731343630333139373737353030313330313437303635323930373337383134363534353132373431373437363136333436","id":1087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2051:77:8","typeDescriptions":{"typeIdentifier":"t_rational_13511374588247167997414482771460319777500130147065290737814654512741747616346_by_1","typeString":"int_const 1351...(69 digits omitted)...6346"},"value":"13511374588247167997414482771460319777500130147065290737814654512741747616346"},"visibility":"internal"},{"constant":true,"id":1091,"mutability":"constant","name":"S1y","nameLocation":"2151:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"2134:99:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1089,"name":"uint256","nodeType":"ElementaryTypeName","src":"2134:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"39343130343432373233323238313535383030363039303233383532303831363330333030343430323835303134343639333539353439323531353036313136333532333433383430373635","id":1090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2157:76:8","typeDescriptions":{"typeIdentifier":"t_rational_9410442723228155800609023852081630300440285014469359549251506116352343840765_by_1","typeString":"int_const 9410...(68 digits omitted)...0765"},"value":"9410442723228155800609023852081630300440285014469359549251506116352343840765"},"visibility":"internal"},{"constant":true,"id":1094,"mutability":"constant","name":"S2x","nameLocation":"2256:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"2239:99:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1092,"name":"uint256","nodeType":"ElementaryTypeName","src":"2239:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"36323334333433363432303332353239363736333034343735383430313339383536363039353432313833363138383933323832373934383438373232323635383339343034313231363038","id":1093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2262:76:8","typeDescriptions":{"typeIdentifier":"t_rational_6234343642032529676304475840139856609542183618893282794848722265839404121608_by_1","typeString":"int_const 6234...(68 digits omitted)...1608"},"value":"6234343642032529676304475840139856609542183618893282794848722265839404121608"},"visibility":"internal"},{"constant":true,"id":1097,"mutability":"constant","name":"S2y","nameLocation":"2361:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"2344:98:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1095,"name":"uint256","nodeType":"ElementaryTypeName","src":"2344:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313938303831323536363739333937343730313137303738313835333738373836363832313334313637393737373637343831393336313036373330393333363538323136343030323035","id":1096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2367:75:8","typeDescriptions":{"typeIdentifier":"t_rational_198081256679397470117078185378786682134167977767481936106730933658216400205_by_1","typeString":"int_const 1980...(67 digits omitted)...0205"},"value":"198081256679397470117078185378786682134167977767481936106730933658216400205"},"visibility":"internal"},{"constant":true,"id":1100,"mutability":"constant","name":"S3x","nameLocation":"2465:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"2448:100:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1098,"name":"uint256","nodeType":"ElementaryTypeName","src":"2448:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3135363037333634343837373134393133333036313030343436323130313035363139333538373333363736303738303336353632333032313531353835303538363433373135323332323535","id":1099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2471:77:8","typeDescriptions":{"typeIdentifier":"t_rational_15607364487714913306100446210105619358733676078036562302151585058643715232255_by_1","typeString":"int_const 1560...(69 digits omitted)...2255"},"value":"15607364487714913306100446210105619358733676078036562302151585058643715232255"},"visibility":"internal"},{"constant":true,"id":1103,"mutability":"constant","name":"S3y","nameLocation":"2571:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"2554:100:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1101,"name":"uint256","nodeType":"ElementaryTypeName","src":"2554:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3136343138323033383935393332313031393731363631353130333137373137373539303135353638313331393832323837323233393331313336353034383131313930323030393730343232","id":1102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2577:77:8","typeDescriptions":{"typeIdentifier":"t_rational_16418203895932101971661510317717759015568131982287223931136504811190200970422_by_1","typeString":"int_const 1641...(69 digits omitted)...0422"},"value":"16418203895932101971661510317717759015568131982287223931136504811190200970422"},"visibility":"internal"},{"constant":true,"id":1106,"mutability":"constant","name":"k1","nameLocation":"2677:2:8","nodeType":"VariableDeclaration","scope":1272,"src":"2660:23:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1104,"name":"uint256","nodeType":"ElementaryTypeName","src":"2660:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":1105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2682:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":true,"id":1109,"mutability":"constant","name":"k2","nameLocation":"2706:2:8","nodeType":"VariableDeclaration","scope":1272,"src":"2689:23:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1107,"name":"uint256","nodeType":"ElementaryTypeName","src":"2689:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"33","id":1108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2711:1:8","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"internal"},{"constant":true,"id":1112,"mutability":"constant","name":"X2x1","nameLocation":"2735:4:8","nodeType":"VariableDeclaration","scope":1272,"src":"2718:100:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1110,"name":"uint256","nodeType":"ElementaryTypeName","src":"2718:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37353530313731313431343839363432333233333435343936363833373337323434323737303833323536343234303034373037373135393938343833343039353430303430353837343636","id":1111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2742:76:8","typeDescriptions":{"typeIdentifier":"t_rational_7550171141489642323345496683737244277083256424004707715998483409540040587466_by_1","typeString":"int_const 7550...(68 digits omitted)...7466"},"value":"7550171141489642323345496683737244277083256424004707715998483409540040587466"},"visibility":"internal"},{"constant":true,"id":1115,"mutability":"constant","name":"X2x2","nameLocation":"2841:4:8","nodeType":"VariableDeclaration","scope":1272,"src":"2824:101:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1113,"name":"uint256","nodeType":"ElementaryTypeName","src":"2824:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3133363734333237323831343536363030383935363037383139383438363832313539353032393536363038343739373335393735373632323138343131353939303333393831353539393638","id":1114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2848:77:8","typeDescriptions":{"typeIdentifier":"t_rational_13674327281456600895607819848682159502956608479735975762218411599033981559968_by_1","typeString":"int_const 1367...(69 digits omitted)...9968"},"value":"13674327281456600895607819848682159502956608479735975762218411599033981559968"},"visibility":"internal"},{"constant":true,"id":1118,"mutability":"constant","name":"X2y1","nameLocation":"2948:4:8","nodeType":"VariableDeclaration","scope":1272,"src":"2931:101:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1116,"name":"uint256","nodeType":"ElementaryTypeName","src":"2931:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3136333239343237363535393135393434393038343834393734303630383938373631363833393734363436333138303734363339313938303033313837313534353235323534313736353230","id":1117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2955:77:8","typeDescriptions":{"typeIdentifier":"t_rational_16329427655915944908484974060898761683974646318074639198003187154525254176520_by_1","typeString":"int_const 1632...(69 digits omitted)...6520"},"value":"16329427655915944908484974060898761683974646318074639198003187154525254176520"},"visibility":"internal"},{"constant":true,"id":1121,"mutability":"constant","name":"X2y2","nameLocation":"3055:4:8","nodeType":"VariableDeclaration","scope":1272,"src":"3038:101:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1119,"name":"uint256","nodeType":"ElementaryTypeName","src":"3038:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3139363034363331363533303430323033393131353233343934323133363738313838303035393837363232313934353435353732353239363038383335313833393336353639383230393930","id":1120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3062:77:8","typeDescriptions":{"typeIdentifier":"t_rational_19604631653040203911523494213678188005987622194545572529608835183936569820990_by_1","typeString":"int_const 1960...(69 digits omitted)...0990"},"value":"19604631653040203911523494213678188005987622194545572529608835183936569820990"},"visibility":"internal"},{"constant":true,"id":1124,"mutability":"constant","name":"q","nameLocation":"3167:1:8","nodeType":"VariableDeclaration","scope":1272,"src":"3150:98:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1122,"name":"uint256","nodeType":"ElementaryTypeName","src":"3150:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137","id":1123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3171:77:8","typeDescriptions":{"typeIdentifier":"t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1","typeString":"int_const 2188...(69 digits omitted)...5617"},"value":"21888242871839275222246405745257275088548364400416034343698204186575808495617"},"visibility":"internal"},{"constant":true,"id":1127,"mutability":"constant","name":"qf","nameLocation":"3271:2:8","nodeType":"VariableDeclaration","scope":1272,"src":"3254:99:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1125,"name":"uint256","nodeType":"ElementaryTypeName","src":"3254:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833","id":1126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3276:77:8","typeDescriptions":{"typeIdentifier":"t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1","typeString":"int_const 2188...(69 digits omitted)...8583"},"value":"21888242871839275222246405745257275088696311157297823662689037894645226208583"},"visibility":"internal"},{"constant":true,"id":1130,"mutability":"constant","name":"w1","nameLocation":"3376:2:8","nodeType":"VariableDeclaration","scope":1272,"src":"3359:99:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1128,"name":"uint256","nodeType":"ElementaryTypeName","src":"3359:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3230343032393331373438383433353338393835313531303031323634353330303439383734383731353732393333363934363334383336353637303730363933393636313333373833383033","id":1129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3381:77:8","typeDescriptions":{"typeIdentifier":"t_rational_20402931748843538985151001264530049874871572933694634836567070693966133783803_by_1","typeString":"int_const 2040...(69 digits omitted)...3803"},"value":"20402931748843538985151001264530049874871572933694634836567070693966133783803"},"visibility":"internal"},{"constant":true,"id":1133,"mutability":"constant","name":"G1x","nameLocation":"3490:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"3473:24:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1131,"name":"uint256","nodeType":"ElementaryTypeName","src":"3473:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":1132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3496:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":1136,"mutability":"constant","name":"G1y","nameLocation":"3520:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"3503:24:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1134,"name":"uint256","nodeType":"ElementaryTypeName","src":"3503:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":1135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3526:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":true,"id":1139,"mutability":"constant","name":"G2x1","nameLocation":"3550:4:8","nodeType":"VariableDeclaration","scope":1272,"src":"3533:101:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1137,"name":"uint256","nodeType":"ElementaryTypeName","src":"3533:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831","id":1138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3557:77:8","typeDescriptions":{"typeIdentifier":"t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1","typeString":"int_const 1085...(69 digits omitted)...2781"},"value":"10857046999023057135944570762232829481370756359578518086990519993285655852781"},"visibility":"internal"},{"constant":true,"id":1142,"mutability":"constant","name":"G2x2","nameLocation":"3657:4:8","nodeType":"VariableDeclaration","scope":1272,"src":"3640:101:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1140,"name":"uint256","nodeType":"ElementaryTypeName","src":"3640:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334","id":1141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3664:77:8","typeDescriptions":{"typeIdentifier":"t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1","typeString":"int_const 1155...(69 digits omitted)...5634"},"value":"11559732032986387107991004021392285783925812861821192530917403151452391805634"},"visibility":"internal"},{"constant":true,"id":1145,"mutability":"constant","name":"G2y1","nameLocation":"3764:4:8","nodeType":"VariableDeclaration","scope":1272,"src":"3747:100:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1143,"name":"uint256","nodeType":"ElementaryTypeName","src":"3747:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330","id":1144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3771:76:8","typeDescriptions":{"typeIdentifier":"t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1","typeString":"int_const 8495...(68 digits omitted)...1930"},"value":"8495653923123431417604973247489272438418190587263600148770280649306958101930"},"visibility":"internal"},{"constant":true,"id":1148,"mutability":"constant","name":"G2y2","nameLocation":"3870:4:8","nodeType":"VariableDeclaration","scope":1272,"src":"3853:100:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1146,"name":"uint256","nodeType":"ElementaryTypeName","src":"3853:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331","id":1147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3877:76:8","typeDescriptions":{"typeIdentifier":"t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1","typeString":"int_const 4082...(68 digits omitted)...3531"},"value":"4082367875863433681332203403145435568316851327593401208105741076214120093531"},"visibility":"internal"},{"constant":true,"id":1151,"mutability":"constant","name":"pA","nameLocation":"3975:2:8","nodeType":"VariableDeclaration","scope":1272,"src":"3959:23:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1149,"name":"uint16","nodeType":"ElementaryTypeName","src":"3959:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3332","id":1150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3980:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"visibility":"internal"},{"constant":true,"id":1154,"mutability":"constant","name":"pB","nameLocation":"4004:2:8","nodeType":"VariableDeclaration","scope":1272,"src":"3988:23:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1152,"name":"uint16","nodeType":"ElementaryTypeName","src":"3988:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3936","id":1153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4009:2:8","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"visibility":"internal"},{"constant":true,"id":1157,"mutability":"constant","name":"pC","nameLocation":"4033:2:8","nodeType":"VariableDeclaration","scope":1272,"src":"4017:24:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1155,"name":"uint16","nodeType":"ElementaryTypeName","src":"4017:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313630","id":1156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4038:3:8","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},"visibility":"internal"},{"constant":true,"id":1160,"mutability":"constant","name":"pZ","nameLocation":"4063:2:8","nodeType":"VariableDeclaration","scope":1272,"src":"4047:24:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1158,"name":"uint16","nodeType":"ElementaryTypeName","src":"4047:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"323234","id":1159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4068:3:8","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},"visibility":"internal"},{"constant":true,"id":1163,"mutability":"constant","name":"pT1","nameLocation":"4093:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"4077:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1161,"name":"uint16","nodeType":"ElementaryTypeName","src":"4077:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"323838","id":1162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4099:3:8","typeDescriptions":{"typeIdentifier":"t_rational_288_by_1","typeString":"int_const 288"},"value":"288"},"visibility":"internal"},{"constant":true,"id":1166,"mutability":"constant","name":"pT2","nameLocation":"4124:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"4108:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1164,"name":"uint16","nodeType":"ElementaryTypeName","src":"4108:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"333532","id":1165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4130:3:8","typeDescriptions":{"typeIdentifier":"t_rational_352_by_1","typeString":"int_const 352"},"value":"352"},"visibility":"internal"},{"constant":true,"id":1169,"mutability":"constant","name":"pT3","nameLocation":"4155:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"4139:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1167,"name":"uint16","nodeType":"ElementaryTypeName","src":"4139:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"343136","id":1168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4161:3:8","typeDescriptions":{"typeIdentifier":"t_rational_416_by_1","typeString":"int_const 416"},"value":"416"},"visibility":"internal"},{"constant":true,"id":1172,"mutability":"constant","name":"pWxi","nameLocation":"4186:4:8","nodeType":"VariableDeclaration","scope":1272,"src":"4170:26:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1170,"name":"uint16","nodeType":"ElementaryTypeName","src":"4170:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"343830","id":1171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4193:3:8","typeDescriptions":{"typeIdentifier":"t_rational_480_by_1","typeString":"int_const 480"},"value":"480"},"visibility":"internal"},{"constant":true,"id":1175,"mutability":"constant","name":"pWxiw","nameLocation":"4218:5:8","nodeType":"VariableDeclaration","scope":1272,"src":"4202:27:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1173,"name":"uint16","nodeType":"ElementaryTypeName","src":"4202:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"353434","id":1174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4226:3:8","typeDescriptions":{"typeIdentifier":"t_rational_544_by_1","typeString":"int_const 544"},"value":"544"},"visibility":"internal"},{"constant":true,"id":1178,"mutability":"constant","name":"pEval_a","nameLocation":"4251:7:8","nodeType":"VariableDeclaration","scope":1272,"src":"4235:29:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1176,"name":"uint16","nodeType":"ElementaryTypeName","src":"4235:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363038","id":1177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4261:3:8","typeDescriptions":{"typeIdentifier":"t_rational_608_by_1","typeString":"int_const 608"},"value":"608"},"visibility":"internal"},{"constant":true,"id":1181,"mutability":"constant","name":"pEval_b","nameLocation":"4286:7:8","nodeType":"VariableDeclaration","scope":1272,"src":"4270:29:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1179,"name":"uint16","nodeType":"ElementaryTypeName","src":"4270:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363430","id":1180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4296:3:8","typeDescriptions":{"typeIdentifier":"t_rational_640_by_1","typeString":"int_const 640"},"value":"640"},"visibility":"internal"},{"constant":true,"id":1184,"mutability":"constant","name":"pEval_c","nameLocation":"4321:7:8","nodeType":"VariableDeclaration","scope":1272,"src":"4305:29:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1182,"name":"uint16","nodeType":"ElementaryTypeName","src":"4305:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363732","id":1183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4331:3:8","typeDescriptions":{"typeIdentifier":"t_rational_672_by_1","typeString":"int_const 672"},"value":"672"},"visibility":"internal"},{"constant":true,"id":1187,"mutability":"constant","name":"pEval_s1","nameLocation":"4356:8:8","nodeType":"VariableDeclaration","scope":1272,"src":"4340:30:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1185,"name":"uint16","nodeType":"ElementaryTypeName","src":"4340:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"373034","id":1186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4367:3:8","typeDescriptions":{"typeIdentifier":"t_rational_704_by_1","typeString":"int_const 704"},"value":"704"},"visibility":"internal"},{"constant":true,"id":1190,"mutability":"constant","name":"pEval_s2","nameLocation":"4392:8:8","nodeType":"VariableDeclaration","scope":1272,"src":"4376:30:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1188,"name":"uint16","nodeType":"ElementaryTypeName","src":"4376:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"373336","id":1189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4403:3:8","typeDescriptions":{"typeIdentifier":"t_rational_736_by_1","typeString":"int_const 736"},"value":"736"},"visibility":"internal"},{"constant":true,"id":1193,"mutability":"constant","name":"pEval_zw","nameLocation":"4428:8:8","nodeType":"VariableDeclaration","scope":1272,"src":"4412:30:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1191,"name":"uint16","nodeType":"ElementaryTypeName","src":"4412:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"373638","id":1192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4439:3:8","typeDescriptions":{"typeIdentifier":"t_rational_768_by_1","typeString":"int_const 768"},"value":"768"},"visibility":"internal"},{"constant":true,"id":1196,"mutability":"constant","name":"pEval_r","nameLocation":"4464:7:8","nodeType":"VariableDeclaration","scope":1272,"src":"4448:29:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1194,"name":"uint16","nodeType":"ElementaryTypeName","src":"4448:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"383030","id":1195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4474:3:8","typeDescriptions":{"typeIdentifier":"t_rational_800_by_1","typeString":"int_const 800"},"value":"800"},"visibility":"internal"},{"constant":true,"id":1199,"mutability":"constant","name":"pAlpha","nameLocation":"4504:6:8","nodeType":"VariableDeclaration","scope":1272,"src":"4488:26:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1197,"name":"uint16","nodeType":"ElementaryTypeName","src":"4488:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"30","id":1198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4513:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"constant":true,"id":1202,"mutability":"constant","name":"pBeta","nameLocation":"4536:5:8","nodeType":"VariableDeclaration","scope":1272,"src":"4520:26:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1200,"name":"uint16","nodeType":"ElementaryTypeName","src":"4520:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3332","id":1201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4544:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"visibility":"internal"},{"constant":true,"id":1205,"mutability":"constant","name":"pGamma","nameLocation":"4568:6:8","nodeType":"VariableDeclaration","scope":1272,"src":"4552:27:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1203,"name":"uint16","nodeType":"ElementaryTypeName","src":"4552:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3634","id":1204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4577:2:8","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"visibility":"internal"},{"constant":true,"id":1208,"mutability":"constant","name":"pXi","nameLocation":"4601:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"4585:24:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1206,"name":"uint16","nodeType":"ElementaryTypeName","src":"4585:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3936","id":1207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4607:2:8","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"visibility":"internal"},{"constant":true,"id":1211,"mutability":"constant","name":"pXin","nameLocation":"4631:4:8","nodeType":"VariableDeclaration","scope":1272,"src":"4615:26:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1209,"name":"uint16","nodeType":"ElementaryTypeName","src":"4615:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313238","id":1210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4638:3:8","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"visibility":"internal"},{"constant":true,"id":1214,"mutability":"constant","name":"pBetaXi","nameLocation":"4663:7:8","nodeType":"VariableDeclaration","scope":1272,"src":"4647:29:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1212,"name":"uint16","nodeType":"ElementaryTypeName","src":"4647:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313630","id":1213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4673:3:8","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},"visibility":"internal"},{"constant":true,"id":1217,"mutability":"constant","name":"pV1","nameLocation":"4698:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"4682:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1215,"name":"uint16","nodeType":"ElementaryTypeName","src":"4682:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313932","id":1216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4704:3:8","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"visibility":"internal"},{"constant":true,"id":1220,"mutability":"constant","name":"pV2","nameLocation":"4729:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"4713:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1218,"name":"uint16","nodeType":"ElementaryTypeName","src":"4713:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"323234","id":1219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4735:3:8","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},"visibility":"internal"},{"constant":true,"id":1223,"mutability":"constant","name":"pV3","nameLocation":"4760:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"4744:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1221,"name":"uint16","nodeType":"ElementaryTypeName","src":"4744:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"323536","id":1222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4766:3:8","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"visibility":"internal"},{"constant":true,"id":1226,"mutability":"constant","name":"pV4","nameLocation":"4791:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"4775:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1224,"name":"uint16","nodeType":"ElementaryTypeName","src":"4775:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"323838","id":1225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4797:3:8","typeDescriptions":{"typeIdentifier":"t_rational_288_by_1","typeString":"int_const 288"},"value":"288"},"visibility":"internal"},{"constant":true,"id":1229,"mutability":"constant","name":"pV5","nameLocation":"4822:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"4806:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1227,"name":"uint16","nodeType":"ElementaryTypeName","src":"4806:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"333230","id":1228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4828:3:8","typeDescriptions":{"typeIdentifier":"t_rational_320_by_1","typeString":"int_const 320"},"value":"320"},"visibility":"internal"},{"constant":true,"id":1232,"mutability":"constant","name":"pV6","nameLocation":"4853:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"4837:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1230,"name":"uint16","nodeType":"ElementaryTypeName","src":"4837:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"333532","id":1231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4859:3:8","typeDescriptions":{"typeIdentifier":"t_rational_352_by_1","typeString":"int_const 352"},"value":"352"},"visibility":"internal"},{"constant":true,"id":1235,"mutability":"constant","name":"pU","nameLocation":"4884:2:8","nodeType":"VariableDeclaration","scope":1272,"src":"4868:24:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1233,"name":"uint16","nodeType":"ElementaryTypeName","src":"4868:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"333834","id":1234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4889:3:8","typeDescriptions":{"typeIdentifier":"t_rational_384_by_1","typeString":"int_const 384"},"value":"384"},"visibility":"internal"},{"constant":true,"id":1238,"mutability":"constant","name":"pPl","nameLocation":"4914:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"4898:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1236,"name":"uint16","nodeType":"ElementaryTypeName","src":"4898:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"343136","id":1237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4920:3:8","typeDescriptions":{"typeIdentifier":"t_rational_416_by_1","typeString":"int_const 416"},"value":"416"},"visibility":"internal"},{"constant":true,"id":1241,"mutability":"constant","name":"pEval_t","nameLocation":"4945:7:8","nodeType":"VariableDeclaration","scope":1272,"src":"4929:29:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1239,"name":"uint16","nodeType":"ElementaryTypeName","src":"4929:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"343438","id":1240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4955:3:8","typeDescriptions":{"typeIdentifier":"t_rational_448_by_1","typeString":"int_const 448"},"value":"448"},"visibility":"internal"},{"constant":true,"id":1244,"mutability":"constant","name":"pA1","nameLocation":"4980:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"4964:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1242,"name":"uint16","nodeType":"ElementaryTypeName","src":"4964:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"343830","id":1243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4986:3:8","typeDescriptions":{"typeIdentifier":"t_rational_480_by_1","typeString":"int_const 480"},"value":"480"},"visibility":"internal"},{"constant":true,"id":1247,"mutability":"constant","name":"pB1","nameLocation":"5011:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"4995:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1245,"name":"uint16","nodeType":"ElementaryTypeName","src":"4995:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"353434","id":1246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5017:3:8","typeDescriptions":{"typeIdentifier":"t_rational_544_by_1","typeString":"int_const 544"},"value":"544"},"visibility":"internal"},{"constant":true,"id":1250,"mutability":"constant","name":"pZh","nameLocation":"5042:3:8","nodeType":"VariableDeclaration","scope":1272,"src":"5026:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1248,"name":"uint16","nodeType":"ElementaryTypeName","src":"5026:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363038","id":1249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5048:3:8","typeDescriptions":{"typeIdentifier":"t_rational_608_by_1","typeString":"int_const 608"},"value":"608"},"visibility":"internal"},{"constant":true,"id":1253,"mutability":"constant","name":"pZhInv","nameLocation":"5073:6:8","nodeType":"VariableDeclaration","scope":1272,"src":"5057:28:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1251,"name":"uint16","nodeType":"ElementaryTypeName","src":"5057:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363430","id":1252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5082:3:8","typeDescriptions":{"typeIdentifier":"t_rational_640_by_1","typeString":"int_const 640"},"value":"640"},"visibility":"internal"},{"constant":true,"id":1256,"mutability":"constant","name":"pEval_l1","nameLocation":"5112:8:8","nodeType":"VariableDeclaration","scope":1272,"src":"5096:30:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1254,"name":"uint16","nodeType":"ElementaryTypeName","src":"5096:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"363732","id":1255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5123:3:8","typeDescriptions":{"typeIdentifier":"t_rational_672_by_1","typeString":"int_const 672"},"value":"672"},"visibility":"internal"},{"constant":true,"id":1259,"mutability":"constant","name":"lastMem","nameLocation":"5163:7:8","nodeType":"VariableDeclaration","scope":1272,"src":"5147:29:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1257,"name":"uint16","nodeType":"ElementaryTypeName","src":"5147:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"373034","id":1258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5173:3:8","typeDescriptions":{"typeIdentifier":"t_rational_704_by_1","typeString":"int_const 704"},"value":"704"},"visibility":"internal"},{"body":{"id":1270,"nodeType":"Block","src":"5277:19457:8","statements":[{"AST":{"nativeSrc":"5296:19423:8","nodeType":"YulBlock","src":"5296:19423:8","statements":[{"body":{"nativeSrc":"5459:694:8","nodeType":"YulBlock","src":"5459:694:8","statements":[{"nativeSrc":"5477:10:8","nodeType":"YulVariableDeclaration","src":"5477:10:8","value":{"kind":"number","nativeSrc":"5486:1:8","nodeType":"YulLiteral","src":"5486:1:8","type":"","value":"0"},"variables":[{"name":"t","nativeSrc":"5481:1:8","nodeType":"YulTypedName","src":"5481:1:8","type":""}]},{"nativeSrc":"5509:13:8","nodeType":"YulVariableDeclaration","src":"5509:13:8","value":{"kind":"number","nativeSrc":"5521:1:8","nodeType":"YulLiteral","src":"5521:1:8","type":"","value":"1"},"variables":[{"name":"newt","nativeSrc":"5513:4:8","nodeType":"YulTypedName","src":"5513:4:8","type":""}]},{"nativeSrc":"5539:10:8","nodeType":"YulVariableDeclaration","src":"5539:10:8","value":{"name":"q","nativeSrc":"5548:1:8","nodeType":"YulIdentifier","src":"5548:1:8"},"variables":[{"name":"r","nativeSrc":"5543:1:8","nodeType":"YulTypedName","src":"5543:1:8","type":""}]},{"nativeSrc":"5571:13:8","nodeType":"YulVariableDeclaration","src":"5571:13:8","value":{"name":"a","nativeSrc":"5583:1:8","nodeType":"YulIdentifier","src":"5583:1:8"},"variables":[{"name":"newr","nativeSrc":"5575:4:8","nodeType":"YulTypedName","src":"5575:4:8","type":""}]},{"nativeSrc":"5601:12:8","nodeType":"YulVariableDeclaration","src":"5601:12:8","variables":[{"name":"quotient","nativeSrc":"5605:8:8","nodeType":"YulTypedName","src":"5605:8:8","type":""}]},{"nativeSrc":"5630:7:8","nodeType":"YulVariableDeclaration","src":"5630:7:8","variables":[{"name":"aux","nativeSrc":"5634:3:8","nodeType":"YulTypedName","src":"5634:3:8","type":""}]},{"body":{"nativeSrc":"5688:317:8","nodeType":"YulBlock","src":"5688:317:8","statements":[{"nativeSrc":"5710:25:8","nodeType":"YulAssignment","src":"5710:25:8","value":{"arguments":[{"name":"r","nativeSrc":"5727:1:8","nodeType":"YulIdentifier","src":"5727:1:8"},{"name":"newr","nativeSrc":"5730:4:8","nodeType":"YulIdentifier","src":"5730:4:8"}],"functionName":{"name":"sdiv","nativeSrc":"5722:4:8","nodeType":"YulIdentifier","src":"5722:4:8"},"nativeSrc":"5722:13:8","nodeType":"YulFunctionCall","src":"5722:13:8"},"variableNames":[{"name":"quotient","nativeSrc":"5710:8:8","nodeType":"YulIdentifier","src":"5710:8:8"}]},{"nativeSrc":"5756:34:8","nodeType":"YulAssignment","src":"5756:34:8","value":{"arguments":[{"name":"t","nativeSrc":"5767:1:8","nodeType":"YulIdentifier","src":"5767:1:8"},{"arguments":[{"name":"quotient","nativeSrc":"5774:8:8","nodeType":"YulIdentifier","src":"5774:8:8"},{"name":"newt","nativeSrc":"5784:4:8","nodeType":"YulIdentifier","src":"5784:4:8"}],"functionName":{"name":"mul","nativeSrc":"5770:3:8","nodeType":"YulIdentifier","src":"5770:3:8"},"nativeSrc":"5770:19:8","nodeType":"YulFunctionCall","src":"5770:19:8"}],"functionName":{"name":"sub","nativeSrc":"5763:3:8","nodeType":"YulIdentifier","src":"5763:3:8"},"nativeSrc":"5763:27:8","nodeType":"YulFunctionCall","src":"5763:27:8"},"variableNames":[{"name":"aux","nativeSrc":"5756:3:8","nodeType":"YulIdentifier","src":"5756:3:8"}]},{"nativeSrc":"5811:8:8","nodeType":"YulAssignment","src":"5811:8:8","value":{"name":"newt","nativeSrc":"5815:4:8","nodeType":"YulIdentifier","src":"5815:4:8"},"variableNames":[{"name":"t","nativeSrc":"5811:1:8","nodeType":"YulIdentifier","src":"5811:1:8"}]},{"nativeSrc":"5840:10:8","nodeType":"YulAssignment","src":"5840:10:8","value":{"name":"aux","nativeSrc":"5847:3:8","nodeType":"YulIdentifier","src":"5847:3:8"},"variableNames":[{"name":"newt","nativeSrc":"5840:4:8","nodeType":"YulIdentifier","src":"5840:4:8"}]},{"nativeSrc":"5892:33:8","nodeType":"YulAssignment","src":"5892:33:8","value":{"arguments":[{"name":"r","nativeSrc":"5903:1:8","nodeType":"YulIdentifier","src":"5903:1:8"},{"arguments":[{"name":"quotient","nativeSrc":"5909:8:8","nodeType":"YulIdentifier","src":"5909:8:8"},{"name":"newr","nativeSrc":"5919:4:8","nodeType":"YulIdentifier","src":"5919:4:8"}],"functionName":{"name":"mul","nativeSrc":"5905:3:8","nodeType":"YulIdentifier","src":"5905:3:8"},"nativeSrc":"5905:19:8","nodeType":"YulFunctionCall","src":"5905:19:8"}],"functionName":{"name":"sub","nativeSrc":"5899:3:8","nodeType":"YulIdentifier","src":"5899:3:8"},"nativeSrc":"5899:26:8","nodeType":"YulFunctionCall","src":"5899:26:8"},"variableNames":[{"name":"aux","nativeSrc":"5892:3:8","nodeType":"YulIdentifier","src":"5892:3:8"}]},{"nativeSrc":"5946:9:8","nodeType":"YulAssignment","src":"5946:9:8","value":{"name":"newr","nativeSrc":"5951:4:8","nodeType":"YulIdentifier","src":"5951:4:8"},"variableNames":[{"name":"r","nativeSrc":"5946:1:8","nodeType":"YulIdentifier","src":"5946:1:8"}]},{"nativeSrc":"5976:11:8","nodeType":"YulAssignment","src":"5976:11:8","value":{"name":"aux","nativeSrc":"5984:3:8","nodeType":"YulIdentifier","src":"5984:3:8"},"variableNames":[{"name":"newr","nativeSrc":"5976:4:8","nodeType":"YulIdentifier","src":"5976:4:8"}]}]},"condition":{"name":"newr","nativeSrc":"5679:4:8","nodeType":"YulIdentifier","src":"5679:4:8"},"nativeSrc":"5671:334:8","nodeType":"YulForLoop","post":{"nativeSrc":"5684:3:8","nodeType":"YulBlock","src":"5684:3:8","statements":[]},"pre":{"nativeSrc":"5675:3:8","nodeType":"YulBlock","src":"5675:3:8","statements":[]},"src":"5671:334:8"},{"body":{"nativeSrc":"6051:15:8","nodeType":"YulBlock","src":"6051:15:8","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6060:1:8","nodeType":"YulLiteral","src":"6060:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"6062:1:8","nodeType":"YulLiteral","src":"6062:1:8","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6053:6:8","nodeType":"YulIdentifier","src":"6053:6:8"},"nativeSrc":"6053:11:8","nodeType":"YulFunctionCall","src":"6053:11:8"},"nativeSrc":"6053:11:8","nodeType":"YulExpressionStatement","src":"6053:11:8"}]},"condition":{"arguments":[{"name":"r","nativeSrc":"6045:1:8","nodeType":"YulIdentifier","src":"6045:1:8"},{"kind":"number","nativeSrc":"6048:1:8","nodeType":"YulLiteral","src":"6048:1:8","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"6042:2:8","nodeType":"YulIdentifier","src":"6042:2:8"},"nativeSrc":"6042:8:8","nodeType":"YulFunctionCall","src":"6042:8:8"},"nativeSrc":"6039:27:8","nodeType":"YulIf","src":"6039:27:8"},{"body":{"nativeSrc":"6096:17:8","nodeType":"YulBlock","src":"6096:17:8","statements":[{"nativeSrc":"6098:13:8","nodeType":"YulAssignment","src":"6098:13:8","value":{"arguments":[{"name":"t","nativeSrc":"6106:1:8","nodeType":"YulIdentifier","src":"6106:1:8"},{"name":"q","nativeSrc":"6109:1:8","nodeType":"YulIdentifier","src":"6109:1:8"}],"functionName":{"name":"add","nativeSrc":"6102:3:8","nodeType":"YulIdentifier","src":"6102:3:8"},"nativeSrc":"6102:9:8","nodeType":"YulFunctionCall","src":"6102:9:8"},"variableNames":[{"name":"t","nativeSrc":"6098:1:8","nodeType":"YulIdentifier","src":"6098:1:8"}]}]},"condition":{"arguments":[{"name":"t","nativeSrc":"6090:1:8","nodeType":"YulIdentifier","src":"6090:1:8"},{"kind":"number","nativeSrc":"6093:1:8","nodeType":"YulLiteral","src":"6093:1:8","type":"","value":"0"}],"functionName":{"name":"slt","nativeSrc":"6086:3:8","nodeType":"YulIdentifier","src":"6086:3:8"},"nativeSrc":"6086:9:8","nodeType":"YulFunctionCall","src":"6086:9:8"},"nativeSrc":"6083:30:8","nodeType":"YulIf","src":"6083:30:8"},{"nativeSrc":"6131:8:8","nodeType":"YulAssignment","src":"6131:8:8","value":{"name":"t","nativeSrc":"6138:1:8","nodeType":"YulIdentifier","src":"6138:1:8"},"variableNames":[{"name":"inv","nativeSrc":"6131:3:8","nodeType":"YulIdentifier","src":"6131:3:8"}]}]},"name":"inverse","nativeSrc":"5429:724:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"a","nativeSrc":"5446:1:8","nodeType":"YulTypedName","src":"5446:1:8","type":""},{"name":"q","nativeSrc":"5449:1:8","nodeType":"YulTypedName","src":"5449:1:8","type":""}],"returnVariables":[{"name":"inv","nativeSrc":"5455:3:8","nodeType":"YulTypedName","src":"5455:3:8","type":""}],"src":"5429:724:8"},{"body":{"nativeSrc":"6427:1485:8","nodeType":"YulBlock","src":"6427:1485:8","statements":[{"nativeSrc":"6450:23:8","nodeType":"YulVariableDeclaration","src":"6450:23:8","value":{"arguments":[{"kind":"number","nativeSrc":"6468:4:8","nodeType":"YulLiteral","src":"6468:4:8","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"6462:5:8","nodeType":"YulIdentifier","src":"6462:5:8"},"nativeSrc":"6462:11:8","nodeType":"YulFunctionCall","src":"6462:11:8"},"variables":[{"name":"pAux","nativeSrc":"6454:4:8","nodeType":"YulTypedName","src":"6454:4:8","type":""}]},{"nativeSrc":"6529:16:8","nodeType":"YulVariableDeclaration","src":"6529:16:8","value":{"name":"pVals","nativeSrc":"6540:5:8","nodeType":"YulIdentifier","src":"6540:5:8"},"variables":[{"name":"pIn","nativeSrc":"6533:3:8","nodeType":"YulTypedName","src":"6533:3:8","type":""}]},{"nativeSrc":"6562:37:8","nodeType":"YulVariableDeclaration","src":"6562:37:8","value":{"arguments":[{"name":"pVals","nativeSrc":"6581:5:8","nodeType":"YulIdentifier","src":"6581:5:8"},{"arguments":[{"name":"n","nativeSrc":"6592:1:8","nodeType":"YulIdentifier","src":"6592:1:8"},{"kind":"number","nativeSrc":"6595:2:8","nodeType":"YulLiteral","src":"6595:2:8","type":"","value":"32"}],"functionName":{"name":"mul","nativeSrc":"6588:3:8","nodeType":"YulIdentifier","src":"6588:3:8"},"nativeSrc":"6588:10:8","nodeType":"YulFunctionCall","src":"6588:10:8"}],"functionName":{"name":"add","nativeSrc":"6577:3:8","nodeType":"YulIdentifier","src":"6577:3:8"},"nativeSrc":"6577:22:8","nodeType":"YulFunctionCall","src":"6577:22:8"},"variables":[{"name":"lastPIn","nativeSrc":"6566:7:8","nodeType":"YulTypedName","src":"6566:7:8","type":""}]},{"nativeSrc":"6635:21:8","nodeType":"YulVariableDeclaration","src":"6635:21:8","value":{"arguments":[{"name":"pIn","nativeSrc":"6652:3:8","nodeType":"YulIdentifier","src":"6652:3:8"}],"functionName":{"name":"mload","nativeSrc":"6646:5:8","nodeType":"YulIdentifier","src":"6646:5:8"},"nativeSrc":"6646:10:8","nodeType":"YulFunctionCall","src":"6646:10:8"},"variables":[{"name":"acc","nativeSrc":"6639:3:8","nodeType":"YulTypedName","src":"6639:3:8","type":""}]},{"nativeSrc":"6705:19:8","nodeType":"YulAssignment","src":"6705:19:8","value":{"arguments":[{"name":"pIn","nativeSrc":"6716:3:8","nodeType":"YulIdentifier","src":"6716:3:8"},{"kind":"number","nativeSrc":"6721:2:8","nodeType":"YulLiteral","src":"6721:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6712:3:8","nodeType":"YulIdentifier","src":"6712:3:8"},"nativeSrc":"6712:12:8","nodeType":"YulFunctionCall","src":"6712:12:8"},"variableNames":[{"name":"pIn","nativeSrc":"6705:3:8","nodeType":"YulIdentifier","src":"6705:3:8"}]},{"nativeSrc":"6780:7:8","nodeType":"YulVariableDeclaration","src":"6780:7:8","variables":[{"name":"inv","nativeSrc":"6784:3:8","nodeType":"YulTypedName","src":"6784:3:8","type":""}]},{"body":{"nativeSrc":"6972:111:8","nodeType":"YulBlock","src":"6972:111:8","statements":[{"expression":{"arguments":[{"name":"pAux","nativeSrc":"7001:4:8","nodeType":"YulIdentifier","src":"7001:4:8"},{"name":"acc","nativeSrc":"7007:3:8","nodeType":"YulIdentifier","src":"7007:3:8"}],"functionName":{"name":"mstore","nativeSrc":"6994:6:8","nodeType":"YulIdentifier","src":"6994:6:8"},"nativeSrc":"6994:17:8","nodeType":"YulFunctionCall","src":"6994:17:8"},"nativeSrc":"6994:17:8","nodeType":"YulExpressionStatement","src":"6994:17:8"},{"nativeSrc":"7032:33:8","nodeType":"YulAssignment","src":"7032:33:8","value":{"arguments":[{"name":"acc","nativeSrc":"7046:3:8","nodeType":"YulIdentifier","src":"7046:3:8"},{"arguments":[{"name":"pIn","nativeSrc":"7057:3:8","nodeType":"YulIdentifier","src":"7057:3:8"}],"functionName":{"name":"mload","nativeSrc":"7051:5:8","nodeType":"YulIdentifier","src":"7051:5:8"},"nativeSrc":"7051:10:8","nodeType":"YulFunctionCall","src":"7051:10:8"},{"name":"q","nativeSrc":"7063:1:8","nodeType":"YulIdentifier","src":"7063:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"7039:6:8","nodeType":"YulIdentifier","src":"7039:6:8"},"nativeSrc":"7039:26:8","nodeType":"YulFunctionCall","src":"7039:26:8"},"variableNames":[{"name":"acc","nativeSrc":"7032:3:8","nodeType":"YulIdentifier","src":"7032:3:8"}]}]},"condition":{"arguments":[{"name":"pIn","nativeSrc":"6837:3:8","nodeType":"YulIdentifier","src":"6837:3:8"},{"name":"lastPIn","nativeSrc":"6842:7:8","nodeType":"YulIdentifier","src":"6842:7:8"}],"functionName":{"name":"lt","nativeSrc":"6834:2:8","nodeType":"YulIdentifier","src":"6834:2:8"},"nativeSrc":"6834:16:8","nodeType":"YulFunctionCall","src":"6834:16:8"},"nativeSrc":"6826:257:8","nodeType":"YulForLoop","post":{"nativeSrc":"6851:103:8","nodeType":"YulBlock","src":"6851:103:8","statements":[{"nativeSrc":"6874:21:8","nodeType":"YulAssignment","src":"6874:21:8","value":{"arguments":[{"name":"pAux","nativeSrc":"6886:4:8","nodeType":"YulIdentifier","src":"6886:4:8"},{"kind":"number","nativeSrc":"6892:2:8","nodeType":"YulLiteral","src":"6892:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6882:3:8","nodeType":"YulIdentifier","src":"6882:3:8"},"nativeSrc":"6882:13:8","nodeType":"YulFunctionCall","src":"6882:13:8"},"variableNames":[{"name":"pAux","nativeSrc":"6874:4:8","nodeType":"YulIdentifier","src":"6874:4:8"}]},{"nativeSrc":"6917:19:8","nodeType":"YulAssignment","src":"6917:19:8","value":{"arguments":[{"name":"pIn","nativeSrc":"6928:3:8","nodeType":"YulIdentifier","src":"6928:3:8"},{"kind":"number","nativeSrc":"6933:2:8","nodeType":"YulLiteral","src":"6933:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6924:3:8","nodeType":"YulIdentifier","src":"6924:3:8"},"nativeSrc":"6924:12:8","nodeType":"YulFunctionCall","src":"6924:12:8"},"variableNames":[{"name":"pIn","nativeSrc":"6917:3:8","nodeType":"YulIdentifier","src":"6917:3:8"}]}]},"pre":{"nativeSrc":"6830:3:8","nodeType":"YulBlock","src":"6830:3:8","statements":[]},"src":"6826:257:8"},{"nativeSrc":"7100:22:8","nodeType":"YulAssignment","src":"7100:22:8","value":{"arguments":[{"name":"acc","nativeSrc":"7115:3:8","nodeType":"YulIdentifier","src":"7115:3:8"},{"name":"q","nativeSrc":"7120:1:8","nodeType":"YulIdentifier","src":"7120:1:8"}],"functionName":{"name":"inverse","nativeSrc":"7107:7:8","nodeType":"YulIdentifier","src":"7107:7:8"},"nativeSrc":"7107:15:8","nodeType":"YulFunctionCall","src":"7107:15:8"},"variableNames":[{"name":"acc","nativeSrc":"7100:3:8","nodeType":"YulIdentifier","src":"7100:3:8"}]},{"nativeSrc":"7266:21:8","nodeType":"YulAssignment","src":"7266:21:8","value":{"arguments":[{"name":"pAux","nativeSrc":"7278:4:8","nodeType":"YulIdentifier","src":"7278:4:8"},{"kind":"number","nativeSrc":"7284:2:8","nodeType":"YulLiteral","src":"7284:2:8","type":"","value":"32"}],"functionName":{"name":"sub","nativeSrc":"7274:3:8","nodeType":"YulIdentifier","src":"7274:3:8"},"nativeSrc":"7274:13:8","nodeType":"YulFunctionCall","src":"7274:13:8"},"variableNames":[{"name":"pAux","nativeSrc":"7266:4:8","nodeType":"YulIdentifier","src":"7266:4:8"}]},{"nativeSrc":"7381:19:8","nodeType":"YulAssignment","src":"7381:19:8","value":{"arguments":[{"name":"pIn","nativeSrc":"7392:3:8","nodeType":"YulIdentifier","src":"7392:3:8"},{"kind":"number","nativeSrc":"7397:2:8","nodeType":"YulLiteral","src":"7397:2:8","type":"","value":"32"}],"functionName":{"name":"sub","nativeSrc":"7388:3:8","nodeType":"YulIdentifier","src":"7388:3:8"},"nativeSrc":"7388:12:8","nodeType":"YulFunctionCall","src":"7388:12:8"},"variableNames":[{"name":"pIn","nativeSrc":"7381:3:8","nodeType":"YulIdentifier","src":"7381:3:8"}]},{"nativeSrc":"7417:16:8","nodeType":"YulAssignment","src":"7417:16:8","value":{"name":"pVals","nativeSrc":"7428:5:8","nodeType":"YulIdentifier","src":"7428:5:8"},"variableNames":[{"name":"lastPIn","nativeSrc":"7417:7:8","nodeType":"YulIdentifier","src":"7417:7:8"}]},{"body":{"nativeSrc":"7636:165:8","nodeType":"YulBlock","src":"7636:165:8","statements":[{"nativeSrc":"7658:34:8","nodeType":"YulAssignment","src":"7658:34:8","value":{"arguments":[{"name":"acc","nativeSrc":"7672:3:8","nodeType":"YulIdentifier","src":"7672:3:8"},{"arguments":[{"name":"pAux","nativeSrc":"7683:4:8","nodeType":"YulIdentifier","src":"7683:4:8"}],"functionName":{"name":"mload","nativeSrc":"7677:5:8","nodeType":"YulIdentifier","src":"7677:5:8"},"nativeSrc":"7677:11:8","nodeType":"YulFunctionCall","src":"7677:11:8"},{"name":"q","nativeSrc":"7690:1:8","nodeType":"YulIdentifier","src":"7690:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"7665:6:8","nodeType":"YulIdentifier","src":"7665:6:8"},"nativeSrc":"7665:27:8","nodeType":"YulFunctionCall","src":"7665:27:8"},"variableNames":[{"name":"inv","nativeSrc":"7658:3:8","nodeType":"YulIdentifier","src":"7658:3:8"}]},{"nativeSrc":"7713:33:8","nodeType":"YulAssignment","src":"7713:33:8","value":{"arguments":[{"name":"acc","nativeSrc":"7727:3:8","nodeType":"YulIdentifier","src":"7727:3:8"},{"arguments":[{"name":"pIn","nativeSrc":"7738:3:8","nodeType":"YulIdentifier","src":"7738:3:8"}],"functionName":{"name":"mload","nativeSrc":"7732:5:8","nodeType":"YulIdentifier","src":"7732:5:8"},"nativeSrc":"7732:10:8","nodeType":"YulFunctionCall","src":"7732:10:8"},{"name":"q","nativeSrc":"7744:1:8","nodeType":"YulIdentifier","src":"7744:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"7720:6:8","nodeType":"YulIdentifier","src":"7720:6:8"},"nativeSrc":"7720:26:8","nodeType":"YulFunctionCall","src":"7720:26:8"},"variableNames":[{"name":"acc","nativeSrc":"7713:3:8","nodeType":"YulIdentifier","src":"7713:3:8"}]},{"expression":{"arguments":[{"name":"pIn","nativeSrc":"7774:3:8","nodeType":"YulIdentifier","src":"7774:3:8"},{"name":"inv","nativeSrc":"7779:3:8","nodeType":"YulIdentifier","src":"7779:3:8"}],"functionName":{"name":"mstore","nativeSrc":"7767:6:8","nodeType":"YulIdentifier","src":"7767:6:8"},"nativeSrc":"7767:16:8","nodeType":"YulFunctionCall","src":"7767:16:8"},"nativeSrc":"7767:16:8","nodeType":"YulExpressionStatement","src":"7767:16:8"}]},"condition":{"arguments":[{"name":"pIn","nativeSrc":"7501:3:8","nodeType":"YulIdentifier","src":"7501:3:8"},{"name":"lastPIn","nativeSrc":"7506:7:8","nodeType":"YulIdentifier","src":"7506:7:8"}],"functionName":{"name":"gt","nativeSrc":"7498:2:8","nodeType":"YulIdentifier","src":"7498:2:8"},"nativeSrc":"7498:16:8","nodeType":"YulFunctionCall","src":"7498:16:8"},"nativeSrc":"7490:311:8","nodeType":"YulForLoop","post":{"nativeSrc":"7515:103:8","nodeType":"YulBlock","src":"7515:103:8","statements":[{"nativeSrc":"7538:21:8","nodeType":"YulAssignment","src":"7538:21:8","value":{"arguments":[{"name":"pAux","nativeSrc":"7550:4:8","nodeType":"YulIdentifier","src":"7550:4:8"},{"kind":"number","nativeSrc":"7556:2:8","nodeType":"YulLiteral","src":"7556:2:8","type":"","value":"32"}],"functionName":{"name":"sub","nativeSrc":"7546:3:8","nodeType":"YulIdentifier","src":"7546:3:8"},"nativeSrc":"7546:13:8","nodeType":"YulFunctionCall","src":"7546:13:8"},"variableNames":[{"name":"pAux","nativeSrc":"7538:4:8","nodeType":"YulIdentifier","src":"7538:4:8"}]},{"nativeSrc":"7581:19:8","nodeType":"YulAssignment","src":"7581:19:8","value":{"arguments":[{"name":"pIn","nativeSrc":"7592:3:8","nodeType":"YulIdentifier","src":"7592:3:8"},{"kind":"number","nativeSrc":"7597:2:8","nodeType":"YulLiteral","src":"7597:2:8","type":"","value":"32"}],"functionName":{"name":"sub","nativeSrc":"7588:3:8","nodeType":"YulIdentifier","src":"7588:3:8"},"nativeSrc":"7588:12:8","nodeType":"YulFunctionCall","src":"7588:12:8"},"variableNames":[{"name":"pIn","nativeSrc":"7581:3:8","nodeType":"YulIdentifier","src":"7581:3:8"}]}]},"pre":{"nativeSrc":"7494:3:8","nodeType":"YulBlock","src":"7494:3:8","statements":[]},"src":"7490:311:8"},{"expression":{"arguments":[{"name":"pIn","nativeSrc":"7889:3:8","nodeType":"YulIdentifier","src":"7889:3:8"},{"name":"acc","nativeSrc":"7894:3:8","nodeType":"YulIdentifier","src":"7894:3:8"}],"functionName":{"name":"mstore","nativeSrc":"7882:6:8","nodeType":"YulIdentifier","src":"7882:6:8"},"nativeSrc":"7882:16:8","nodeType":"YulFunctionCall","src":"7882:16:8"},"nativeSrc":"7882:16:8","nodeType":"YulExpressionStatement","src":"7882:16:8"}]},"name":"inverseArray","nativeSrc":"6395:1517:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"pVals","nativeSrc":"6417:5:8","nodeType":"YulTypedName","src":"6417:5:8","type":""},{"name":"n","nativeSrc":"6424:1:8","nodeType":"YulTypedName","src":"6424:1:8","type":""}],"src":"6395:1517:8"},{"body":{"nativeSrc":"7961:139:8","nodeType":"YulBlock","src":"7961:139:8","statements":[{"body":{"nativeSrc":"7999:87:8","nodeType":"YulBlock","src":"7999:87:8","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8028:1:8","nodeType":"YulLiteral","src":"8028:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"8031:1:8","nodeType":"YulLiteral","src":"8031:1:8","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8021:6:8","nodeType":"YulIdentifier","src":"8021:6:8"},"nativeSrc":"8021:12:8","nodeType":"YulFunctionCall","src":"8021:12:8"},"nativeSrc":"8021:12:8","nodeType":"YulExpressionStatement","src":"8021:12:8"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8061:1:8","nodeType":"YulLiteral","src":"8061:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"8063:4:8","nodeType":"YulLiteral","src":"8063:4:8","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"8054:6:8","nodeType":"YulIdentifier","src":"8054:6:8"},"nativeSrc":"8054:14:8","nodeType":"YulFunctionCall","src":"8054:14:8"},"nativeSrc":"8054:14:8","nodeType":"YulExpressionStatement","src":"8054:14:8"}]},"condition":{"arguments":[{"arguments":[{"name":"v","nativeSrc":"7992:1:8","nodeType":"YulIdentifier","src":"7992:1:8"},{"name":"q","nativeSrc":"7995:1:8","nodeType":"YulIdentifier","src":"7995:1:8"}],"functionName":{"name":"lt","nativeSrc":"7989:2:8","nodeType":"YulIdentifier","src":"7989:2:8"},"nativeSrc":"7989:8:8","nodeType":"YulFunctionCall","src":"7989:8:8"}],"functionName":{"name":"iszero","nativeSrc":"7982:6:8","nodeType":"YulIdentifier","src":"7982:6:8"},"nativeSrc":"7982:16:8","nodeType":"YulFunctionCall","src":"7982:16:8"},"nativeSrc":"7979:107:8","nodeType":"YulIf","src":"7979:107:8"}]},"name":"checkField","nativeSrc":"7938:162:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"v","nativeSrc":"7958:1:8","nodeType":"YulTypedName","src":"7958:1:8","type":""}],"src":"7938:162:8"},{"body":{"nativeSrc":"8154:640:8","nodeType":"YulBlock","src":"8154:640:8","statements":[{"body":{"nativeSrc":"8207:87:8","nodeType":"YulBlock","src":"8207:87:8","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8236:1:8","nodeType":"YulLiteral","src":"8236:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"8239:1:8","nodeType":"YulLiteral","src":"8239:1:8","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8229:6:8","nodeType":"YulIdentifier","src":"8229:6:8"},"nativeSrc":"8229:12:8","nodeType":"YulFunctionCall","src":"8229:12:8"},"nativeSrc":"8229:12:8","nodeType":"YulExpressionStatement","src":"8229:12:8"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8269:1:8","nodeType":"YulLiteral","src":"8269:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"8271:4:8","nodeType":"YulLiteral","src":"8271:4:8","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"8262:6:8","nodeType":"YulIdentifier","src":"8262:6:8"},"nativeSrc":"8262:14:8","nodeType":"YulFunctionCall","src":"8262:14:8"},"nativeSrc":"8262:14:8","nodeType":"YulExpressionStatement","src":"8262:14:8"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8191:6:8","nodeType":"YulIdentifier","src":"8191:6:8"}],"functionName":{"name":"mload","nativeSrc":"8185:5:8","nodeType":"YulIdentifier","src":"8185:5:8"},"nativeSrc":"8185:13:8","nodeType":"YulFunctionCall","src":"8185:13:8"},{"kind":"number","nativeSrc":"8200:3:8","nodeType":"YulLiteral","src":"8200:3:8","type":"","value":"800"}],"functionName":{"name":"eq","nativeSrc":"8182:2:8","nodeType":"YulIdentifier","src":"8182:2:8"},"nativeSrc":"8182:23:8","nodeType":"YulFunctionCall","src":"8182:23:8"}],"functionName":{"name":"iszero","nativeSrc":"8175:6:8","nodeType":"YulIdentifier","src":"8175:6:8"},"nativeSrc":"8175:31:8","nodeType":"YulFunctionCall","src":"8175:31:8"},"nativeSrc":"8172:122:8","nodeType":"YulIf","src":"8172:122:8"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8332:6:8","nodeType":"YulIdentifier","src":"8332:6:8"},{"name":"pEval_a","nativeSrc":"8340:7:8","nodeType":"YulIdentifier","src":"8340:7:8"}],"functionName":{"name":"add","nativeSrc":"8328:3:8","nodeType":"YulIdentifier","src":"8328:3:8"},"nativeSrc":"8328:20:8","nodeType":"YulFunctionCall","src":"8328:20:8"}],"functionName":{"name":"mload","nativeSrc":"8322:5:8","nodeType":"YulIdentifier","src":"8322:5:8"},"nativeSrc":"8322:27:8","nodeType":"YulFunctionCall","src":"8322:27:8"}],"functionName":{"name":"checkField","nativeSrc":"8311:10:8","nodeType":"YulIdentifier","src":"8311:10:8"},"nativeSrc":"8311:39:8","nodeType":"YulFunctionCall","src":"8311:39:8"},"nativeSrc":"8311:39:8","nodeType":"YulExpressionStatement","src":"8311:39:8"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8388:6:8","nodeType":"YulIdentifier","src":"8388:6:8"},{"name":"pEval_b","nativeSrc":"8396:7:8","nodeType":"YulIdentifier","src":"8396:7:8"}],"functionName":{"name":"add","nativeSrc":"8384:3:8","nodeType":"YulIdentifier","src":"8384:3:8"},"nativeSrc":"8384:20:8","nodeType":"YulFunctionCall","src":"8384:20:8"}],"functionName":{"name":"mload","nativeSrc":"8378:5:8","nodeType":"YulIdentifier","src":"8378:5:8"},"nativeSrc":"8378:27:8","nodeType":"YulFunctionCall","src":"8378:27:8"}],"functionName":{"name":"checkField","nativeSrc":"8367:10:8","nodeType":"YulIdentifier","src":"8367:10:8"},"nativeSrc":"8367:39:8","nodeType":"YulFunctionCall","src":"8367:39:8"},"nativeSrc":"8367:39:8","nodeType":"YulExpressionStatement","src":"8367:39:8"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8444:6:8","nodeType":"YulIdentifier","src":"8444:6:8"},{"name":"pEval_c","nativeSrc":"8452:7:8","nodeType":"YulIdentifier","src":"8452:7:8"}],"functionName":{"name":"add","nativeSrc":"8440:3:8","nodeType":"YulIdentifier","src":"8440:3:8"},"nativeSrc":"8440:20:8","nodeType":"YulFunctionCall","src":"8440:20:8"}],"functionName":{"name":"mload","nativeSrc":"8434:5:8","nodeType":"YulIdentifier","src":"8434:5:8"},"nativeSrc":"8434:27:8","nodeType":"YulFunctionCall","src":"8434:27:8"}],"functionName":{"name":"checkField","nativeSrc":"8423:10:8","nodeType":"YulIdentifier","src":"8423:10:8"},"nativeSrc":"8423:39:8","nodeType":"YulFunctionCall","src":"8423:39:8"},"nativeSrc":"8423:39:8","nodeType":"YulExpressionStatement","src":"8423:39:8"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8500:6:8","nodeType":"YulIdentifier","src":"8500:6:8"},{"name":"pEval_s1","nativeSrc":"8508:8:8","nodeType":"YulIdentifier","src":"8508:8:8"}],"functionName":{"name":"add","nativeSrc":"8496:3:8","nodeType":"YulIdentifier","src":"8496:3:8"},"nativeSrc":"8496:21:8","nodeType":"YulFunctionCall","src":"8496:21:8"}],"functionName":{"name":"mload","nativeSrc":"8490:5:8","nodeType":"YulIdentifier","src":"8490:5:8"},"nativeSrc":"8490:28:8","nodeType":"YulFunctionCall","src":"8490:28:8"}],"functionName":{"name":"checkField","nativeSrc":"8479:10:8","nodeType":"YulIdentifier","src":"8479:10:8"},"nativeSrc":"8479:40:8","nodeType":"YulFunctionCall","src":"8479:40:8"},"nativeSrc":"8479:40:8","nodeType":"YulExpressionStatement","src":"8479:40:8"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8557:6:8","nodeType":"YulIdentifier","src":"8557:6:8"},{"name":"pEval_s2","nativeSrc":"8565:8:8","nodeType":"YulIdentifier","src":"8565:8:8"}],"functionName":{"name":"add","nativeSrc":"8553:3:8","nodeType":"YulIdentifier","src":"8553:3:8"},"nativeSrc":"8553:21:8","nodeType":"YulFunctionCall","src":"8553:21:8"}],"functionName":{"name":"mload","nativeSrc":"8547:5:8","nodeType":"YulIdentifier","src":"8547:5:8"},"nativeSrc":"8547:28:8","nodeType":"YulFunctionCall","src":"8547:28:8"}],"functionName":{"name":"checkField","nativeSrc":"8536:10:8","nodeType":"YulIdentifier","src":"8536:10:8"},"nativeSrc":"8536:40:8","nodeType":"YulFunctionCall","src":"8536:40:8"},"nativeSrc":"8536:40:8","nodeType":"YulExpressionStatement","src":"8536:40:8"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8614:6:8","nodeType":"YulIdentifier","src":"8614:6:8"},{"name":"pEval_zw","nativeSrc":"8622:8:8","nodeType":"YulIdentifier","src":"8622:8:8"}],"functionName":{"name":"add","nativeSrc":"8610:3:8","nodeType":"YulIdentifier","src":"8610:3:8"},"nativeSrc":"8610:21:8","nodeType":"YulFunctionCall","src":"8610:21:8"}],"functionName":{"name":"mload","nativeSrc":"8604:5:8","nodeType":"YulIdentifier","src":"8604:5:8"},"nativeSrc":"8604:28:8","nodeType":"YulFunctionCall","src":"8604:28:8"}],"functionName":{"name":"checkField","nativeSrc":"8593:10:8","nodeType":"YulIdentifier","src":"8593:10:8"},"nativeSrc":"8593:40:8","nodeType":"YulFunctionCall","src":"8593:40:8"},"nativeSrc":"8593:40:8","nodeType":"YulExpressionStatement","src":"8593:40:8"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"8671:6:8","nodeType":"YulIdentifier","src":"8671:6:8"},{"name":"pEval_r","nativeSrc":"8679:7:8","nodeType":"YulIdentifier","src":"8679:7:8"}],"functionName":{"name":"add","nativeSrc":"8667:3:8","nodeType":"YulIdentifier","src":"8667:3:8"},"nativeSrc":"8667:20:8","nodeType":"YulFunctionCall","src":"8667:20:8"}],"functionName":{"name":"mload","nativeSrc":"8661:5:8","nodeType":"YulIdentifier","src":"8661:5:8"},"nativeSrc":"8661:27:8","nodeType":"YulFunctionCall","src":"8661:27:8"}],"functionName":{"name":"checkField","nativeSrc":"8650:10:8","nodeType":"YulIdentifier","src":"8650:10:8"},"nativeSrc":"8650:39:8","nodeType":"YulFunctionCall","src":"8650:39:8"},"nativeSrc":"8650:39:8","nodeType":"YulExpressionStatement","src":"8650:39:8"}]},"name":"checkInput","nativeSrc":"8126:668:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"pProof","nativeSrc":"8146:6:8","nodeType":"YulTypedName","src":"8146:6:8","type":""}],"src":"8126:668:8"},{"body":{"nativeSrc":"8872:2776:8","nodeType":"YulBlock","src":"8872:2776:8","statements":[{"nativeSrc":"8903:5:8","nodeType":"YulVariableDeclaration","src":"8903:5:8","variables":[{"name":"a","nativeSrc":"8907:1:8","nodeType":"YulTypedName","src":"8907:1:8","type":""}]},{"nativeSrc":"8925:5:8","nodeType":"YulVariableDeclaration","src":"8925:5:8","variables":[{"name":"b","nativeSrc":"8929:1:8","nodeType":"YulTypedName","src":"8929:1:8","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"8977:4:8","nodeType":"YulIdentifier","src":"8977:4:8"},{"kind":"number","nativeSrc":"8983:3:8","nodeType":"YulLiteral","src":"8983:3:8","type":"","value":"704"}],"functionName":{"name":"add","nativeSrc":"8973:3:8","nodeType":"YulIdentifier","src":"8973:3:8"},"nativeSrc":"8973:15:8","nodeType":"YulFunctionCall","src":"8973:15:8"},{"arguments":[{"arguments":[{"name":"pPublic","nativeSrc":"9002:7:8","nodeType":"YulIdentifier","src":"9002:7:8"},{"kind":"number","nativeSrc":"9011:2:8","nodeType":"YulLiteral","src":"9011:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8997:3:8","nodeType":"YulIdentifier","src":"8997:3:8"},"nativeSrc":"8997:17:8","nodeType":"YulFunctionCall","src":"8997:17:8"}],"functionName":{"name":"mload","nativeSrc":"8990:5:8","nodeType":"YulIdentifier","src":"8990:5:8"},"nativeSrc":"8990:25:8","nodeType":"YulFunctionCall","src":"8990:25:8"}],"functionName":{"name":"mstore","nativeSrc":"8965:6:8","nodeType":"YulIdentifier","src":"8965:6:8"},"nativeSrc":"8965:51:8","nodeType":"YulFunctionCall","src":"8965:51:8"},"nativeSrc":"8965:51:8","nodeType":"YulExpressionStatement","src":"8965:51:8"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9062:4:8","nodeType":"YulIdentifier","src":"9062:4:8"},{"kind":"number","nativeSrc":"9068:3:8","nodeType":"YulLiteral","src":"9068:3:8","type":"","value":"736"}],"functionName":{"name":"add","nativeSrc":"9058:3:8","nodeType":"YulIdentifier","src":"9058:3:8"},"nativeSrc":"9058:15:8","nodeType":"YulFunctionCall","src":"9058:15:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9087:6:8","nodeType":"YulIdentifier","src":"9087:6:8"},{"name":"pA","nativeSrc":"9095:2:8","nodeType":"YulIdentifier","src":"9095:2:8"}],"functionName":{"name":"add","nativeSrc":"9082:3:8","nodeType":"YulIdentifier","src":"9082:3:8"},"nativeSrc":"9082:16:8","nodeType":"YulFunctionCall","src":"9082:16:8"}],"functionName":{"name":"mload","nativeSrc":"9075:5:8","nodeType":"YulIdentifier","src":"9075:5:8"},"nativeSrc":"9075:24:8","nodeType":"YulFunctionCall","src":"9075:24:8"}],"functionName":{"name":"mstore","nativeSrc":"9050:6:8","nodeType":"YulIdentifier","src":"9050:6:8"},"nativeSrc":"9050:50:8","nodeType":"YulFunctionCall","src":"9050:50:8"},"nativeSrc":"9050:50:8","nodeType":"YulExpressionStatement","src":"9050:50:8"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9129:4:8","nodeType":"YulIdentifier","src":"9129:4:8"},{"kind":"number","nativeSrc":"9135:3:8","nodeType":"YulLiteral","src":"9135:3:8","type":"","value":"768"}],"functionName":{"name":"add","nativeSrc":"9125:3:8","nodeType":"YulIdentifier","src":"9125:3:8"},"nativeSrc":"9125:15:8","nodeType":"YulFunctionCall","src":"9125:15:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9154:6:8","nodeType":"YulIdentifier","src":"9154:6:8"},{"arguments":[{"name":"pA","nativeSrc":"9166:2:8","nodeType":"YulIdentifier","src":"9166:2:8"},{"kind":"number","nativeSrc":"9169:2:8","nodeType":"YulLiteral","src":"9169:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9162:3:8","nodeType":"YulIdentifier","src":"9162:3:8"},"nativeSrc":"9162:10:8","nodeType":"YulFunctionCall","src":"9162:10:8"}],"functionName":{"name":"add","nativeSrc":"9149:3:8","nodeType":"YulIdentifier","src":"9149:3:8"},"nativeSrc":"9149:24:8","nodeType":"YulFunctionCall","src":"9149:24:8"}],"functionName":{"name":"mload","nativeSrc":"9142:5:8","nodeType":"YulIdentifier","src":"9142:5:8"},"nativeSrc":"9142:32:8","nodeType":"YulFunctionCall","src":"9142:32:8"}],"functionName":{"name":"mstore","nativeSrc":"9117:6:8","nodeType":"YulIdentifier","src":"9117:6:8"},"nativeSrc":"9117:58:8","nodeType":"YulFunctionCall","src":"9117:58:8"},"nativeSrc":"9117:58:8","nodeType":"YulExpressionStatement","src":"9117:58:8"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9204:4:8","nodeType":"YulIdentifier","src":"9204:4:8"},{"kind":"number","nativeSrc":"9210:3:8","nodeType":"YulLiteral","src":"9210:3:8","type":"","value":"800"}],"functionName":{"name":"add","nativeSrc":"9200:3:8","nodeType":"YulIdentifier","src":"9200:3:8"},"nativeSrc":"9200:15:8","nodeType":"YulFunctionCall","src":"9200:15:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9229:6:8","nodeType":"YulIdentifier","src":"9229:6:8"},{"arguments":[{"name":"pA","nativeSrc":"9241:2:8","nodeType":"YulIdentifier","src":"9241:2:8"},{"kind":"number","nativeSrc":"9244:2:8","nodeType":"YulLiteral","src":"9244:2:8","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9237:3:8","nodeType":"YulIdentifier","src":"9237:3:8"},"nativeSrc":"9237:10:8","nodeType":"YulFunctionCall","src":"9237:10:8"}],"functionName":{"name":"add","nativeSrc":"9224:3:8","nodeType":"YulIdentifier","src":"9224:3:8"},"nativeSrc":"9224:24:8","nodeType":"YulFunctionCall","src":"9224:24:8"}],"functionName":{"name":"mload","nativeSrc":"9217:5:8","nodeType":"YulIdentifier","src":"9217:5:8"},"nativeSrc":"9217:32:8","nodeType":"YulFunctionCall","src":"9217:32:8"}],"functionName":{"name":"mstore","nativeSrc":"9192:6:8","nodeType":"YulIdentifier","src":"9192:6:8"},"nativeSrc":"9192:58:8","nodeType":"YulFunctionCall","src":"9192:58:8"},"nativeSrc":"9192:58:8","nodeType":"YulExpressionStatement","src":"9192:58:8"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9279:4:8","nodeType":"YulIdentifier","src":"9279:4:8"},{"kind":"number","nativeSrc":"9285:3:8","nodeType":"YulLiteral","src":"9285:3:8","type":"","value":"832"}],"functionName":{"name":"add","nativeSrc":"9275:3:8","nodeType":"YulIdentifier","src":"9275:3:8"},"nativeSrc":"9275:15:8","nodeType":"YulFunctionCall","src":"9275:15:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9304:6:8","nodeType":"YulIdentifier","src":"9304:6:8"},{"arguments":[{"name":"pA","nativeSrc":"9316:2:8","nodeType":"YulIdentifier","src":"9316:2:8"},{"kind":"number","nativeSrc":"9319:2:8","nodeType":"YulLiteral","src":"9319:2:8","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9312:3:8","nodeType":"YulIdentifier","src":"9312:3:8"},"nativeSrc":"9312:10:8","nodeType":"YulFunctionCall","src":"9312:10:8"}],"functionName":{"name":"add","nativeSrc":"9299:3:8","nodeType":"YulIdentifier","src":"9299:3:8"},"nativeSrc":"9299:24:8","nodeType":"YulFunctionCall","src":"9299:24:8"}],"functionName":{"name":"mload","nativeSrc":"9292:5:8","nodeType":"YulIdentifier","src":"9292:5:8"},"nativeSrc":"9292:32:8","nodeType":"YulFunctionCall","src":"9292:32:8"}],"functionName":{"name":"mstore","nativeSrc":"9267:6:8","nodeType":"YulIdentifier","src":"9267:6:8"},"nativeSrc":"9267:58:8","nodeType":"YulFunctionCall","src":"9267:58:8"},"nativeSrc":"9267:58:8","nodeType":"YulExpressionStatement","src":"9267:58:8"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9354:4:8","nodeType":"YulIdentifier","src":"9354:4:8"},{"kind":"number","nativeSrc":"9360:3:8","nodeType":"YulLiteral","src":"9360:3:8","type":"","value":"864"}],"functionName":{"name":"add","nativeSrc":"9350:3:8","nodeType":"YulIdentifier","src":"9350:3:8"},"nativeSrc":"9350:15:8","nodeType":"YulFunctionCall","src":"9350:15:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9379:6:8","nodeType":"YulIdentifier","src":"9379:6:8"},{"arguments":[{"name":"pA","nativeSrc":"9391:2:8","nodeType":"YulIdentifier","src":"9391:2:8"},{"kind":"number","nativeSrc":"9394:3:8","nodeType":"YulLiteral","src":"9394:3:8","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9387:3:8","nodeType":"YulIdentifier","src":"9387:3:8"},"nativeSrc":"9387:11:8","nodeType":"YulFunctionCall","src":"9387:11:8"}],"functionName":{"name":"add","nativeSrc":"9374:3:8","nodeType":"YulIdentifier","src":"9374:3:8"},"nativeSrc":"9374:25:8","nodeType":"YulFunctionCall","src":"9374:25:8"}],"functionName":{"name":"mload","nativeSrc":"9367:5:8","nodeType":"YulIdentifier","src":"9367:5:8"},"nativeSrc":"9367:33:8","nodeType":"YulFunctionCall","src":"9367:33:8"}],"functionName":{"name":"mstore","nativeSrc":"9342:6:8","nodeType":"YulIdentifier","src":"9342:6:8"},"nativeSrc":"9342:59:8","nodeType":"YulFunctionCall","src":"9342:59:8"},"nativeSrc":"9342:59:8","nodeType":"YulExpressionStatement","src":"9342:59:8"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9430:4:8","nodeType":"YulIdentifier","src":"9430:4:8"},{"kind":"number","nativeSrc":"9436:3:8","nodeType":"YulLiteral","src":"9436:3:8","type":"","value":"896"}],"functionName":{"name":"add","nativeSrc":"9426:3:8","nodeType":"YulIdentifier","src":"9426:3:8"},"nativeSrc":"9426:15:8","nodeType":"YulFunctionCall","src":"9426:15:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9455:6:8","nodeType":"YulIdentifier","src":"9455:6:8"},{"arguments":[{"name":"pA","nativeSrc":"9467:2:8","nodeType":"YulIdentifier","src":"9467:2:8"},{"kind":"number","nativeSrc":"9470:3:8","nodeType":"YulLiteral","src":"9470:3:8","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"9463:3:8","nodeType":"YulIdentifier","src":"9463:3:8"},"nativeSrc":"9463:11:8","nodeType":"YulFunctionCall","src":"9463:11:8"}],"functionName":{"name":"add","nativeSrc":"9450:3:8","nodeType":"YulIdentifier","src":"9450:3:8"},"nativeSrc":"9450:25:8","nodeType":"YulFunctionCall","src":"9450:25:8"}],"functionName":{"name":"mload","nativeSrc":"9443:5:8","nodeType":"YulIdentifier","src":"9443:5:8"},"nativeSrc":"9443:33:8","nodeType":"YulFunctionCall","src":"9443:33:8"}],"functionName":{"name":"mstore","nativeSrc":"9418:6:8","nodeType":"YulIdentifier","src":"9418:6:8"},"nativeSrc":"9418:59:8","nodeType":"YulFunctionCall","src":"9418:59:8"},"nativeSrc":"9418:59:8","nodeType":"YulExpressionStatement","src":"9418:59:8"},{"nativeSrc":"9511:47:8","nodeType":"YulAssignment","src":"9511:47:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9534:4:8","nodeType":"YulIdentifier","src":"9534:4:8"},{"name":"lastMem","nativeSrc":"9540:7:8","nodeType":"YulIdentifier","src":"9540:7:8"}],"functionName":{"name":"add","nativeSrc":"9530:3:8","nodeType":"YulIdentifier","src":"9530:3:8"},"nativeSrc":"9530:18:8","nodeType":"YulFunctionCall","src":"9530:18:8"},{"kind":"number","nativeSrc":"9550:3:8","nodeType":"YulLiteral","src":"9550:3:8","type":"","value":"224"}],"functionName":{"name":"keccak256","nativeSrc":"9520:9:8","nodeType":"YulIdentifier","src":"9520:9:8"},"nativeSrc":"9520:34:8","nodeType":"YulFunctionCall","src":"9520:34:8"},{"name":"q","nativeSrc":"9556:1:8","nodeType":"YulIdentifier","src":"9556:1:8"}],"functionName":{"name":"mod","nativeSrc":"9516:3:8","nodeType":"YulIdentifier","src":"9516:3:8"},"nativeSrc":"9516:42:8","nodeType":"YulFunctionCall","src":"9516:42:8"},"variableNames":[{"name":"b","nativeSrc":"9511:1:8","nodeType":"YulIdentifier","src":"9511:1:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9588:4:8","nodeType":"YulIdentifier","src":"9588:4:8"},{"name":"pBeta","nativeSrc":"9594:5:8","nodeType":"YulIdentifier","src":"9594:5:8"}],"functionName":{"name":"add","nativeSrc":"9584:3:8","nodeType":"YulIdentifier","src":"9584:3:8"},"nativeSrc":"9584:16:8","nodeType":"YulFunctionCall","src":"9584:16:8"},{"name":"b","nativeSrc":"9602:1:8","nodeType":"YulIdentifier","src":"9602:1:8"}],"functionName":{"name":"mstore","nativeSrc":"9576:6:8","nodeType":"YulIdentifier","src":"9576:6:8"},"nativeSrc":"9576:28:8","nodeType":"YulFunctionCall","src":"9576:28:8"},"nativeSrc":"9576:28:8","nodeType":"YulExpressionStatement","src":"9576:28:8"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9633:4:8","nodeType":"YulIdentifier","src":"9633:4:8"},{"name":"pGamma","nativeSrc":"9639:6:8","nodeType":"YulIdentifier","src":"9639:6:8"}],"functionName":{"name":"add","nativeSrc":"9629:3:8","nodeType":"YulIdentifier","src":"9629:3:8"},"nativeSrc":"9629:17:8","nodeType":"YulFunctionCall","src":"9629:17:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9666:4:8","nodeType":"YulIdentifier","src":"9666:4:8"},{"name":"pBeta","nativeSrc":"9672:5:8","nodeType":"YulIdentifier","src":"9672:5:8"}],"functionName":{"name":"add","nativeSrc":"9662:3:8","nodeType":"YulIdentifier","src":"9662:3:8"},"nativeSrc":"9662:16:8","nodeType":"YulFunctionCall","src":"9662:16:8"},{"kind":"number","nativeSrc":"9680:2:8","nodeType":"YulLiteral","src":"9680:2:8","type":"","value":"32"}],"functionName":{"name":"keccak256","nativeSrc":"9652:9:8","nodeType":"YulIdentifier","src":"9652:9:8"},"nativeSrc":"9652:31:8","nodeType":"YulFunctionCall","src":"9652:31:8"},{"name":"q","nativeSrc":"9685:1:8","nodeType":"YulIdentifier","src":"9685:1:8"}],"functionName":{"name":"mod","nativeSrc":"9648:3:8","nodeType":"YulIdentifier","src":"9648:3:8"},"nativeSrc":"9648:39:8","nodeType":"YulFunctionCall","src":"9648:39:8"}],"functionName":{"name":"mstore","nativeSrc":"9621:6:8","nodeType":"YulIdentifier","src":"9621:6:8"},"nativeSrc":"9621:67:8","nodeType":"YulFunctionCall","src":"9621:67:8"},"nativeSrc":"9621:67:8","nodeType":"YulExpressionStatement","src":"9621:67:8"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9717:4:8","nodeType":"YulIdentifier","src":"9717:4:8"},{"name":"pAlpha","nativeSrc":"9723:6:8","nodeType":"YulIdentifier","src":"9723:6:8"}],"functionName":{"name":"add","nativeSrc":"9713:3:8","nodeType":"YulIdentifier","src":"9713:3:8"},"nativeSrc":"9713:17:8","nodeType":"YulFunctionCall","src":"9713:17:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9750:6:8","nodeType":"YulIdentifier","src":"9750:6:8"},{"name":"pZ","nativeSrc":"9758:2:8","nodeType":"YulIdentifier","src":"9758:2:8"}],"functionName":{"name":"add","nativeSrc":"9746:3:8","nodeType":"YulIdentifier","src":"9746:3:8"},"nativeSrc":"9746:15:8","nodeType":"YulFunctionCall","src":"9746:15:8"},{"kind":"number","nativeSrc":"9763:2:8","nodeType":"YulLiteral","src":"9763:2:8","type":"","value":"64"}],"functionName":{"name":"keccak256","nativeSrc":"9736:9:8","nodeType":"YulIdentifier","src":"9736:9:8"},"nativeSrc":"9736:30:8","nodeType":"YulFunctionCall","src":"9736:30:8"},{"name":"q","nativeSrc":"9768:1:8","nodeType":"YulIdentifier","src":"9768:1:8"}],"functionName":{"name":"mod","nativeSrc":"9732:3:8","nodeType":"YulIdentifier","src":"9732:3:8"},"nativeSrc":"9732:38:8","nodeType":"YulFunctionCall","src":"9732:38:8"}],"functionName":{"name":"mstore","nativeSrc":"9705:6:8","nodeType":"YulIdentifier","src":"9705:6:8"},"nativeSrc":"9705:66:8","nodeType":"YulFunctionCall","src":"9705:66:8"},"nativeSrc":"9705:66:8","nodeType":"YulExpressionStatement","src":"9705:66:8"},{"nativeSrc":"9805:45:8","nodeType":"YulAssignment","src":"9805:45:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"9828:6:8","nodeType":"YulIdentifier","src":"9828:6:8"},{"name":"pT1","nativeSrc":"9836:3:8","nodeType":"YulIdentifier","src":"9836:3:8"}],"functionName":{"name":"add","nativeSrc":"9824:3:8","nodeType":"YulIdentifier","src":"9824:3:8"},"nativeSrc":"9824:16:8","nodeType":"YulFunctionCall","src":"9824:16:8"},{"kind":"number","nativeSrc":"9842:3:8","nodeType":"YulLiteral","src":"9842:3:8","type":"","value":"192"}],"functionName":{"name":"keccak256","nativeSrc":"9814:9:8","nodeType":"YulIdentifier","src":"9814:9:8"},"nativeSrc":"9814:32:8","nodeType":"YulFunctionCall","src":"9814:32:8"},{"name":"q","nativeSrc":"9848:1:8","nodeType":"YulIdentifier","src":"9848:1:8"}],"functionName":{"name":"mod","nativeSrc":"9810:3:8","nodeType":"YulIdentifier","src":"9810:3:8"},"nativeSrc":"9810:40:8","nodeType":"YulFunctionCall","src":"9810:40:8"},"variableNames":[{"name":"a","nativeSrc":"9805:1:8","nodeType":"YulIdentifier","src":"9805:1:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9879:4:8","nodeType":"YulIdentifier","src":"9879:4:8"},{"name":"pXi","nativeSrc":"9885:3:8","nodeType":"YulIdentifier","src":"9885:3:8"}],"functionName":{"name":"add","nativeSrc":"9875:3:8","nodeType":"YulIdentifier","src":"9875:3:8"},"nativeSrc":"9875:14:8","nodeType":"YulFunctionCall","src":"9875:14:8"},{"name":"a","nativeSrc":"9891:1:8","nodeType":"YulIdentifier","src":"9891:1:8"}],"functionName":{"name":"mstore","nativeSrc":"9867:6:8","nodeType":"YulIdentifier","src":"9867:6:8"},"nativeSrc":"9867:26:8","nodeType":"YulFunctionCall","src":"9867:26:8"},"nativeSrc":"9867:26:8","nodeType":"YulExpressionStatement","src":"9867:26:8"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"9922:4:8","nodeType":"YulIdentifier","src":"9922:4:8"},{"name":"pBetaXi","nativeSrc":"9928:7:8","nodeType":"YulIdentifier","src":"9928:7:8"}],"functionName":{"name":"add","nativeSrc":"9918:3:8","nodeType":"YulIdentifier","src":"9918:3:8"},"nativeSrc":"9918:18:8","nodeType":"YulFunctionCall","src":"9918:18:8"},{"arguments":[{"name":"b","nativeSrc":"9945:1:8","nodeType":"YulIdentifier","src":"9945:1:8"},{"name":"a","nativeSrc":"9948:1:8","nodeType":"YulIdentifier","src":"9948:1:8"},{"name":"q","nativeSrc":"9951:1:8","nodeType":"YulIdentifier","src":"9951:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"9938:6:8","nodeType":"YulIdentifier","src":"9938:6:8"},"nativeSrc":"9938:15:8","nodeType":"YulFunctionCall","src":"9938:15:8"}],"functionName":{"name":"mstore","nativeSrc":"9910:6:8","nodeType":"YulIdentifier","src":"9910:6:8"},"nativeSrc":"9910:44:8","nodeType":"YulFunctionCall","src":"9910:44:8"},"nativeSrc":"9910:44:8","nodeType":"YulExpressionStatement","src":"9910:44:8"},{"nativeSrc":"9988:19:8","nodeType":"YulAssignment","src":"9988:19:8","value":{"arguments":[{"name":"a","nativeSrc":"9999:1:8","nodeType":"YulIdentifier","src":"9999:1:8"},{"name":"a","nativeSrc":"10002:1:8","nodeType":"YulIdentifier","src":"10002:1:8"},{"name":"q","nativeSrc":"10005:1:8","nodeType":"YulIdentifier","src":"10005:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"9992:6:8","nodeType":"YulIdentifier","src":"9992:6:8"},"nativeSrc":"9992:15:8","nodeType":"YulFunctionCall","src":"9992:15:8"},"variableNames":[{"name":"a","nativeSrc":"9988:1:8","nodeType":"YulIdentifier","src":"9988:1:8"}]},{"nativeSrc":"10041:19:8","nodeType":"YulAssignment","src":"10041:19:8","value":{"arguments":[{"name":"a","nativeSrc":"10052:1:8","nodeType":"YulIdentifier","src":"10052:1:8"},{"name":"a","nativeSrc":"10055:1:8","nodeType":"YulIdentifier","src":"10055:1:8"},{"name":"q","nativeSrc":"10058:1:8","nodeType":"YulIdentifier","src":"10058:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"10045:6:8","nodeType":"YulIdentifier","src":"10045:6:8"},"nativeSrc":"10045:15:8","nodeType":"YulFunctionCall","src":"10045:15:8"},"variableNames":[{"name":"a","nativeSrc":"10041:1:8","nodeType":"YulIdentifier","src":"10041:1:8"}]},{"nativeSrc":"10094:19:8","nodeType":"YulAssignment","src":"10094:19:8","value":{"arguments":[{"name":"a","nativeSrc":"10105:1:8","nodeType":"YulIdentifier","src":"10105:1:8"},{"name":"a","nativeSrc":"10108:1:8","nodeType":"YulIdentifier","src":"10108:1:8"},{"name":"q","nativeSrc":"10111:1:8","nodeType":"YulIdentifier","src":"10111:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"10098:6:8","nodeType":"YulIdentifier","src":"10098:6:8"},"nativeSrc":"10098:15:8","nodeType":"YulFunctionCall","src":"10098:15:8"},"variableNames":[{"name":"a","nativeSrc":"10094:1:8","nodeType":"YulIdentifier","src":"10094:1:8"}]},{"nativeSrc":"10147:19:8","nodeType":"YulAssignment","src":"10147:19:8","value":{"arguments":[{"name":"a","nativeSrc":"10158:1:8","nodeType":"YulIdentifier","src":"10158:1:8"},{"name":"a","nativeSrc":"10161:1:8","nodeType":"YulIdentifier","src":"10161:1:8"},{"name":"q","nativeSrc":"10164:1:8","nodeType":"YulIdentifier","src":"10164:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"10151:6:8","nodeType":"YulIdentifier","src":"10151:6:8"},"nativeSrc":"10151:15:8","nodeType":"YulFunctionCall","src":"10151:15:8"},"variableNames":[{"name":"a","nativeSrc":"10147:1:8","nodeType":"YulIdentifier","src":"10147:1:8"}]},{"nativeSrc":"10200:19:8","nodeType":"YulAssignment","src":"10200:19:8","value":{"arguments":[{"name":"a","nativeSrc":"10211:1:8","nodeType":"YulIdentifier","src":"10211:1:8"},{"name":"a","nativeSrc":"10214:1:8","nodeType":"YulIdentifier","src":"10214:1:8"},{"name":"q","nativeSrc":"10217:1:8","nodeType":"YulIdentifier","src":"10217:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"10204:6:8","nodeType":"YulIdentifier","src":"10204:6:8"},"nativeSrc":"10204:15:8","nodeType":"YulFunctionCall","src":"10204:15:8"},"variableNames":[{"name":"a","nativeSrc":"10200:1:8","nodeType":"YulIdentifier","src":"10200:1:8"}]},{"nativeSrc":"10253:19:8","nodeType":"YulAssignment","src":"10253:19:8","value":{"arguments":[{"name":"a","nativeSrc":"10264:1:8","nodeType":"YulIdentifier","src":"10264:1:8"},{"name":"a","nativeSrc":"10267:1:8","nodeType":"YulIdentifier","src":"10267:1:8"},{"name":"q","nativeSrc":"10270:1:8","nodeType":"YulIdentifier","src":"10270:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"10257:6:8","nodeType":"YulIdentifier","src":"10257:6:8"},"nativeSrc":"10257:15:8","nodeType":"YulFunctionCall","src":"10257:15:8"},"variableNames":[{"name":"a","nativeSrc":"10253:1:8","nodeType":"YulIdentifier","src":"10253:1:8"}]},{"nativeSrc":"10306:19:8","nodeType":"YulAssignment","src":"10306:19:8","value":{"arguments":[{"name":"a","nativeSrc":"10317:1:8","nodeType":"YulIdentifier","src":"10317:1:8"},{"name":"a","nativeSrc":"10320:1:8","nodeType":"YulIdentifier","src":"10320:1:8"},{"name":"q","nativeSrc":"10323:1:8","nodeType":"YulIdentifier","src":"10323:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"10310:6:8","nodeType":"YulIdentifier","src":"10310:6:8"},"nativeSrc":"10310:15:8","nodeType":"YulFunctionCall","src":"10310:15:8"},"variableNames":[{"name":"a","nativeSrc":"10306:1:8","nodeType":"YulIdentifier","src":"10306:1:8"}]},{"nativeSrc":"10359:19:8","nodeType":"YulAssignment","src":"10359:19:8","value":{"arguments":[{"name":"a","nativeSrc":"10370:1:8","nodeType":"YulIdentifier","src":"10370:1:8"},{"name":"a","nativeSrc":"10373:1:8","nodeType":"YulIdentifier","src":"10373:1:8"},{"name":"q","nativeSrc":"10376:1:8","nodeType":"YulIdentifier","src":"10376:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"10363:6:8","nodeType":"YulIdentifier","src":"10363:6:8"},"nativeSrc":"10363:15:8","nodeType":"YulFunctionCall","src":"10363:15:8"},"variableNames":[{"name":"a","nativeSrc":"10359:1:8","nodeType":"YulIdentifier","src":"10359:1:8"}]},{"nativeSrc":"10412:19:8","nodeType":"YulAssignment","src":"10412:19:8","value":{"arguments":[{"name":"a","nativeSrc":"10423:1:8","nodeType":"YulIdentifier","src":"10423:1:8"},{"name":"a","nativeSrc":"10426:1:8","nodeType":"YulIdentifier","src":"10426:1:8"},{"name":"q","nativeSrc":"10429:1:8","nodeType":"YulIdentifier","src":"10429:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"10416:6:8","nodeType":"YulIdentifier","src":"10416:6:8"},"nativeSrc":"10416:15:8","nodeType":"YulFunctionCall","src":"10416:15:8"},"variableNames":[{"name":"a","nativeSrc":"10412:1:8","nodeType":"YulIdentifier","src":"10412:1:8"}]},{"nativeSrc":"10465:19:8","nodeType":"YulAssignment","src":"10465:19:8","value":{"arguments":[{"name":"a","nativeSrc":"10476:1:8","nodeType":"YulIdentifier","src":"10476:1:8"},{"name":"a","nativeSrc":"10479:1:8","nodeType":"YulIdentifier","src":"10479:1:8"},{"name":"q","nativeSrc":"10482:1:8","nodeType":"YulIdentifier","src":"10482:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"10469:6:8","nodeType":"YulIdentifier","src":"10469:6:8"},"nativeSrc":"10469:15:8","nodeType":"YulFunctionCall","src":"10469:15:8"},"variableNames":[{"name":"a","nativeSrc":"10465:1:8","nodeType":"YulIdentifier","src":"10465:1:8"}]},{"nativeSrc":"10518:19:8","nodeType":"YulAssignment","src":"10518:19:8","value":{"arguments":[{"name":"a","nativeSrc":"10529:1:8","nodeType":"YulIdentifier","src":"10529:1:8"},{"name":"a","nativeSrc":"10532:1:8","nodeType":"YulIdentifier","src":"10532:1:8"},{"name":"q","nativeSrc":"10535:1:8","nodeType":"YulIdentifier","src":"10535:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"10522:6:8","nodeType":"YulIdentifier","src":"10522:6:8"},"nativeSrc":"10522:15:8","nodeType":"YulFunctionCall","src":"10522:15:8"},"variableNames":[{"name":"a","nativeSrc":"10518:1:8","nodeType":"YulIdentifier","src":"10518:1:8"}]},{"nativeSrc":"10571:19:8","nodeType":"YulAssignment","src":"10571:19:8","value":{"arguments":[{"name":"a","nativeSrc":"10582:1:8","nodeType":"YulIdentifier","src":"10582:1:8"},{"name":"a","nativeSrc":"10585:1:8","nodeType":"YulIdentifier","src":"10585:1:8"},{"name":"q","nativeSrc":"10588:1:8","nodeType":"YulIdentifier","src":"10588:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"10575:6:8","nodeType":"YulIdentifier","src":"10575:6:8"},"nativeSrc":"10575:15:8","nodeType":"YulFunctionCall","src":"10575:15:8"},"variableNames":[{"name":"a","nativeSrc":"10571:1:8","nodeType":"YulIdentifier","src":"10571:1:8"}]},{"nativeSrc":"10624:19:8","nodeType":"YulAssignment","src":"10624:19:8","value":{"arguments":[{"name":"a","nativeSrc":"10635:1:8","nodeType":"YulIdentifier","src":"10635:1:8"},{"name":"a","nativeSrc":"10638:1:8","nodeType":"YulIdentifier","src":"10638:1:8"},{"name":"q","nativeSrc":"10641:1:8","nodeType":"YulIdentifier","src":"10641:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"10628:6:8","nodeType":"YulIdentifier","src":"10628:6:8"},"nativeSrc":"10628:15:8","nodeType":"YulFunctionCall","src":"10628:15:8"},"variableNames":[{"name":"a","nativeSrc":"10624:1:8","nodeType":"YulIdentifier","src":"10624:1:8"}]},{"nativeSrc":"10677:19:8","nodeType":"YulAssignment","src":"10677:19:8","value":{"arguments":[{"name":"a","nativeSrc":"10688:1:8","nodeType":"YulIdentifier","src":"10688:1:8"},{"name":"a","nativeSrc":"10691:1:8","nodeType":"YulIdentifier","src":"10691:1:8"},{"name":"q","nativeSrc":"10694:1:8","nodeType":"YulIdentifier","src":"10694:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"10681:6:8","nodeType":"YulIdentifier","src":"10681:6:8"},"nativeSrc":"10681:15:8","nodeType":"YulFunctionCall","src":"10681:15:8"},"variableNames":[{"name":"a","nativeSrc":"10677:1:8","nodeType":"YulIdentifier","src":"10677:1:8"}]},{"nativeSrc":"10730:19:8","nodeType":"YulAssignment","src":"10730:19:8","value":{"arguments":[{"name":"a","nativeSrc":"10741:1:8","nodeType":"YulIdentifier","src":"10741:1:8"},{"name":"a","nativeSrc":"10744:1:8","nodeType":"YulIdentifier","src":"10744:1:8"},{"name":"q","nativeSrc":"10747:1:8","nodeType":"YulIdentifier","src":"10747:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"10734:6:8","nodeType":"YulIdentifier","src":"10734:6:8"},"nativeSrc":"10734:15:8","nodeType":"YulFunctionCall","src":"10734:15:8"},"variableNames":[{"name":"a","nativeSrc":"10730:1:8","nodeType":"YulIdentifier","src":"10730:1:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"10795:4:8","nodeType":"YulIdentifier","src":"10795:4:8"},{"name":"pXin","nativeSrc":"10801:4:8","nodeType":"YulIdentifier","src":"10801:4:8"}],"functionName":{"name":"add","nativeSrc":"10791:3:8","nodeType":"YulIdentifier","src":"10791:3:8"},"nativeSrc":"10791:15:8","nodeType":"YulFunctionCall","src":"10791:15:8"},{"name":"a","nativeSrc":"10808:1:8","nodeType":"YulIdentifier","src":"10808:1:8"}],"functionName":{"name":"mstore","nativeSrc":"10783:6:8","nodeType":"YulIdentifier","src":"10783:6:8"},"nativeSrc":"10783:27:8","nodeType":"YulFunctionCall","src":"10783:27:8"},"nativeSrc":"10783:27:8","nodeType":"YulExpressionStatement","src":"10783:27:8"},{"nativeSrc":"10827:28:8","nodeType":"YulAssignment","src":"10827:28:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"10843:1:8","nodeType":"YulIdentifier","src":"10843:1:8"},{"kind":"number","nativeSrc":"10846:1:8","nodeType":"YulLiteral","src":"10846:1:8","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"10839:3:8","nodeType":"YulIdentifier","src":"10839:3:8"},"nativeSrc":"10839:9:8","nodeType":"YulFunctionCall","src":"10839:9:8"},{"name":"q","nativeSrc":"10849:1:8","nodeType":"YulIdentifier","src":"10849:1:8"}],"functionName":{"name":"add","nativeSrc":"10835:3:8","nodeType":"YulIdentifier","src":"10835:3:8"},"nativeSrc":"10835:16:8","nodeType":"YulFunctionCall","src":"10835:16:8"},{"name":"q","nativeSrc":"10853:1:8","nodeType":"YulIdentifier","src":"10853:1:8"}],"functionName":{"name":"mod","nativeSrc":"10831:3:8","nodeType":"YulIdentifier","src":"10831:3:8"},"nativeSrc":"10831:24:8","nodeType":"YulFunctionCall","src":"10831:24:8"},"variableNames":[{"name":"a","nativeSrc":"10827:1:8","nodeType":"YulIdentifier","src":"10827:1:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"10884:4:8","nodeType":"YulIdentifier","src":"10884:4:8"},{"name":"pZh","nativeSrc":"10890:3:8","nodeType":"YulIdentifier","src":"10890:3:8"}],"functionName":{"name":"add","nativeSrc":"10880:3:8","nodeType":"YulIdentifier","src":"10880:3:8"},"nativeSrc":"10880:14:8","nodeType":"YulFunctionCall","src":"10880:14:8"},{"name":"a","nativeSrc":"10896:1:8","nodeType":"YulIdentifier","src":"10896:1:8"}],"functionName":{"name":"mstore","nativeSrc":"10872:6:8","nodeType":"YulIdentifier","src":"10872:6:8"},"nativeSrc":"10872:26:8","nodeType":"YulFunctionCall","src":"10872:26:8"},"nativeSrc":"10872:26:8","nodeType":"YulExpressionStatement","src":"10872:26:8"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"10927:4:8","nodeType":"YulIdentifier","src":"10927:4:8"},{"name":"pZhInv","nativeSrc":"10933:6:8","nodeType":"YulIdentifier","src":"10933:6:8"}],"functionName":{"name":"add","nativeSrc":"10923:3:8","nodeType":"YulIdentifier","src":"10923:3:8"},"nativeSrc":"10923:17:8","nodeType":"YulFunctionCall","src":"10923:17:8"},{"name":"a","nativeSrc":"10942:1:8","nodeType":"YulIdentifier","src":"10942:1:8"}],"functionName":{"name":"mstore","nativeSrc":"10915:6:8","nodeType":"YulIdentifier","src":"10915:6:8"},"nativeSrc":"10915:29:8","nodeType":"YulFunctionCall","src":"10915:29:8"},"nativeSrc":"10915:29:8","nodeType":"YulExpressionStatement","src":"10915:29:8"},{"nativeSrc":"11031:54:8","nodeType":"YulVariableDeclaration","src":"11031:54:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"11059:6:8","nodeType":"YulIdentifier","src":"11059:6:8"},{"name":"pEval_a","nativeSrc":"11067:7:8","nodeType":"YulIdentifier","src":"11067:7:8"}],"functionName":{"name":"add","nativeSrc":"11055:3:8","nodeType":"YulIdentifier","src":"11055:3:8"},"nativeSrc":"11055:20:8","nodeType":"YulFunctionCall","src":"11055:20:8"},{"kind":"number","nativeSrc":"11077:3:8","nodeType":"YulLiteral","src":"11077:3:8","type":"","value":"224"}],"functionName":{"name":"keccak256","nativeSrc":"11045:9:8","nodeType":"YulIdentifier","src":"11045:9:8"},"nativeSrc":"11045:36:8","nodeType":"YulFunctionCall","src":"11045:36:8"},{"name":"q","nativeSrc":"11083:1:8","nodeType":"YulIdentifier","src":"11083:1:8"}],"functionName":{"name":"mod","nativeSrc":"11041:3:8","nodeType":"YulIdentifier","src":"11041:3:8"},"nativeSrc":"11041:44:8","nodeType":"YulFunctionCall","src":"11041:44:8"},"variables":[{"name":"v1","nativeSrc":"11035:2:8","nodeType":"YulTypedName","src":"11035:2:8","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11114:4:8","nodeType":"YulIdentifier","src":"11114:4:8"},{"name":"pV1","nativeSrc":"11120:3:8","nodeType":"YulIdentifier","src":"11120:3:8"}],"functionName":{"name":"add","nativeSrc":"11110:3:8","nodeType":"YulIdentifier","src":"11110:3:8"},"nativeSrc":"11110:14:8","nodeType":"YulFunctionCall","src":"11110:14:8"},{"name":"v1","nativeSrc":"11126:2:8","nodeType":"YulIdentifier","src":"11126:2:8"}],"functionName":{"name":"mstore","nativeSrc":"11102:6:8","nodeType":"YulIdentifier","src":"11102:6:8"},"nativeSrc":"11102:27:8","nodeType":"YulFunctionCall","src":"11102:27:8"},"nativeSrc":"11102:27:8","nodeType":"YulExpressionStatement","src":"11102:27:8"},{"nativeSrc":"11146:22:8","nodeType":"YulAssignment","src":"11146:22:8","value":{"arguments":[{"name":"v1","nativeSrc":"11158:2:8","nodeType":"YulIdentifier","src":"11158:2:8"},{"name":"v1","nativeSrc":"11162:2:8","nodeType":"YulIdentifier","src":"11162:2:8"},{"name":"q","nativeSrc":"11166:1:8","nodeType":"YulIdentifier","src":"11166:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"11151:6:8","nodeType":"YulIdentifier","src":"11151:6:8"},"nativeSrc":"11151:17:8","nodeType":"YulFunctionCall","src":"11151:17:8"},"variableNames":[{"name":"a","nativeSrc":"11146:1:8","nodeType":"YulIdentifier","src":"11146:1:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11197:4:8","nodeType":"YulIdentifier","src":"11197:4:8"},{"name":"pV2","nativeSrc":"11203:3:8","nodeType":"YulIdentifier","src":"11203:3:8"}],"functionName":{"name":"add","nativeSrc":"11193:3:8","nodeType":"YulIdentifier","src":"11193:3:8"},"nativeSrc":"11193:14:8","nodeType":"YulFunctionCall","src":"11193:14:8"},{"name":"a","nativeSrc":"11209:1:8","nodeType":"YulIdentifier","src":"11209:1:8"}],"functionName":{"name":"mstore","nativeSrc":"11185:6:8","nodeType":"YulIdentifier","src":"11185:6:8"},"nativeSrc":"11185:26:8","nodeType":"YulFunctionCall","src":"11185:26:8"},"nativeSrc":"11185:26:8","nodeType":"YulExpressionStatement","src":"11185:26:8"},{"nativeSrc":"11228:21:8","nodeType":"YulAssignment","src":"11228:21:8","value":{"arguments":[{"name":"a","nativeSrc":"11240:1:8","nodeType":"YulIdentifier","src":"11240:1:8"},{"name":"v1","nativeSrc":"11243:2:8","nodeType":"YulIdentifier","src":"11243:2:8"},{"name":"q","nativeSrc":"11247:1:8","nodeType":"YulIdentifier","src":"11247:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"11233:6:8","nodeType":"YulIdentifier","src":"11233:6:8"},"nativeSrc":"11233:16:8","nodeType":"YulFunctionCall","src":"11233:16:8"},"variableNames":[{"name":"a","nativeSrc":"11228:1:8","nodeType":"YulIdentifier","src":"11228:1:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11278:4:8","nodeType":"YulIdentifier","src":"11278:4:8"},{"name":"pV3","nativeSrc":"11284:3:8","nodeType":"YulIdentifier","src":"11284:3:8"}],"functionName":{"name":"add","nativeSrc":"11274:3:8","nodeType":"YulIdentifier","src":"11274:3:8"},"nativeSrc":"11274:14:8","nodeType":"YulFunctionCall","src":"11274:14:8"},{"name":"a","nativeSrc":"11290:1:8","nodeType":"YulIdentifier","src":"11290:1:8"}],"functionName":{"name":"mstore","nativeSrc":"11266:6:8","nodeType":"YulIdentifier","src":"11266:6:8"},"nativeSrc":"11266:26:8","nodeType":"YulFunctionCall","src":"11266:26:8"},"nativeSrc":"11266:26:8","nodeType":"YulExpressionStatement","src":"11266:26:8"},{"nativeSrc":"11309:21:8","nodeType":"YulAssignment","src":"11309:21:8","value":{"arguments":[{"name":"a","nativeSrc":"11321:1:8","nodeType":"YulIdentifier","src":"11321:1:8"},{"name":"v1","nativeSrc":"11324:2:8","nodeType":"YulIdentifier","src":"11324:2:8"},{"name":"q","nativeSrc":"11328:1:8","nodeType":"YulIdentifier","src":"11328:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"11314:6:8","nodeType":"YulIdentifier","src":"11314:6:8"},"nativeSrc":"11314:16:8","nodeType":"YulFunctionCall","src":"11314:16:8"},"variableNames":[{"name":"a","nativeSrc":"11309:1:8","nodeType":"YulIdentifier","src":"11309:1:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11359:4:8","nodeType":"YulIdentifier","src":"11359:4:8"},{"name":"pV4","nativeSrc":"11365:3:8","nodeType":"YulIdentifier","src":"11365:3:8"}],"functionName":{"name":"add","nativeSrc":"11355:3:8","nodeType":"YulIdentifier","src":"11355:3:8"},"nativeSrc":"11355:14:8","nodeType":"YulFunctionCall","src":"11355:14:8"},{"name":"a","nativeSrc":"11371:1:8","nodeType":"YulIdentifier","src":"11371:1:8"}],"functionName":{"name":"mstore","nativeSrc":"11347:6:8","nodeType":"YulIdentifier","src":"11347:6:8"},"nativeSrc":"11347:26:8","nodeType":"YulFunctionCall","src":"11347:26:8"},"nativeSrc":"11347:26:8","nodeType":"YulExpressionStatement","src":"11347:26:8"},{"nativeSrc":"11390:21:8","nodeType":"YulAssignment","src":"11390:21:8","value":{"arguments":[{"name":"a","nativeSrc":"11402:1:8","nodeType":"YulIdentifier","src":"11402:1:8"},{"name":"v1","nativeSrc":"11405:2:8","nodeType":"YulIdentifier","src":"11405:2:8"},{"name":"q","nativeSrc":"11409:1:8","nodeType":"YulIdentifier","src":"11409:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"11395:6:8","nodeType":"YulIdentifier","src":"11395:6:8"},"nativeSrc":"11395:16:8","nodeType":"YulFunctionCall","src":"11395:16:8"},"variableNames":[{"name":"a","nativeSrc":"11390:1:8","nodeType":"YulIdentifier","src":"11390:1:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11440:4:8","nodeType":"YulIdentifier","src":"11440:4:8"},{"name":"pV5","nativeSrc":"11446:3:8","nodeType":"YulIdentifier","src":"11446:3:8"}],"functionName":{"name":"add","nativeSrc":"11436:3:8","nodeType":"YulIdentifier","src":"11436:3:8"},"nativeSrc":"11436:14:8","nodeType":"YulFunctionCall","src":"11436:14:8"},{"name":"a","nativeSrc":"11452:1:8","nodeType":"YulIdentifier","src":"11452:1:8"}],"functionName":{"name":"mstore","nativeSrc":"11428:6:8","nodeType":"YulIdentifier","src":"11428:6:8"},"nativeSrc":"11428:26:8","nodeType":"YulFunctionCall","src":"11428:26:8"},"nativeSrc":"11428:26:8","nodeType":"YulExpressionStatement","src":"11428:26:8"},{"nativeSrc":"11471:21:8","nodeType":"YulAssignment","src":"11471:21:8","value":{"arguments":[{"name":"a","nativeSrc":"11483:1:8","nodeType":"YulIdentifier","src":"11483:1:8"},{"name":"v1","nativeSrc":"11486:2:8","nodeType":"YulIdentifier","src":"11486:2:8"},{"name":"q","nativeSrc":"11490:1:8","nodeType":"YulIdentifier","src":"11490:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"11476:6:8","nodeType":"YulIdentifier","src":"11476:6:8"},"nativeSrc":"11476:16:8","nodeType":"YulFunctionCall","src":"11476:16:8"},"variableNames":[{"name":"a","nativeSrc":"11471:1:8","nodeType":"YulIdentifier","src":"11471:1:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11521:4:8","nodeType":"YulIdentifier","src":"11521:4:8"},{"name":"pV6","nativeSrc":"11527:3:8","nodeType":"YulIdentifier","src":"11527:3:8"}],"functionName":{"name":"add","nativeSrc":"11517:3:8","nodeType":"YulIdentifier","src":"11517:3:8"},"nativeSrc":"11517:14:8","nodeType":"YulFunctionCall","src":"11517:14:8"},{"name":"a","nativeSrc":"11533:1:8","nodeType":"YulIdentifier","src":"11533:1:8"}],"functionName":{"name":"mstore","nativeSrc":"11509:6:8","nodeType":"YulIdentifier","src":"11509:6:8"},"nativeSrc":"11509:26:8","nodeType":"YulFunctionCall","src":"11509:26:8"},"nativeSrc":"11509:26:8","nodeType":"YulExpressionStatement","src":"11509:26:8"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11581:4:8","nodeType":"YulIdentifier","src":"11581:4:8"},{"name":"pU","nativeSrc":"11587:2:8","nodeType":"YulIdentifier","src":"11587:2:8"}],"functionName":{"name":"add","nativeSrc":"11577:3:8","nodeType":"YulIdentifier","src":"11577:3:8"},"nativeSrc":"11577:13:8","nodeType":"YulFunctionCall","src":"11577:13:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"11610:6:8","nodeType":"YulIdentifier","src":"11610:6:8"},{"name":"pWxi","nativeSrc":"11618:4:8","nodeType":"YulIdentifier","src":"11618:4:8"}],"functionName":{"name":"add","nativeSrc":"11606:3:8","nodeType":"YulIdentifier","src":"11606:3:8"},"nativeSrc":"11606:17:8","nodeType":"YulFunctionCall","src":"11606:17:8"},{"kind":"number","nativeSrc":"11625:3:8","nodeType":"YulLiteral","src":"11625:3:8","type":"","value":"128"}],"functionName":{"name":"keccak256","nativeSrc":"11596:9:8","nodeType":"YulIdentifier","src":"11596:9:8"},"nativeSrc":"11596:33:8","nodeType":"YulFunctionCall","src":"11596:33:8"},{"name":"q","nativeSrc":"11631:1:8","nodeType":"YulIdentifier","src":"11631:1:8"}],"functionName":{"name":"mod","nativeSrc":"11592:3:8","nodeType":"YulIdentifier","src":"11592:3:8"},"nativeSrc":"11592:41:8","nodeType":"YulFunctionCall","src":"11592:41:8"}],"functionName":{"name":"mstore","nativeSrc":"11569:6:8","nodeType":"YulIdentifier","src":"11569:6:8"},"nativeSrc":"11569:65:8","nodeType":"YulFunctionCall","src":"11569:65:8"},"nativeSrc":"11569:65:8","nodeType":"YulExpressionStatement","src":"11569:65:8"}]},"name":"calculateChallanges","nativeSrc":"8820:2828:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"pProof","nativeSrc":"8849:6:8","nodeType":"YulTypedName","src":"8849:6:8","type":""},{"name":"pMem","nativeSrc":"8857:4:8","nodeType":"YulTypedName","src":"8857:4:8","type":""},{"name":"pPublic","nativeSrc":"8863:7:8","nodeType":"YulTypedName","src":"8863:7:8","type":""}],"src":"8820:2828:8"},{"body":{"nativeSrc":"11707:1140:8","nodeType":"YulBlock","src":"11707:1140:8","statements":[{"nativeSrc":"11726:10:8","nodeType":"YulVariableDeclaration","src":"11726:10:8","value":{"kind":"number","nativeSrc":"11735:1:8","nodeType":"YulLiteral","src":"11735:1:8","type":"","value":"1"},"variables":[{"name":"w","nativeSrc":"11730:1:8","nodeType":"YulTypedName","src":"11730:1:8","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"11818:4:8","nodeType":"YulIdentifier","src":"11818:4:8"},{"name":"pEval_l1","nativeSrc":"11824:8:8","nodeType":"YulIdentifier","src":"11824:8:8"}],"functionName":{"name":"add","nativeSrc":"11814:3:8","nodeType":"YulIdentifier","src":"11814:3:8"},"nativeSrc":"11814:19:8","nodeType":"YulFunctionCall","src":"11814:19:8"},{"arguments":[{"name":"n","nativeSrc":"11888:1:8","nodeType":"YulIdentifier","src":"11888:1:8"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"12037:4:8","nodeType":"YulIdentifier","src":"12037:4:8"},{"name":"pXi","nativeSrc":"12043:3:8","nodeType":"YulIdentifier","src":"12043:3:8"}],"functionName":{"name":"add","nativeSrc":"12033:3:8","nodeType":"YulIdentifier","src":"12033:3:8"},"nativeSrc":"12033:14:8","nodeType":"YulFunctionCall","src":"12033:14:8"}],"functionName":{"name":"mload","nativeSrc":"12027:5:8","nodeType":"YulIdentifier","src":"12027:5:8"},"nativeSrc":"12027:21:8","nodeType":"YulFunctionCall","src":"12027:21:8"},{"name":"w","nativeSrc":"12087:1:8","nodeType":"YulIdentifier","src":"12087:1:8"}],"functionName":{"name":"sub","nativeSrc":"11986:3:8","nodeType":"YulIdentifier","src":"11986:3:8"},"nativeSrc":"11986:136:8","nodeType":"YulFunctionCall","src":"11986:136:8"},{"name":"q","nativeSrc":"12157:1:8","nodeType":"YulIdentifier","src":"12157:1:8"}],"functionName":{"name":"add","nativeSrc":"11949:3:8","nodeType":"YulIdentifier","src":"11949:3:8"},"nativeSrc":"11949:239:8","nodeType":"YulFunctionCall","src":"11949:239:8"},{"name":"q","nativeSrc":"12218:1:8","nodeType":"YulIdentifier","src":"12218:1:8"}],"functionName":{"name":"mod","nativeSrc":"11916:3:8","nodeType":"YulIdentifier","src":"11916:3:8"},"nativeSrc":"11916:329:8","nodeType":"YulFunctionCall","src":"11916:329:8"},{"name":"q","nativeSrc":"12272:1:8","nodeType":"YulIdentifier","src":"12272:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"11856:6:8","nodeType":"YulIdentifier","src":"11856:6:8"},"nativeSrc":"11856:439:8","nodeType":"YulFunctionCall","src":"11856:439:8"}],"functionName":{"name":"mstore","nativeSrc":"11786:6:8","nodeType":"YulIdentifier","src":"11786:6:8"},"nativeSrc":"11786:527:8","nodeType":"YulFunctionCall","src":"11786:527:8"},"nativeSrc":"11786:527:8","nodeType":"YulExpressionStatement","src":"11786:527:8"},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"12398:4:8","nodeType":"YulIdentifier","src":"12398:4:8"},{"name":"pZhInv","nativeSrc":"12404:6:8","nodeType":"YulIdentifier","src":"12404:6:8"}],"functionName":{"name":"add","nativeSrc":"12394:3:8","nodeType":"YulIdentifier","src":"12394:3:8"},"nativeSrc":"12394:17:8","nodeType":"YulFunctionCall","src":"12394:17:8"},{"kind":"number","nativeSrc":"12413:1:8","nodeType":"YulLiteral","src":"12413:1:8","type":"","value":"2"}],"functionName":{"name":"inverseArray","nativeSrc":"12381:12:8","nodeType":"YulIdentifier","src":"12381:12:8"},"nativeSrc":"12381:35:8","nodeType":"YulFunctionCall","src":"12381:35:8"},"nativeSrc":"12381:35:8","nodeType":"YulExpressionStatement","src":"12381:35:8"},{"nativeSrc":"12450:31:8","nodeType":"YulVariableDeclaration","src":"12450:31:8","value":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"12470:4:8","nodeType":"YulIdentifier","src":"12470:4:8"},{"name":"pZh","nativeSrc":"12476:3:8","nodeType":"YulIdentifier","src":"12476:3:8"}],"functionName":{"name":"add","nativeSrc":"12466:3:8","nodeType":"YulIdentifier","src":"12466:3:8"},"nativeSrc":"12466:14:8","nodeType":"YulFunctionCall","src":"12466:14:8"}],"functionName":{"name":"mload","nativeSrc":"12460:5:8","nodeType":"YulIdentifier","src":"12460:5:8"},"nativeSrc":"12460:21:8","nodeType":"YulFunctionCall","src":"12460:21:8"},"variables":[{"name":"zh","nativeSrc":"12454:2:8","nodeType":"YulTypedName","src":"12454:2:8","type":""}]},{"nativeSrc":"12498:6:8","nodeType":"YulAssignment","src":"12498:6:8","value":{"kind":"number","nativeSrc":"12503:1:8","nodeType":"YulLiteral","src":"12503:1:8","type":"","value":"1"},"variableNames":[{"name":"w","nativeSrc":"12498:1:8","nodeType":"YulIdentifier","src":"12498:1:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"12587:4:8","nodeType":"YulIdentifier","src":"12587:4:8"},{"name":"pEval_l1","nativeSrc":"12593:8:8","nodeType":"YulIdentifier","src":"12593:8:8"}],"functionName":{"name":"add","nativeSrc":"12583:3:8","nodeType":"YulIdentifier","src":"12583:3:8"},"nativeSrc":"12583:20:8","nodeType":"YulFunctionCall","src":"12583:20:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"12668:4:8","nodeType":"YulIdentifier","src":"12668:4:8"},{"name":"pEval_l1","nativeSrc":"12674:8:8","nodeType":"YulIdentifier","src":"12674:8:8"}],"functionName":{"name":"add","nativeSrc":"12664:3:8","nodeType":"YulIdentifier","src":"12664:3:8"},"nativeSrc":"12664:20:8","nodeType":"YulFunctionCall","src":"12664:20:8"}],"functionName":{"name":"mload","nativeSrc":"12658:5:8","nodeType":"YulIdentifier","src":"12658:5:8"},"nativeSrc":"12658:27:8","nodeType":"YulFunctionCall","src":"12658:27:8"},{"name":"zh","nativeSrc":"12711:2:8","nodeType":"YulIdentifier","src":"12711:2:8"},{"name":"q","nativeSrc":"12739:1:8","nodeType":"YulIdentifier","src":"12739:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"12626:6:8","nodeType":"YulIdentifier","src":"12626:6:8"},"nativeSrc":"12626:136:8","nodeType":"YulFunctionCall","src":"12626:136:8"}],"functionName":{"name":"mstore","nativeSrc":"12555:6:8","nodeType":"YulIdentifier","src":"12555:6:8"},"nativeSrc":"12555:225:8","nodeType":"YulFunctionCall","src":"12555:225:8"},"nativeSrc":"12555:225:8","nodeType":"YulExpressionStatement","src":"12555:225:8"}]},"name":"calculateLagrange","nativeSrc":"11674:1173:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"pMem","nativeSrc":"11701:4:8","nodeType":"YulTypedName","src":"11701:4:8","type":""}],"src":"11674:1173:8"},{"body":{"nativeSrc":"12906:618:8","nodeType":"YulBlock","src":"12906:618:8","statements":[{"nativeSrc":"12924:11:8","nodeType":"YulVariableDeclaration","src":"12924:11:8","value":{"kind":"number","nativeSrc":"12934:1:8","nodeType":"YulLiteral","src":"12934:1:8","type":"","value":"0"},"variables":[{"name":"pl","nativeSrc":"12928:2:8","nodeType":"YulTypedName","src":"12928:2:8","type":""}]},{"nativeSrc":"12987:428:8","nodeType":"YulAssignment","src":"12987:428:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pl","nativeSrc":"13080:2:8","nodeType":"YulIdentifier","src":"13080:2:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"13164:4:8","nodeType":"YulIdentifier","src":"13164:4:8"},{"name":"pEval_l1","nativeSrc":"13170:8:8","nodeType":"YulIdentifier","src":"13170:8:8"}],"functionName":{"name":"add","nativeSrc":"13160:3:8","nodeType":"YulIdentifier","src":"13160:3:8"},"nativeSrc":"13160:19:8","nodeType":"YulFunctionCall","src":"13160:19:8"}],"functionName":{"name":"mload","nativeSrc":"13154:5:8","nodeType":"YulIdentifier","src":"13154:5:8"},"nativeSrc":"13154:26:8","nodeType":"YulFunctionCall","src":"13154:26:8"},{"arguments":[{"arguments":[{"name":"pPub","nativeSrc":"13224:4:8","nodeType":"YulIdentifier","src":"13224:4:8"},{"kind":"number","nativeSrc":"13230:2:8","nodeType":"YulLiteral","src":"13230:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13220:3:8","nodeType":"YulIdentifier","src":"13220:3:8"},"nativeSrc":"13220:13:8","nodeType":"YulFunctionCall","src":"13220:13:8"}],"functionName":{"name":"mload","nativeSrc":"13214:5:8","nodeType":"YulIdentifier","src":"13214:5:8"},"nativeSrc":"13214:20:8","nodeType":"YulFunctionCall","src":"13214:20:8"},{"name":"q","nativeSrc":"13268:1:8","nodeType":"YulIdentifier","src":"13268:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"13114:6:8","nodeType":"YulIdentifier","src":"13114:6:8"},"nativeSrc":"13114:185:8","nodeType":"YulFunctionCall","src":"13114:185:8"}],"functionName":{"name":"sub","nativeSrc":"13047:3:8","nodeType":"YulIdentifier","src":"13047:3:8"},"nativeSrc":"13047:278:8","nodeType":"YulFunctionCall","src":"13047:278:8"},{"name":"q","nativeSrc":"13351:1:8","nodeType":"YulIdentifier","src":"13351:1:8"}],"functionName":{"name":"add","nativeSrc":"13018:3:8","nodeType":"YulIdentifier","src":"13018:3:8"},"nativeSrc":"13018:356:8","nodeType":"YulFunctionCall","src":"13018:356:8"},{"name":"q","nativeSrc":"13396:1:8","nodeType":"YulIdentifier","src":"13396:1:8"}],"functionName":{"name":"mod","nativeSrc":"12993:3:8","nodeType":"YulIdentifier","src":"12993:3:8"},"nativeSrc":"12993:422:8","nodeType":"YulFunctionCall","src":"12993:422:8"},"variableNames":[{"name":"pl","nativeSrc":"12987:2:8","nodeType":"YulIdentifier","src":"12987:2:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"13477:4:8","nodeType":"YulIdentifier","src":"13477:4:8"},{"name":"pPl","nativeSrc":"13483:3:8","nodeType":"YulIdentifier","src":"13483:3:8"}],"functionName":{"name":"add","nativeSrc":"13473:3:8","nodeType":"YulIdentifier","src":"13473:3:8"},"nativeSrc":"13473:14:8","nodeType":"YulFunctionCall","src":"13473:14:8"},{"name":"pl","nativeSrc":"13489:2:8","nodeType":"YulIdentifier","src":"13489:2:8"}],"functionName":{"name":"mstore","nativeSrc":"13466:6:8","nodeType":"YulIdentifier","src":"13466:6:8"},"nativeSrc":"13466:26:8","nodeType":"YulFunctionCall","src":"13466:26:8"},"nativeSrc":"13466:26:8","nodeType":"YulExpressionStatement","src":"13466:26:8"}]},"name":"calculatePl","nativeSrc":"12873:651:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"pMem","nativeSrc":"12894:4:8","nodeType":"YulTypedName","src":"12894:4:8","type":""},{"name":"pPub","nativeSrc":"12900:4:8","nodeType":"YulTypedName","src":"12900:4:8","type":""}],"src":"12873:651:8"},{"body":{"nativeSrc":"13572:2162:8","nodeType":"YulBlock","src":"13572:2162:8","statements":[{"nativeSrc":"13590:5:8","nodeType":"YulVariableDeclaration","src":"13590:5:8","variables":[{"name":"t","nativeSrc":"13594:1:8","nodeType":"YulTypedName","src":"13594:1:8","type":""}]},{"nativeSrc":"13612:6:8","nodeType":"YulVariableDeclaration","src":"13612:6:8","variables":[{"name":"t1","nativeSrc":"13616:2:8","nodeType":"YulTypedName","src":"13616:2:8","type":""}]},{"nativeSrc":"13635:6:8","nodeType":"YulVariableDeclaration","src":"13635:6:8","variables":[{"name":"t2","nativeSrc":"13639:2:8","nodeType":"YulTypedName","src":"13639:2:8","type":""}]},{"nativeSrc":"13658:146:8","nodeType":"YulAssignment","src":"13658:146:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"13701:6:8","nodeType":"YulIdentifier","src":"13701:6:8"},{"name":"pEval_r","nativeSrc":"13709:7:8","nodeType":"YulIdentifier","src":"13709:7:8"}],"functionName":{"name":"add","nativeSrc":"13697:3:8","nodeType":"YulIdentifier","src":"13697:3:8"},"nativeSrc":"13697:20:8","nodeType":"YulFunctionCall","src":"13697:20:8"}],"functionName":{"name":"mload","nativeSrc":"13691:5:8","nodeType":"YulIdentifier","src":"13691:5:8"},"nativeSrc":"13691:27:8","nodeType":"YulFunctionCall","src":"13691:27:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"13751:4:8","nodeType":"YulIdentifier","src":"13751:4:8"},{"name":"pPl","nativeSrc":"13757:3:8","nodeType":"YulIdentifier","src":"13757:3:8"}],"functionName":{"name":"add","nativeSrc":"13747:3:8","nodeType":"YulIdentifier","src":"13747:3:8"},"nativeSrc":"13747:14:8","nodeType":"YulFunctionCall","src":"13747:14:8"}],"functionName":{"name":"mload","nativeSrc":"13741:5:8","nodeType":"YulIdentifier","src":"13741:5:8"},"nativeSrc":"13741:21:8","nodeType":"YulFunctionCall","src":"13741:21:8"},{"name":"q","nativeSrc":"13785:1:8","nodeType":"YulIdentifier","src":"13785:1:8"}],"functionName":{"name":"addmod","nativeSrc":"13663:6:8","nodeType":"YulIdentifier","src":"13663:6:8"},"nativeSrc":"13663:141:8","nodeType":"YulFunctionCall","src":"13663:141:8"},"variableNames":[{"name":"t","nativeSrc":"13658:1:8","nodeType":"YulIdentifier","src":"13658:1:8"}]},{"nativeSrc":"13838:148:8","nodeType":"YulAssignment","src":"13838:148:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"13882:6:8","nodeType":"YulIdentifier","src":"13882:6:8"},{"name":"pEval_s1","nativeSrc":"13890:8:8","nodeType":"YulIdentifier","src":"13890:8:8"}],"functionName":{"name":"add","nativeSrc":"13878:3:8","nodeType":"YulIdentifier","src":"13878:3:8"},"nativeSrc":"13878:21:8","nodeType":"YulFunctionCall","src":"13878:21:8"}],"functionName":{"name":"mload","nativeSrc":"13872:5:8","nodeType":"YulIdentifier","src":"13872:5:8"},"nativeSrc":"13872:28:8","nodeType":"YulFunctionCall","src":"13872:28:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"13932:4:8","nodeType":"YulIdentifier","src":"13932:4:8"},{"name":"pBeta","nativeSrc":"13938:5:8","nodeType":"YulIdentifier","src":"13938:5:8"}],"functionName":{"name":"add","nativeSrc":"13928:3:8","nodeType":"YulIdentifier","src":"13928:3:8"},"nativeSrc":"13928:16:8","nodeType":"YulFunctionCall","src":"13928:16:8"}],"functionName":{"name":"mload","nativeSrc":"13922:5:8","nodeType":"YulIdentifier","src":"13922:5:8"},"nativeSrc":"13922:23:8","nodeType":"YulFunctionCall","src":"13922:23:8"},{"name":"q","nativeSrc":"13967:1:8","nodeType":"YulIdentifier","src":"13967:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"13844:6:8","nodeType":"YulIdentifier","src":"13844:6:8"},"nativeSrc":"13844:142:8","nodeType":"YulFunctionCall","src":"13844:142:8"},"variableNames":[{"name":"t1","nativeSrc":"13838:2:8","nodeType":"YulIdentifier","src":"13838:2:8"}]},{"nativeSrc":"14004:126:8","nodeType":"YulAssignment","src":"14004:126:8","value":{"arguments":[{"name":"t1","nativeSrc":"14038:2:8","nodeType":"YulIdentifier","src":"14038:2:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"14072:6:8","nodeType":"YulIdentifier","src":"14072:6:8"},{"name":"pEval_a","nativeSrc":"14080:7:8","nodeType":"YulIdentifier","src":"14080:7:8"}],"functionName":{"name":"add","nativeSrc":"14068:3:8","nodeType":"YulIdentifier","src":"14068:3:8"},"nativeSrc":"14068:20:8","nodeType":"YulFunctionCall","src":"14068:20:8"}],"functionName":{"name":"mload","nativeSrc":"14062:5:8","nodeType":"YulIdentifier","src":"14062:5:8"},"nativeSrc":"14062:27:8","nodeType":"YulFunctionCall","src":"14062:27:8"},{"name":"q","nativeSrc":"14111:1:8","nodeType":"YulIdentifier","src":"14111:1:8"}],"functionName":{"name":"addmod","nativeSrc":"14010:6:8","nodeType":"YulIdentifier","src":"14010:6:8"},"nativeSrc":"14010:120:8","nodeType":"YulFunctionCall","src":"14010:120:8"},"variableNames":[{"name":"t1","nativeSrc":"14004:2:8","nodeType":"YulIdentifier","src":"14004:2:8"}]},{"nativeSrc":"14164:123:8","nodeType":"YulAssignment","src":"14164:123:8","value":{"arguments":[{"name":"t1","nativeSrc":"14198:2:8","nodeType":"YulIdentifier","src":"14198:2:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"14232:4:8","nodeType":"YulIdentifier","src":"14232:4:8"},{"name":"pGamma","nativeSrc":"14238:6:8","nodeType":"YulIdentifier","src":"14238:6:8"}],"functionName":{"name":"add","nativeSrc":"14228:3:8","nodeType":"YulIdentifier","src":"14228:3:8"},"nativeSrc":"14228:17:8","nodeType":"YulFunctionCall","src":"14228:17:8"}],"functionName":{"name":"mload","nativeSrc":"14222:5:8","nodeType":"YulIdentifier","src":"14222:5:8"},"nativeSrc":"14222:24:8","nodeType":"YulFunctionCall","src":"14222:24:8"},{"name":"q","nativeSrc":"14268:1:8","nodeType":"YulIdentifier","src":"14268:1:8"}],"functionName":{"name":"addmod","nativeSrc":"14170:6:8","nodeType":"YulIdentifier","src":"14170:6:8"},"nativeSrc":"14170:117:8","nodeType":"YulFunctionCall","src":"14170:117:8"},"variableNames":[{"name":"t1","nativeSrc":"14164:2:8","nodeType":"YulIdentifier","src":"14164:2:8"}]},{"nativeSrc":"14305:148:8","nodeType":"YulAssignment","src":"14305:148:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"14349:6:8","nodeType":"YulIdentifier","src":"14349:6:8"},{"name":"pEval_s2","nativeSrc":"14357:8:8","nodeType":"YulIdentifier","src":"14357:8:8"}],"functionName":{"name":"add","nativeSrc":"14345:3:8","nodeType":"YulIdentifier","src":"14345:3:8"},"nativeSrc":"14345:21:8","nodeType":"YulFunctionCall","src":"14345:21:8"}],"functionName":{"name":"mload","nativeSrc":"14339:5:8","nodeType":"YulIdentifier","src":"14339:5:8"},"nativeSrc":"14339:28:8","nodeType":"YulFunctionCall","src":"14339:28:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"14399:4:8","nodeType":"YulIdentifier","src":"14399:4:8"},{"name":"pBeta","nativeSrc":"14405:5:8","nodeType":"YulIdentifier","src":"14405:5:8"}],"functionName":{"name":"add","nativeSrc":"14395:3:8","nodeType":"YulIdentifier","src":"14395:3:8"},"nativeSrc":"14395:16:8","nodeType":"YulFunctionCall","src":"14395:16:8"}],"functionName":{"name":"mload","nativeSrc":"14389:5:8","nodeType":"YulIdentifier","src":"14389:5:8"},"nativeSrc":"14389:23:8","nodeType":"YulFunctionCall","src":"14389:23:8"},{"name":"q","nativeSrc":"14434:1:8","nodeType":"YulIdentifier","src":"14434:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"14311:6:8","nodeType":"YulIdentifier","src":"14311:6:8"},"nativeSrc":"14311:142:8","nodeType":"YulFunctionCall","src":"14311:142:8"},"variableNames":[{"name":"t2","nativeSrc":"14305:2:8","nodeType":"YulIdentifier","src":"14305:2:8"}]},{"nativeSrc":"14471:126:8","nodeType":"YulAssignment","src":"14471:126:8","value":{"arguments":[{"name":"t2","nativeSrc":"14505:2:8","nodeType":"YulIdentifier","src":"14505:2:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"14539:6:8","nodeType":"YulIdentifier","src":"14539:6:8"},{"name":"pEval_b","nativeSrc":"14547:7:8","nodeType":"YulIdentifier","src":"14547:7:8"}],"functionName":{"name":"add","nativeSrc":"14535:3:8","nodeType":"YulIdentifier","src":"14535:3:8"},"nativeSrc":"14535:20:8","nodeType":"YulFunctionCall","src":"14535:20:8"}],"functionName":{"name":"mload","nativeSrc":"14529:5:8","nodeType":"YulIdentifier","src":"14529:5:8"},"nativeSrc":"14529:27:8","nodeType":"YulFunctionCall","src":"14529:27:8"},{"name":"q","nativeSrc":"14578:1:8","nodeType":"YulIdentifier","src":"14578:1:8"}],"functionName":{"name":"addmod","nativeSrc":"14477:6:8","nodeType":"YulIdentifier","src":"14477:6:8"},"nativeSrc":"14477:120:8","nodeType":"YulFunctionCall","src":"14477:120:8"},"variableNames":[{"name":"t2","nativeSrc":"14471:2:8","nodeType":"YulIdentifier","src":"14471:2:8"}]},{"nativeSrc":"14631:123:8","nodeType":"YulAssignment","src":"14631:123:8","value":{"arguments":[{"name":"t2","nativeSrc":"14665:2:8","nodeType":"YulIdentifier","src":"14665:2:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"14699:4:8","nodeType":"YulIdentifier","src":"14699:4:8"},{"name":"pGamma","nativeSrc":"14705:6:8","nodeType":"YulIdentifier","src":"14705:6:8"}],"functionName":{"name":"add","nativeSrc":"14695:3:8","nodeType":"YulIdentifier","src":"14695:3:8"},"nativeSrc":"14695:17:8","nodeType":"YulFunctionCall","src":"14695:17:8"}],"functionName":{"name":"mload","nativeSrc":"14689:5:8","nodeType":"YulIdentifier","src":"14689:5:8"},"nativeSrc":"14689:24:8","nodeType":"YulFunctionCall","src":"14689:24:8"},{"name":"q","nativeSrc":"14735:1:8","nodeType":"YulIdentifier","src":"14735:1:8"}],"functionName":{"name":"addmod","nativeSrc":"14637:6:8","nodeType":"YulIdentifier","src":"14637:6:8"},"nativeSrc":"14637:117:8","nodeType":"YulFunctionCall","src":"14637:117:8"},"variableNames":[{"name":"t2","nativeSrc":"14631:2:8","nodeType":"YulIdentifier","src":"14631:2:8"}]},{"nativeSrc":"14788:23:8","nodeType":"YulAssignment","src":"14788:23:8","value":{"arguments":[{"name":"t1","nativeSrc":"14801:2:8","nodeType":"YulIdentifier","src":"14801:2:8"},{"name":"t2","nativeSrc":"14805:2:8","nodeType":"YulIdentifier","src":"14805:2:8"},{"name":"q","nativeSrc":"14809:1:8","nodeType":"YulIdentifier","src":"14809:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"14794:6:8","nodeType":"YulIdentifier","src":"14794:6:8"},"nativeSrc":"14794:17:8","nodeType":"YulFunctionCall","src":"14794:17:8"},"variableNames":[{"name":"t1","nativeSrc":"14788:2:8","nodeType":"YulIdentifier","src":"14788:2:8"}]},{"nativeSrc":"14845:148:8","nodeType":"YulAssignment","src":"14845:148:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"14889:6:8","nodeType":"YulIdentifier","src":"14889:6:8"},{"name":"pEval_c","nativeSrc":"14897:7:8","nodeType":"YulIdentifier","src":"14897:7:8"}],"functionName":{"name":"add","nativeSrc":"14885:3:8","nodeType":"YulIdentifier","src":"14885:3:8"},"nativeSrc":"14885:20:8","nodeType":"YulFunctionCall","src":"14885:20:8"}],"functionName":{"name":"mload","nativeSrc":"14879:5:8","nodeType":"YulIdentifier","src":"14879:5:8"},"nativeSrc":"14879:27:8","nodeType":"YulFunctionCall","src":"14879:27:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"14938:4:8","nodeType":"YulIdentifier","src":"14938:4:8"},{"name":"pGamma","nativeSrc":"14944:6:8","nodeType":"YulIdentifier","src":"14944:6:8"}],"functionName":{"name":"add","nativeSrc":"14934:3:8","nodeType":"YulIdentifier","src":"14934:3:8"},"nativeSrc":"14934:17:8","nodeType":"YulFunctionCall","src":"14934:17:8"}],"functionName":{"name":"mload","nativeSrc":"14928:5:8","nodeType":"YulIdentifier","src":"14928:5:8"},"nativeSrc":"14928:24:8","nodeType":"YulFunctionCall","src":"14928:24:8"},{"name":"q","nativeSrc":"14974:1:8","nodeType":"YulIdentifier","src":"14974:1:8"}],"functionName":{"name":"addmod","nativeSrc":"14851:6:8","nodeType":"YulIdentifier","src":"14851:6:8"},"nativeSrc":"14851:142:8","nodeType":"YulFunctionCall","src":"14851:142:8"},"variableNames":[{"name":"t2","nativeSrc":"14845:2:8","nodeType":"YulIdentifier","src":"14845:2:8"}]},{"nativeSrc":"15011:23:8","nodeType":"YulAssignment","src":"15011:23:8","value":{"arguments":[{"name":"t1","nativeSrc":"15024:2:8","nodeType":"YulIdentifier","src":"15024:2:8"},{"name":"t2","nativeSrc":"15028:2:8","nodeType":"YulIdentifier","src":"15028:2:8"},{"name":"q","nativeSrc":"15032:1:8","nodeType":"YulIdentifier","src":"15032:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"15017:6:8","nodeType":"YulIdentifier","src":"15017:6:8"},"nativeSrc":"15017:17:8","nodeType":"YulFunctionCall","src":"15017:17:8"},"variableNames":[{"name":"t1","nativeSrc":"15011:2:8","nodeType":"YulIdentifier","src":"15011:2:8"}]},{"nativeSrc":"15051:49:8","nodeType":"YulAssignment","src":"15051:49:8","value":{"arguments":[{"name":"t1","nativeSrc":"15064:2:8","nodeType":"YulIdentifier","src":"15064:2:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"15078:6:8","nodeType":"YulIdentifier","src":"15078:6:8"},{"name":"pEval_zw","nativeSrc":"15086:8:8","nodeType":"YulIdentifier","src":"15086:8:8"}],"functionName":{"name":"add","nativeSrc":"15074:3:8","nodeType":"YulIdentifier","src":"15074:3:8"},"nativeSrc":"15074:21:8","nodeType":"YulFunctionCall","src":"15074:21:8"}],"functionName":{"name":"mload","nativeSrc":"15068:5:8","nodeType":"YulIdentifier","src":"15068:5:8"},"nativeSrc":"15068:28:8","nodeType":"YulFunctionCall","src":"15068:28:8"},{"name":"q","nativeSrc":"15098:1:8","nodeType":"YulIdentifier","src":"15098:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"15057:6:8","nodeType":"YulIdentifier","src":"15057:6:8"},"nativeSrc":"15057:43:8","nodeType":"YulFunctionCall","src":"15057:43:8"},"variableNames":[{"name":"t1","nativeSrc":"15051:2:8","nodeType":"YulIdentifier","src":"15051:2:8"}]},{"nativeSrc":"15117:45:8","nodeType":"YulAssignment","src":"15117:45:8","value":{"arguments":[{"name":"t1","nativeSrc":"15130:2:8","nodeType":"YulIdentifier","src":"15130:2:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15144:4:8","nodeType":"YulIdentifier","src":"15144:4:8"},{"name":"pAlpha","nativeSrc":"15150:6:8","nodeType":"YulIdentifier","src":"15150:6:8"}],"functionName":{"name":"add","nativeSrc":"15140:3:8","nodeType":"YulIdentifier","src":"15140:3:8"},"nativeSrc":"15140:17:8","nodeType":"YulFunctionCall","src":"15140:17:8"}],"functionName":{"name":"mload","nativeSrc":"15134:5:8","nodeType":"YulIdentifier","src":"15134:5:8"},"nativeSrc":"15134:24:8","nodeType":"YulFunctionCall","src":"15134:24:8"},{"name":"q","nativeSrc":"15160:1:8","nodeType":"YulIdentifier","src":"15160:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"15123:6:8","nodeType":"YulIdentifier","src":"15123:6:8"},"nativeSrc":"15123:39:8","nodeType":"YulFunctionCall","src":"15123:39:8"},"variableNames":[{"name":"t1","nativeSrc":"15117:2:8","nodeType":"YulIdentifier","src":"15117:2:8"}]},{"nativeSrc":"15196:149:8","nodeType":"YulAssignment","src":"15196:149:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15240:4:8","nodeType":"YulIdentifier","src":"15240:4:8"},{"name":"pEval_l1","nativeSrc":"15246:8:8","nodeType":"YulIdentifier","src":"15246:8:8"}],"functionName":{"name":"add","nativeSrc":"15236:3:8","nodeType":"YulIdentifier","src":"15236:3:8"},"nativeSrc":"15236:19:8","nodeType":"YulFunctionCall","src":"15236:19:8"}],"functionName":{"name":"mload","nativeSrc":"15230:5:8","nodeType":"YulIdentifier","src":"15230:5:8"},"nativeSrc":"15230:26:8","nodeType":"YulFunctionCall","src":"15230:26:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15289:4:8","nodeType":"YulIdentifier","src":"15289:4:8"},{"name":"pAlpha","nativeSrc":"15295:6:8","nodeType":"YulIdentifier","src":"15295:6:8"}],"functionName":{"name":"add","nativeSrc":"15285:3:8","nodeType":"YulIdentifier","src":"15285:3:8"},"nativeSrc":"15285:17:8","nodeType":"YulFunctionCall","src":"15285:17:8"}],"functionName":{"name":"mload","nativeSrc":"15279:5:8","nodeType":"YulIdentifier","src":"15279:5:8"},"nativeSrc":"15279:24:8","nodeType":"YulFunctionCall","src":"15279:24:8"},{"name":"q","nativeSrc":"15326:1:8","nodeType":"YulIdentifier","src":"15326:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"15202:6:8","nodeType":"YulIdentifier","src":"15202:6:8"},"nativeSrc":"15202:143:8","nodeType":"YulFunctionCall","src":"15202:143:8"},"variableNames":[{"name":"t2","nativeSrc":"15196:2:8","nodeType":"YulIdentifier","src":"15196:2:8"}]},{"nativeSrc":"15363:125:8","nodeType":"YulAssignment","src":"15363:125:8","value":{"arguments":[{"name":"t2","nativeSrc":"15397:2:8","nodeType":"YulIdentifier","src":"15397:2:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15432:4:8","nodeType":"YulIdentifier","src":"15432:4:8"},{"name":"pAlpha","nativeSrc":"15438:6:8","nodeType":"YulIdentifier","src":"15438:6:8"}],"functionName":{"name":"add","nativeSrc":"15428:3:8","nodeType":"YulIdentifier","src":"15428:3:8"},"nativeSrc":"15428:17:8","nodeType":"YulFunctionCall","src":"15428:17:8"}],"functionName":{"name":"mload","nativeSrc":"15422:5:8","nodeType":"YulIdentifier","src":"15422:5:8"},"nativeSrc":"15422:24:8","nodeType":"YulFunctionCall","src":"15422:24:8"},{"name":"q","nativeSrc":"15469:1:8","nodeType":"YulIdentifier","src":"15469:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"15369:6:8","nodeType":"YulIdentifier","src":"15369:6:8"},"nativeSrc":"15369:119:8","nodeType":"YulFunctionCall","src":"15369:119:8"},"variableNames":[{"name":"t2","nativeSrc":"15363:2:8","nodeType":"YulIdentifier","src":"15363:2:8"}]},{"nativeSrc":"15506:23:8","nodeType":"YulAssignment","src":"15506:23:8","value":{"arguments":[{"name":"t1","nativeSrc":"15519:2:8","nodeType":"YulIdentifier","src":"15519:2:8"},{"name":"t2","nativeSrc":"15523:2:8","nodeType":"YulIdentifier","src":"15523:2:8"},{"name":"q","nativeSrc":"15527:1:8","nodeType":"YulIdentifier","src":"15527:1:8"}],"functionName":{"name":"addmod","nativeSrc":"15512:6:8","nodeType":"YulIdentifier","src":"15512:6:8"},"nativeSrc":"15512:17:8","nodeType":"YulFunctionCall","src":"15512:17:8"},"variableNames":[{"name":"t1","nativeSrc":"15506:2:8","nodeType":"YulIdentifier","src":"15506:2:8"}]},{"nativeSrc":"15563:31:8","nodeType":"YulAssignment","src":"15563:31:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"t","nativeSrc":"15580:1:8","nodeType":"YulIdentifier","src":"15580:1:8"},{"name":"q","nativeSrc":"15583:1:8","nodeType":"YulIdentifier","src":"15583:1:8"}],"functionName":{"name":"add","nativeSrc":"15576:3:8","nodeType":"YulIdentifier","src":"15576:3:8"},"nativeSrc":"15576:9:8","nodeType":"YulFunctionCall","src":"15576:9:8"},{"name":"t1","nativeSrc":"15587:2:8","nodeType":"YulIdentifier","src":"15587:2:8"}],"functionName":{"name":"sub","nativeSrc":"15572:3:8","nodeType":"YulIdentifier","src":"15572:3:8"},"nativeSrc":"15572:18:8","nodeType":"YulFunctionCall","src":"15572:18:8"},{"name":"q","nativeSrc":"15592:1:8","nodeType":"YulIdentifier","src":"15592:1:8"}],"functionName":{"name":"mod","nativeSrc":"15568:3:8","nodeType":"YulIdentifier","src":"15568:3:8"},"nativeSrc":"15568:26:8","nodeType":"YulFunctionCall","src":"15568:26:8"},"variableNames":[{"name":"t","nativeSrc":"15563:1:8","nodeType":"YulIdentifier","src":"15563:1:8"}]},{"nativeSrc":"15611:43:8","nodeType":"YulAssignment","src":"15611:43:8","value":{"arguments":[{"name":"t","nativeSrc":"15623:1:8","nodeType":"YulIdentifier","src":"15623:1:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15636:4:8","nodeType":"YulIdentifier","src":"15636:4:8"},{"name":"pZhInv","nativeSrc":"15642:6:8","nodeType":"YulIdentifier","src":"15642:6:8"}],"functionName":{"name":"add","nativeSrc":"15632:3:8","nodeType":"YulIdentifier","src":"15632:3:8"},"nativeSrc":"15632:17:8","nodeType":"YulFunctionCall","src":"15632:17:8"}],"functionName":{"name":"mload","nativeSrc":"15626:5:8","nodeType":"YulIdentifier","src":"15626:5:8"},"nativeSrc":"15626:24:8","nodeType":"YulFunctionCall","src":"15626:24:8"},{"name":"q","nativeSrc":"15652:1:8","nodeType":"YulIdentifier","src":"15652:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"15616:6:8","nodeType":"YulIdentifier","src":"15616:6:8"},"nativeSrc":"15616:38:8","nodeType":"YulFunctionCall","src":"15616:38:8"},"variableNames":[{"name":"t","nativeSrc":"15611:1:8","nodeType":"YulIdentifier","src":"15611:1:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"15700:4:8","nodeType":"YulIdentifier","src":"15700:4:8"},{"name":"pEval_t","nativeSrc":"15706:7:8","nodeType":"YulIdentifier","src":"15706:7:8"}],"functionName":{"name":"add","nativeSrc":"15696:3:8","nodeType":"YulIdentifier","src":"15696:3:8"},"nativeSrc":"15696:18:8","nodeType":"YulFunctionCall","src":"15696:18:8"},{"name":"t","nativeSrc":"15717:1:8","nodeType":"YulIdentifier","src":"15717:1:8"}],"functionName":{"name":"mstore","nativeSrc":"15688:6:8","nodeType":"YulIdentifier","src":"15688:6:8"},"nativeSrc":"15688:31:8","nodeType":"YulFunctionCall","src":"15688:31:8"},"nativeSrc":"15688:31:8","nodeType":"YulExpressionStatement","src":"15688:31:8"}]},"name":"calculateT","nativeSrc":"13538:2196:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"pProof","nativeSrc":"13558:6:8","nodeType":"YulTypedName","src":"13558:6:8","type":""},{"name":"pMem","nativeSrc":"13566:4:8","nodeType":"YulTypedName","src":"13566:4:8","type":""}],"src":"13538:2196:8"},{"body":{"nativeSrc":"15784:108:8","nodeType":"YulBlock","src":"15784:108:8","statements":[{"expression":{"arguments":[{"name":"pR","nativeSrc":"15809:2:8","nodeType":"YulIdentifier","src":"15809:2:8"},{"arguments":[{"name":"pP","nativeSrc":"15819:2:8","nodeType":"YulIdentifier","src":"15819:2:8"}],"functionName":{"name":"mload","nativeSrc":"15813:5:8","nodeType":"YulIdentifier","src":"15813:5:8"},"nativeSrc":"15813:9:8","nodeType":"YulFunctionCall","src":"15813:9:8"}],"functionName":{"name":"mstore","nativeSrc":"15802:6:8","nodeType":"YulIdentifier","src":"15802:6:8"},"nativeSrc":"15802:21:8","nodeType":"YulFunctionCall","src":"15802:21:8"},"nativeSrc":"15802:21:8","nodeType":"YulExpressionStatement","src":"15802:21:8"},{"expression":{"arguments":[{"arguments":[{"name":"pR","nativeSrc":"15851:2:8","nodeType":"YulIdentifier","src":"15851:2:8"},{"kind":"number","nativeSrc":"15855:2:8","nodeType":"YulLiteral","src":"15855:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15847:3:8","nodeType":"YulIdentifier","src":"15847:3:8"},"nativeSrc":"15847:11:8","nodeType":"YulFunctionCall","src":"15847:11:8"},{"arguments":[{"arguments":[{"name":"pP","nativeSrc":"15870:2:8","nodeType":"YulIdentifier","src":"15870:2:8"},{"kind":"number","nativeSrc":"15873:2:8","nodeType":"YulLiteral","src":"15873:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15866:3:8","nodeType":"YulIdentifier","src":"15866:3:8"},"nativeSrc":"15866:10:8","nodeType":"YulFunctionCall","src":"15866:10:8"}],"functionName":{"name":"mload","nativeSrc":"15860:5:8","nodeType":"YulIdentifier","src":"15860:5:8"},"nativeSrc":"15860:17:8","nodeType":"YulFunctionCall","src":"15860:17:8"}],"functionName":{"name":"mstore","nativeSrc":"15840:6:8","nodeType":"YulIdentifier","src":"15840:6:8"},"nativeSrc":"15840:38:8","nodeType":"YulFunctionCall","src":"15840:38:8"},"nativeSrc":"15840:38:8","nodeType":"YulExpressionStatement","src":"15840:38:8"}]},"name":"g1_set","nativeSrc":"15760:132:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"pR","nativeSrc":"15776:2:8","nodeType":"YulTypedName","src":"15776:2:8","type":""},{"name":"pP","nativeSrc":"15780:2:8","nodeType":"YulTypedName","src":"15780:2:8","type":""}],"src":"15760:132:8"},{"body":{"nativeSrc":"15930:474:8","nodeType":"YulBlock","src":"15930:474:8","statements":[{"nativeSrc":"15948:22:8","nodeType":"YulVariableDeclaration","src":"15948:22:8","value":{"arguments":[{"kind":"number","nativeSrc":"15965:4:8","nodeType":"YulLiteral","src":"15965:4:8","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"15959:5:8","nodeType":"YulIdentifier","src":"15959:5:8"},"nativeSrc":"15959:11:8","nodeType":"YulFunctionCall","src":"15959:11:8"},"variables":[{"name":"mIn","nativeSrc":"15952:3:8","nodeType":"YulTypedName","src":"15952:3:8","type":""}]},{"expression":{"arguments":[{"name":"mIn","nativeSrc":"15994:3:8","nodeType":"YulIdentifier","src":"15994:3:8"},{"arguments":[{"name":"pR","nativeSrc":"16005:2:8","nodeType":"YulIdentifier","src":"16005:2:8"}],"functionName":{"name":"mload","nativeSrc":"15999:5:8","nodeType":"YulIdentifier","src":"15999:5:8"},"nativeSrc":"15999:9:8","nodeType":"YulFunctionCall","src":"15999:9:8"}],"functionName":{"name":"mstore","nativeSrc":"15987:6:8","nodeType":"YulIdentifier","src":"15987:6:8"},"nativeSrc":"15987:22:8","nodeType":"YulFunctionCall","src":"15987:22:8"},"nativeSrc":"15987:22:8","nodeType":"YulExpressionStatement","src":"15987:22:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16037:3:8","nodeType":"YulIdentifier","src":"16037:3:8"},{"kind":"number","nativeSrc":"16041:2:8","nodeType":"YulLiteral","src":"16041:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16033:3:8","nodeType":"YulIdentifier","src":"16033:3:8"},"nativeSrc":"16033:11:8","nodeType":"YulFunctionCall","src":"16033:11:8"},{"arguments":[{"arguments":[{"name":"pR","nativeSrc":"16056:2:8","nodeType":"YulIdentifier","src":"16056:2:8"},{"kind":"number","nativeSrc":"16060:2:8","nodeType":"YulLiteral","src":"16060:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16052:3:8","nodeType":"YulIdentifier","src":"16052:3:8"},"nativeSrc":"16052:11:8","nodeType":"YulFunctionCall","src":"16052:11:8"}],"functionName":{"name":"mload","nativeSrc":"16046:5:8","nodeType":"YulIdentifier","src":"16046:5:8"},"nativeSrc":"16046:18:8","nodeType":"YulFunctionCall","src":"16046:18:8"}],"functionName":{"name":"mstore","nativeSrc":"16026:6:8","nodeType":"YulIdentifier","src":"16026:6:8"},"nativeSrc":"16026:39:8","nodeType":"YulFunctionCall","src":"16026:39:8"},"nativeSrc":"16026:39:8","nodeType":"YulExpressionStatement","src":"16026:39:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16093:3:8","nodeType":"YulIdentifier","src":"16093:3:8"},{"kind":"number","nativeSrc":"16097:2:8","nodeType":"YulLiteral","src":"16097:2:8","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16089:3:8","nodeType":"YulIdentifier","src":"16089:3:8"},"nativeSrc":"16089:11:8","nodeType":"YulFunctionCall","src":"16089:11:8"},{"arguments":[{"name":"pP","nativeSrc":"16108:2:8","nodeType":"YulIdentifier","src":"16108:2:8"}],"functionName":{"name":"mload","nativeSrc":"16102:5:8","nodeType":"YulIdentifier","src":"16102:5:8"},"nativeSrc":"16102:9:8","nodeType":"YulFunctionCall","src":"16102:9:8"}],"functionName":{"name":"mstore","nativeSrc":"16082:6:8","nodeType":"YulIdentifier","src":"16082:6:8"},"nativeSrc":"16082:30:8","nodeType":"YulFunctionCall","src":"16082:30:8"},"nativeSrc":"16082:30:8","nodeType":"YulExpressionStatement","src":"16082:30:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16140:3:8","nodeType":"YulIdentifier","src":"16140:3:8"},{"kind":"number","nativeSrc":"16144:2:8","nodeType":"YulLiteral","src":"16144:2:8","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16136:3:8","nodeType":"YulIdentifier","src":"16136:3:8"},"nativeSrc":"16136:11:8","nodeType":"YulFunctionCall","src":"16136:11:8"},{"arguments":[{"arguments":[{"name":"pP","nativeSrc":"16159:2:8","nodeType":"YulIdentifier","src":"16159:2:8"},{"kind":"number","nativeSrc":"16163:2:8","nodeType":"YulLiteral","src":"16163:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16155:3:8","nodeType":"YulIdentifier","src":"16155:3:8"},"nativeSrc":"16155:11:8","nodeType":"YulFunctionCall","src":"16155:11:8"}],"functionName":{"name":"mload","nativeSrc":"16149:5:8","nodeType":"YulIdentifier","src":"16149:5:8"},"nativeSrc":"16149:18:8","nodeType":"YulFunctionCall","src":"16149:18:8"}],"functionName":{"name":"mstore","nativeSrc":"16129:6:8","nodeType":"YulIdentifier","src":"16129:6:8"},"nativeSrc":"16129:39:8","nodeType":"YulFunctionCall","src":"16129:39:8"},"nativeSrc":"16129:39:8","nodeType":"YulExpressionStatement","src":"16129:39:8"},{"nativeSrc":"16186:64:8","nodeType":"YulVariableDeclaration","src":"16186:64:8","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"16216:3:8","nodeType":"YulIdentifier","src":"16216:3:8"},"nativeSrc":"16216:5:8","nodeType":"YulFunctionCall","src":"16216:5:8"},{"kind":"number","nativeSrc":"16223:4:8","nodeType":"YulLiteral","src":"16223:4:8","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"16212:3:8","nodeType":"YulIdentifier","src":"16212:3:8"},"nativeSrc":"16212:16:8","nodeType":"YulFunctionCall","src":"16212:16:8"},{"kind":"number","nativeSrc":"16230:1:8","nodeType":"YulLiteral","src":"16230:1:8","type":"","value":"6"},{"name":"mIn","nativeSrc":"16233:3:8","nodeType":"YulIdentifier","src":"16233:3:8"},{"kind":"number","nativeSrc":"16238:3:8","nodeType":"YulLiteral","src":"16238:3:8","type":"","value":"128"},{"name":"pR","nativeSrc":"16243:2:8","nodeType":"YulIdentifier","src":"16243:2:8"},{"kind":"number","nativeSrc":"16247:2:8","nodeType":"YulLiteral","src":"16247:2:8","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"16201:10:8","nodeType":"YulIdentifier","src":"16201:10:8"},"nativeSrc":"16201:49:8","nodeType":"YulFunctionCall","src":"16201:49:8"},"variables":[{"name":"success","nativeSrc":"16190:7:8","nodeType":"YulTypedName","src":"16190:7:8","type":""}]},{"body":{"nativeSrc":"16303:87:8","nodeType":"YulBlock","src":"16303:87:8","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16332:1:8","nodeType":"YulLiteral","src":"16332:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"16335:1:8","nodeType":"YulLiteral","src":"16335:1:8","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16325:6:8","nodeType":"YulIdentifier","src":"16325:6:8"},"nativeSrc":"16325:12:8","nodeType":"YulFunctionCall","src":"16325:12:8"},"nativeSrc":"16325:12:8","nodeType":"YulExpressionStatement","src":"16325:12:8"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16365:1:8","nodeType":"YulLiteral","src":"16365:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"16367:4:8","nodeType":"YulLiteral","src":"16367:4:8","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"16358:6:8","nodeType":"YulIdentifier","src":"16358:6:8"},"nativeSrc":"16358:14:8","nodeType":"YulFunctionCall","src":"16358:14:8"},"nativeSrc":"16358:14:8","nodeType":"YulExpressionStatement","src":"16358:14:8"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"16294:7:8","nodeType":"YulIdentifier","src":"16294:7:8"}],"functionName":{"name":"iszero","nativeSrc":"16287:6:8","nodeType":"YulIdentifier","src":"16287:6:8"},"nativeSrc":"16287:15:8","nodeType":"YulFunctionCall","src":"16287:15:8"},"nativeSrc":"16284:106:8","nodeType":"YulIf","src":"16284:106:8"}]},"name":"g1_acc","nativeSrc":"15906:498:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"pR","nativeSrc":"15922:2:8","nodeType":"YulTypedName","src":"15922:2:8","type":""},{"name":"pP","nativeSrc":"15926:2:8","nodeType":"YulTypedName","src":"15926:2:8","type":""}],"src":"15906:498:8"},{"body":{"nativeSrc":"16448:789:8","nodeType":"YulBlock","src":"16448:789:8","statements":[{"nativeSrc":"16466:11:8","nodeType":"YulVariableDeclaration","src":"16466:11:8","variables":[{"name":"success","nativeSrc":"16470:7:8","nodeType":"YulTypedName","src":"16470:7:8","type":""}]},{"nativeSrc":"16494:22:8","nodeType":"YulVariableDeclaration","src":"16494:22:8","value":{"arguments":[{"kind":"number","nativeSrc":"16511:4:8","nodeType":"YulLiteral","src":"16511:4:8","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"16505:5:8","nodeType":"YulIdentifier","src":"16505:5:8"},"nativeSrc":"16505:11:8","nodeType":"YulFunctionCall","src":"16505:11:8"},"variables":[{"name":"mIn","nativeSrc":"16498:3:8","nodeType":"YulTypedName","src":"16498:3:8","type":""}]},{"expression":{"arguments":[{"name":"mIn","nativeSrc":"16540:3:8","nodeType":"YulIdentifier","src":"16540:3:8"},{"arguments":[{"name":"pP","nativeSrc":"16551:2:8","nodeType":"YulIdentifier","src":"16551:2:8"}],"functionName":{"name":"mload","nativeSrc":"16545:5:8","nodeType":"YulIdentifier","src":"16545:5:8"},"nativeSrc":"16545:9:8","nodeType":"YulFunctionCall","src":"16545:9:8"}],"functionName":{"name":"mstore","nativeSrc":"16533:6:8","nodeType":"YulIdentifier","src":"16533:6:8"},"nativeSrc":"16533:22:8","nodeType":"YulFunctionCall","src":"16533:22:8"},"nativeSrc":"16533:22:8","nodeType":"YulExpressionStatement","src":"16533:22:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16583:3:8","nodeType":"YulIdentifier","src":"16583:3:8"},{"kind":"number","nativeSrc":"16587:2:8","nodeType":"YulLiteral","src":"16587:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16579:3:8","nodeType":"YulIdentifier","src":"16579:3:8"},"nativeSrc":"16579:11:8","nodeType":"YulFunctionCall","src":"16579:11:8"},{"arguments":[{"arguments":[{"name":"pP","nativeSrc":"16602:2:8","nodeType":"YulIdentifier","src":"16602:2:8"},{"kind":"number","nativeSrc":"16606:2:8","nodeType":"YulLiteral","src":"16606:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16598:3:8","nodeType":"YulIdentifier","src":"16598:3:8"},"nativeSrc":"16598:11:8","nodeType":"YulFunctionCall","src":"16598:11:8"}],"functionName":{"name":"mload","nativeSrc":"16592:5:8","nodeType":"YulIdentifier","src":"16592:5:8"},"nativeSrc":"16592:18:8","nodeType":"YulFunctionCall","src":"16592:18:8"}],"functionName":{"name":"mstore","nativeSrc":"16572:6:8","nodeType":"YulIdentifier","src":"16572:6:8"},"nativeSrc":"16572:39:8","nodeType":"YulFunctionCall","src":"16572:39:8"},"nativeSrc":"16572:39:8","nodeType":"YulExpressionStatement","src":"16572:39:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16639:3:8","nodeType":"YulIdentifier","src":"16639:3:8"},{"kind":"number","nativeSrc":"16643:2:8","nodeType":"YulLiteral","src":"16643:2:8","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16635:3:8","nodeType":"YulIdentifier","src":"16635:3:8"},"nativeSrc":"16635:11:8","nodeType":"YulFunctionCall","src":"16635:11:8"},{"name":"s","nativeSrc":"16648:1:8","nodeType":"YulIdentifier","src":"16648:1:8"}],"functionName":{"name":"mstore","nativeSrc":"16628:6:8","nodeType":"YulIdentifier","src":"16628:6:8"},"nativeSrc":"16628:22:8","nodeType":"YulFunctionCall","src":"16628:22:8"},"nativeSrc":"16628:22:8","nodeType":"YulExpressionStatement","src":"16628:22:8"},{"nativeSrc":"16668:60:8","nodeType":"YulAssignment","src":"16668:60:8","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"16694:3:8","nodeType":"YulIdentifier","src":"16694:3:8"},"nativeSrc":"16694:5:8","nodeType":"YulFunctionCall","src":"16694:5:8"},{"kind":"number","nativeSrc":"16701:4:8","nodeType":"YulLiteral","src":"16701:4:8","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"16690:3:8","nodeType":"YulIdentifier","src":"16690:3:8"},"nativeSrc":"16690:16:8","nodeType":"YulFunctionCall","src":"16690:16:8"},{"kind":"number","nativeSrc":"16708:1:8","nodeType":"YulLiteral","src":"16708:1:8","type":"","value":"7"},{"name":"mIn","nativeSrc":"16711:3:8","nodeType":"YulIdentifier","src":"16711:3:8"},{"kind":"number","nativeSrc":"16716:2:8","nodeType":"YulLiteral","src":"16716:2:8","type":"","value":"96"},{"name":"mIn","nativeSrc":"16720:3:8","nodeType":"YulIdentifier","src":"16720:3:8"},{"kind":"number","nativeSrc":"16725:2:8","nodeType":"YulLiteral","src":"16725:2:8","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"16679:10:8","nodeType":"YulIdentifier","src":"16679:10:8"},"nativeSrc":"16679:49:8","nodeType":"YulFunctionCall","src":"16679:49:8"},"variableNames":[{"name":"success","nativeSrc":"16668:7:8","nodeType":"YulIdentifier","src":"16668:7:8"}]},{"body":{"nativeSrc":"16781:87:8","nodeType":"YulBlock","src":"16781:87:8","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16810:1:8","nodeType":"YulLiteral","src":"16810:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"16813:1:8","nodeType":"YulLiteral","src":"16813:1:8","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16803:6:8","nodeType":"YulIdentifier","src":"16803:6:8"},"nativeSrc":"16803:12:8","nodeType":"YulFunctionCall","src":"16803:12:8"},"nativeSrc":"16803:12:8","nodeType":"YulExpressionStatement","src":"16803:12:8"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16843:1:8","nodeType":"YulLiteral","src":"16843:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"16845:4:8","nodeType":"YulLiteral","src":"16845:4:8","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"16836:6:8","nodeType":"YulIdentifier","src":"16836:6:8"},"nativeSrc":"16836:14:8","nodeType":"YulFunctionCall","src":"16836:14:8"},"nativeSrc":"16836:14:8","nodeType":"YulExpressionStatement","src":"16836:14:8"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"16772:7:8","nodeType":"YulIdentifier","src":"16772:7:8"}],"functionName":{"name":"iszero","nativeSrc":"16765:6:8","nodeType":"YulIdentifier","src":"16765:6:8"},"nativeSrc":"16765:15:8","nodeType":"YulFunctionCall","src":"16765:15:8"},"nativeSrc":"16762:106:8","nodeType":"YulIf","src":"16762:106:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16913:3:8","nodeType":"YulIdentifier","src":"16913:3:8"},{"kind":"number","nativeSrc":"16917:2:8","nodeType":"YulLiteral","src":"16917:2:8","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16909:3:8","nodeType":"YulIdentifier","src":"16909:3:8"},"nativeSrc":"16909:11:8","nodeType":"YulFunctionCall","src":"16909:11:8"},{"arguments":[{"name":"pR","nativeSrc":"16928:2:8","nodeType":"YulIdentifier","src":"16928:2:8"}],"functionName":{"name":"mload","nativeSrc":"16922:5:8","nodeType":"YulIdentifier","src":"16922:5:8"},"nativeSrc":"16922:9:8","nodeType":"YulFunctionCall","src":"16922:9:8"}],"functionName":{"name":"mstore","nativeSrc":"16902:6:8","nodeType":"YulIdentifier","src":"16902:6:8"},"nativeSrc":"16902:30:8","nodeType":"YulFunctionCall","src":"16902:30:8"},"nativeSrc":"16902:30:8","nodeType":"YulExpressionStatement","src":"16902:30:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"16960:3:8","nodeType":"YulIdentifier","src":"16960:3:8"},{"kind":"number","nativeSrc":"16964:2:8","nodeType":"YulLiteral","src":"16964:2:8","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16956:3:8","nodeType":"YulIdentifier","src":"16956:3:8"},"nativeSrc":"16956:11:8","nodeType":"YulFunctionCall","src":"16956:11:8"},{"arguments":[{"arguments":[{"name":"pR","nativeSrc":"16979:2:8","nodeType":"YulIdentifier","src":"16979:2:8"},{"kind":"number","nativeSrc":"16983:2:8","nodeType":"YulLiteral","src":"16983:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16975:3:8","nodeType":"YulIdentifier","src":"16975:3:8"},"nativeSrc":"16975:11:8","nodeType":"YulFunctionCall","src":"16975:11:8"}],"functionName":{"name":"mload","nativeSrc":"16969:5:8","nodeType":"YulIdentifier","src":"16969:5:8"},"nativeSrc":"16969:18:8","nodeType":"YulFunctionCall","src":"16969:18:8"}],"functionName":{"name":"mstore","nativeSrc":"16949:6:8","nodeType":"YulIdentifier","src":"16949:6:8"},"nativeSrc":"16949:39:8","nodeType":"YulFunctionCall","src":"16949:39:8"},"nativeSrc":"16949:39:8","nodeType":"YulExpressionStatement","src":"16949:39:8"},{"nativeSrc":"17006:60:8","nodeType":"YulAssignment","src":"17006:60:8","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"17032:3:8","nodeType":"YulIdentifier","src":"17032:3:8"},"nativeSrc":"17032:5:8","nodeType":"YulFunctionCall","src":"17032:5:8"},{"kind":"number","nativeSrc":"17039:4:8","nodeType":"YulLiteral","src":"17039:4:8","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"17028:3:8","nodeType":"YulIdentifier","src":"17028:3:8"},"nativeSrc":"17028:16:8","nodeType":"YulFunctionCall","src":"17028:16:8"},{"kind":"number","nativeSrc":"17046:1:8","nodeType":"YulLiteral","src":"17046:1:8","type":"","value":"6"},{"name":"mIn","nativeSrc":"17049:3:8","nodeType":"YulIdentifier","src":"17049:3:8"},{"kind":"number","nativeSrc":"17054:3:8","nodeType":"YulLiteral","src":"17054:3:8","type":"","value":"128"},{"name":"pR","nativeSrc":"17059:2:8","nodeType":"YulIdentifier","src":"17059:2:8"},{"kind":"number","nativeSrc":"17063:2:8","nodeType":"YulLiteral","src":"17063:2:8","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"17017:10:8","nodeType":"YulIdentifier","src":"17017:10:8"},"nativeSrc":"17017:49:8","nodeType":"YulFunctionCall","src":"17017:49:8"},"variableNames":[{"name":"success","nativeSrc":"17006:7:8","nodeType":"YulIdentifier","src":"17006:7:8"}]},{"body":{"nativeSrc":"17119:87:8","nodeType":"YulBlock","src":"17119:87:8","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17148:1:8","nodeType":"YulLiteral","src":"17148:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"17151:1:8","nodeType":"YulLiteral","src":"17151:1:8","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17141:6:8","nodeType":"YulIdentifier","src":"17141:6:8"},"nativeSrc":"17141:12:8","nodeType":"YulFunctionCall","src":"17141:12:8"},"nativeSrc":"17141:12:8","nodeType":"YulExpressionStatement","src":"17141:12:8"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17181:1:8","nodeType":"YulLiteral","src":"17181:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"17183:4:8","nodeType":"YulLiteral","src":"17183:4:8","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"17174:6:8","nodeType":"YulIdentifier","src":"17174:6:8"},"nativeSrc":"17174:14:8","nodeType":"YulFunctionCall","src":"17174:14:8"},"nativeSrc":"17174:14:8","nodeType":"YulExpressionStatement","src":"17174:14:8"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"17110:7:8","nodeType":"YulIdentifier","src":"17110:7:8"}],"functionName":{"name":"iszero","nativeSrc":"17103:6:8","nodeType":"YulIdentifier","src":"17103:6:8"},"nativeSrc":"17103:15:8","nodeType":"YulFunctionCall","src":"17103:15:8"},"nativeSrc":"17100:106:8","nodeType":"YulIf","src":"17100:106:8"}]},"name":"g1_mulAcc","nativeSrc":"16418:819:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"pR","nativeSrc":"16437:2:8","nodeType":"YulTypedName","src":"16437:2:8","type":""},{"name":"pP","nativeSrc":"16441:2:8","nodeType":"YulTypedName","src":"16441:2:8","type":""},{"name":"s","nativeSrc":"16445:1:8","nodeType":"YulTypedName","src":"16445:1:8","type":""}],"src":"16418:819:8"},{"body":{"nativeSrc":"17284:747:8","nodeType":"YulBlock","src":"17284:747:8","statements":[{"nativeSrc":"17302:11:8","nodeType":"YulVariableDeclaration","src":"17302:11:8","variables":[{"name":"success","nativeSrc":"17306:7:8","nodeType":"YulTypedName","src":"17306:7:8","type":""}]},{"nativeSrc":"17330:22:8","nodeType":"YulVariableDeclaration","src":"17330:22:8","value":{"arguments":[{"kind":"number","nativeSrc":"17347:4:8","nodeType":"YulLiteral","src":"17347:4:8","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"17341:5:8","nodeType":"YulIdentifier","src":"17341:5:8"},"nativeSrc":"17341:11:8","nodeType":"YulFunctionCall","src":"17341:11:8"},"variables":[{"name":"mIn","nativeSrc":"17334:3:8","nodeType":"YulTypedName","src":"17334:3:8","type":""}]},{"expression":{"arguments":[{"name":"mIn","nativeSrc":"17376:3:8","nodeType":"YulIdentifier","src":"17376:3:8"},{"name":"x","nativeSrc":"17381:1:8","nodeType":"YulIdentifier","src":"17381:1:8"}],"functionName":{"name":"mstore","nativeSrc":"17369:6:8","nodeType":"YulIdentifier","src":"17369:6:8"},"nativeSrc":"17369:14:8","nodeType":"YulFunctionCall","src":"17369:14:8"},"nativeSrc":"17369:14:8","nodeType":"YulExpressionStatement","src":"17369:14:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"17411:3:8","nodeType":"YulIdentifier","src":"17411:3:8"},{"kind":"number","nativeSrc":"17415:2:8","nodeType":"YulLiteral","src":"17415:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17407:3:8","nodeType":"YulIdentifier","src":"17407:3:8"},"nativeSrc":"17407:11:8","nodeType":"YulFunctionCall","src":"17407:11:8"},{"name":"y","nativeSrc":"17420:1:8","nodeType":"YulIdentifier","src":"17420:1:8"}],"functionName":{"name":"mstore","nativeSrc":"17400:6:8","nodeType":"YulIdentifier","src":"17400:6:8"},"nativeSrc":"17400:22:8","nodeType":"YulFunctionCall","src":"17400:22:8"},"nativeSrc":"17400:22:8","nodeType":"YulExpressionStatement","src":"17400:22:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"17450:3:8","nodeType":"YulIdentifier","src":"17450:3:8"},{"kind":"number","nativeSrc":"17454:2:8","nodeType":"YulLiteral","src":"17454:2:8","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17446:3:8","nodeType":"YulIdentifier","src":"17446:3:8"},"nativeSrc":"17446:11:8","nodeType":"YulFunctionCall","src":"17446:11:8"},{"name":"s","nativeSrc":"17459:1:8","nodeType":"YulIdentifier","src":"17459:1:8"}],"functionName":{"name":"mstore","nativeSrc":"17439:6:8","nodeType":"YulIdentifier","src":"17439:6:8"},"nativeSrc":"17439:22:8","nodeType":"YulFunctionCall","src":"17439:22:8"},"nativeSrc":"17439:22:8","nodeType":"YulExpressionStatement","src":"17439:22:8"},{"nativeSrc":"17479:60:8","nodeType":"YulAssignment","src":"17479:60:8","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"17505:3:8","nodeType":"YulIdentifier","src":"17505:3:8"},"nativeSrc":"17505:5:8","nodeType":"YulFunctionCall","src":"17505:5:8"},{"kind":"number","nativeSrc":"17512:4:8","nodeType":"YulLiteral","src":"17512:4:8","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"17501:3:8","nodeType":"YulIdentifier","src":"17501:3:8"},"nativeSrc":"17501:16:8","nodeType":"YulFunctionCall","src":"17501:16:8"},{"kind":"number","nativeSrc":"17519:1:8","nodeType":"YulLiteral","src":"17519:1:8","type":"","value":"7"},{"name":"mIn","nativeSrc":"17522:3:8","nodeType":"YulIdentifier","src":"17522:3:8"},{"kind":"number","nativeSrc":"17527:2:8","nodeType":"YulLiteral","src":"17527:2:8","type":"","value":"96"},{"name":"mIn","nativeSrc":"17531:3:8","nodeType":"YulIdentifier","src":"17531:3:8"},{"kind":"number","nativeSrc":"17536:2:8","nodeType":"YulLiteral","src":"17536:2:8","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"17490:10:8","nodeType":"YulIdentifier","src":"17490:10:8"},"nativeSrc":"17490:49:8","nodeType":"YulFunctionCall","src":"17490:49:8"},"variableNames":[{"name":"success","nativeSrc":"17479:7:8","nodeType":"YulIdentifier","src":"17479:7:8"}]},{"body":{"nativeSrc":"17592:87:8","nodeType":"YulBlock","src":"17592:87:8","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17621:1:8","nodeType":"YulLiteral","src":"17621:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"17624:1:8","nodeType":"YulLiteral","src":"17624:1:8","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17614:6:8","nodeType":"YulIdentifier","src":"17614:6:8"},"nativeSrc":"17614:12:8","nodeType":"YulFunctionCall","src":"17614:12:8"},"nativeSrc":"17614:12:8","nodeType":"YulExpressionStatement","src":"17614:12:8"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17654:1:8","nodeType":"YulLiteral","src":"17654:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"17656:4:8","nodeType":"YulLiteral","src":"17656:4:8","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"17647:6:8","nodeType":"YulIdentifier","src":"17647:6:8"},"nativeSrc":"17647:14:8","nodeType":"YulFunctionCall","src":"17647:14:8"},"nativeSrc":"17647:14:8","nodeType":"YulExpressionStatement","src":"17647:14:8"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"17583:7:8","nodeType":"YulIdentifier","src":"17583:7:8"}],"functionName":{"name":"iszero","nativeSrc":"17576:6:8","nodeType":"YulIdentifier","src":"17576:6:8"},"nativeSrc":"17576:15:8","nodeType":"YulFunctionCall","src":"17576:15:8"},"nativeSrc":"17573:106:8","nodeType":"YulIf","src":"17573:106:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"17724:3:8","nodeType":"YulIdentifier","src":"17724:3:8"},{"kind":"number","nativeSrc":"17728:2:8","nodeType":"YulLiteral","src":"17728:2:8","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17720:3:8","nodeType":"YulIdentifier","src":"17720:3:8"},"nativeSrc":"17720:11:8","nodeType":"YulFunctionCall","src":"17720:11:8"},{"arguments":[{"name":"pR","nativeSrc":"17739:2:8","nodeType":"YulIdentifier","src":"17739:2:8"}],"functionName":{"name":"mload","nativeSrc":"17733:5:8","nodeType":"YulIdentifier","src":"17733:5:8"},"nativeSrc":"17733:9:8","nodeType":"YulFunctionCall","src":"17733:9:8"}],"functionName":{"name":"mstore","nativeSrc":"17713:6:8","nodeType":"YulIdentifier","src":"17713:6:8"},"nativeSrc":"17713:30:8","nodeType":"YulFunctionCall","src":"17713:30:8"},"nativeSrc":"17713:30:8","nodeType":"YulExpressionStatement","src":"17713:30:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"17771:3:8","nodeType":"YulIdentifier","src":"17771:3:8"},{"kind":"number","nativeSrc":"17775:2:8","nodeType":"YulLiteral","src":"17775:2:8","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17767:3:8","nodeType":"YulIdentifier","src":"17767:3:8"},"nativeSrc":"17767:11:8","nodeType":"YulFunctionCall","src":"17767:11:8"},{"arguments":[{"arguments":[{"name":"pR","nativeSrc":"17790:2:8","nodeType":"YulIdentifier","src":"17790:2:8"},{"kind":"number","nativeSrc":"17794:2:8","nodeType":"YulLiteral","src":"17794:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17786:3:8","nodeType":"YulIdentifier","src":"17786:3:8"},"nativeSrc":"17786:11:8","nodeType":"YulFunctionCall","src":"17786:11:8"}],"functionName":{"name":"mload","nativeSrc":"17780:5:8","nodeType":"YulIdentifier","src":"17780:5:8"},"nativeSrc":"17780:18:8","nodeType":"YulFunctionCall","src":"17780:18:8"}],"functionName":{"name":"mstore","nativeSrc":"17760:6:8","nodeType":"YulIdentifier","src":"17760:6:8"},"nativeSrc":"17760:39:8","nodeType":"YulFunctionCall","src":"17760:39:8"},"nativeSrc":"17760:39:8","nodeType":"YulExpressionStatement","src":"17760:39:8"},{"nativeSrc":"17817:60:8","nodeType":"YulAssignment","src":"17817:60:8","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"17843:3:8","nodeType":"YulIdentifier","src":"17843:3:8"},"nativeSrc":"17843:5:8","nodeType":"YulFunctionCall","src":"17843:5:8"},{"kind":"number","nativeSrc":"17850:4:8","nodeType":"YulLiteral","src":"17850:4:8","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"17839:3:8","nodeType":"YulIdentifier","src":"17839:3:8"},"nativeSrc":"17839:16:8","nodeType":"YulFunctionCall","src":"17839:16:8"},{"kind":"number","nativeSrc":"17857:1:8","nodeType":"YulLiteral","src":"17857:1:8","type":"","value":"6"},{"name":"mIn","nativeSrc":"17860:3:8","nodeType":"YulIdentifier","src":"17860:3:8"},{"kind":"number","nativeSrc":"17865:3:8","nodeType":"YulLiteral","src":"17865:3:8","type":"","value":"128"},{"name":"pR","nativeSrc":"17870:2:8","nodeType":"YulIdentifier","src":"17870:2:8"},{"kind":"number","nativeSrc":"17874:2:8","nodeType":"YulLiteral","src":"17874:2:8","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"17828:10:8","nodeType":"YulIdentifier","src":"17828:10:8"},"nativeSrc":"17828:49:8","nodeType":"YulFunctionCall","src":"17828:49:8"},"variableNames":[{"name":"success","nativeSrc":"17817:7:8","nodeType":"YulIdentifier","src":"17817:7:8"}]},{"body":{"nativeSrc":"17930:87:8","nodeType":"YulBlock","src":"17930:87:8","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17959:1:8","nodeType":"YulLiteral","src":"17959:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"17962:1:8","nodeType":"YulLiteral","src":"17962:1:8","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17952:6:8","nodeType":"YulIdentifier","src":"17952:6:8"},"nativeSrc":"17952:12:8","nodeType":"YulFunctionCall","src":"17952:12:8"},"nativeSrc":"17952:12:8","nodeType":"YulExpressionStatement","src":"17952:12:8"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17992:1:8","nodeType":"YulLiteral","src":"17992:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"17994:4:8","nodeType":"YulLiteral","src":"17994:4:8","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"17985:6:8","nodeType":"YulIdentifier","src":"17985:6:8"},"nativeSrc":"17985:14:8","nodeType":"YulFunctionCall","src":"17985:14:8"},"nativeSrc":"17985:14:8","nodeType":"YulExpressionStatement","src":"17985:14:8"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"17921:7:8","nodeType":"YulIdentifier","src":"17921:7:8"}],"functionName":{"name":"iszero","nativeSrc":"17914:6:8","nodeType":"YulIdentifier","src":"17914:6:8"},"nativeSrc":"17914:15:8","nodeType":"YulFunctionCall","src":"17914:15:8"},"nativeSrc":"17911:106:8","nodeType":"YulIf","src":"17911:106:8"}]},"name":"g1_mulAccC","nativeSrc":"17251:780:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"pR","nativeSrc":"17271:2:8","nodeType":"YulTypedName","src":"17271:2:8","type":""},{"name":"x","nativeSrc":"17275:1:8","nodeType":"YulTypedName","src":"17275:1:8","type":""},{"name":"y","nativeSrc":"17278:1:8","nodeType":"YulTypedName","src":"17278:1:8","type":""},{"name":"s","nativeSrc":"17281:1:8","nodeType":"YulTypedName","src":"17281:1:8","type":""}],"src":"17251:780:8"},{"body":{"nativeSrc":"18078:408:8","nodeType":"YulBlock","src":"18078:408:8","statements":[{"nativeSrc":"18096:11:8","nodeType":"YulVariableDeclaration","src":"18096:11:8","variables":[{"name":"success","nativeSrc":"18100:7:8","nodeType":"YulTypedName","src":"18100:7:8","type":""}]},{"nativeSrc":"18124:22:8","nodeType":"YulVariableDeclaration","src":"18124:22:8","value":{"arguments":[{"kind":"number","nativeSrc":"18141:4:8","nodeType":"YulLiteral","src":"18141:4:8","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"18135:5:8","nodeType":"YulIdentifier","src":"18135:5:8"},"nativeSrc":"18135:11:8","nodeType":"YulFunctionCall","src":"18135:11:8"},"variables":[{"name":"mIn","nativeSrc":"18128:3:8","nodeType":"YulTypedName","src":"18128:3:8","type":""}]},{"expression":{"arguments":[{"name":"mIn","nativeSrc":"18170:3:8","nodeType":"YulIdentifier","src":"18170:3:8"},{"name":"x","nativeSrc":"18175:1:8","nodeType":"YulIdentifier","src":"18175:1:8"}],"functionName":{"name":"mstore","nativeSrc":"18163:6:8","nodeType":"YulIdentifier","src":"18163:6:8"},"nativeSrc":"18163:14:8","nodeType":"YulFunctionCall","src":"18163:14:8"},"nativeSrc":"18163:14:8","nodeType":"YulExpressionStatement","src":"18163:14:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"18205:3:8","nodeType":"YulIdentifier","src":"18205:3:8"},{"kind":"number","nativeSrc":"18209:2:8","nodeType":"YulLiteral","src":"18209:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18201:3:8","nodeType":"YulIdentifier","src":"18201:3:8"},"nativeSrc":"18201:11:8","nodeType":"YulFunctionCall","src":"18201:11:8"},{"name":"y","nativeSrc":"18214:1:8","nodeType":"YulIdentifier","src":"18214:1:8"}],"functionName":{"name":"mstore","nativeSrc":"18194:6:8","nodeType":"YulIdentifier","src":"18194:6:8"},"nativeSrc":"18194:22:8","nodeType":"YulFunctionCall","src":"18194:22:8"},"nativeSrc":"18194:22:8","nodeType":"YulExpressionStatement","src":"18194:22:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"18244:3:8","nodeType":"YulIdentifier","src":"18244:3:8"},{"kind":"number","nativeSrc":"18248:2:8","nodeType":"YulLiteral","src":"18248:2:8","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18240:3:8","nodeType":"YulIdentifier","src":"18240:3:8"},"nativeSrc":"18240:11:8","nodeType":"YulFunctionCall","src":"18240:11:8"},{"name":"s","nativeSrc":"18253:1:8","nodeType":"YulIdentifier","src":"18253:1:8"}],"functionName":{"name":"mstore","nativeSrc":"18233:6:8","nodeType":"YulIdentifier","src":"18233:6:8"},"nativeSrc":"18233:22:8","nodeType":"YulFunctionCall","src":"18233:22:8"},"nativeSrc":"18233:22:8","nodeType":"YulExpressionStatement","src":"18233:22:8"},{"nativeSrc":"18273:59:8","nodeType":"YulAssignment","src":"18273:59:8","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18299:3:8","nodeType":"YulIdentifier","src":"18299:3:8"},"nativeSrc":"18299:5:8","nodeType":"YulFunctionCall","src":"18299:5:8"},{"kind":"number","nativeSrc":"18306:4:8","nodeType":"YulLiteral","src":"18306:4:8","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"18295:3:8","nodeType":"YulIdentifier","src":"18295:3:8"},"nativeSrc":"18295:16:8","nodeType":"YulFunctionCall","src":"18295:16:8"},{"kind":"number","nativeSrc":"18313:1:8","nodeType":"YulLiteral","src":"18313:1:8","type":"","value":"7"},{"name":"mIn","nativeSrc":"18316:3:8","nodeType":"YulIdentifier","src":"18316:3:8"},{"kind":"number","nativeSrc":"18321:2:8","nodeType":"YulLiteral","src":"18321:2:8","type":"","value":"96"},{"name":"pR","nativeSrc":"18325:2:8","nodeType":"YulIdentifier","src":"18325:2:8"},{"kind":"number","nativeSrc":"18329:2:8","nodeType":"YulLiteral","src":"18329:2:8","type":"","value":"64"}],"functionName":{"name":"staticcall","nativeSrc":"18284:10:8","nodeType":"YulIdentifier","src":"18284:10:8"},"nativeSrc":"18284:48:8","nodeType":"YulFunctionCall","src":"18284:48:8"},"variableNames":[{"name":"success","nativeSrc":"18273:7:8","nodeType":"YulIdentifier","src":"18273:7:8"}]},{"body":{"nativeSrc":"18385:87:8","nodeType":"YulBlock","src":"18385:87:8","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18414:1:8","nodeType":"YulLiteral","src":"18414:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"18417:1:8","nodeType":"YulLiteral","src":"18417:1:8","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18407:6:8","nodeType":"YulIdentifier","src":"18407:6:8"},"nativeSrc":"18407:12:8","nodeType":"YulFunctionCall","src":"18407:12:8"},"nativeSrc":"18407:12:8","nodeType":"YulExpressionStatement","src":"18407:12:8"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18447:1:8","nodeType":"YulLiteral","src":"18447:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"18449:4:8","nodeType":"YulLiteral","src":"18449:4:8","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"18440:6:8","nodeType":"YulIdentifier","src":"18440:6:8"},"nativeSrc":"18440:14:8","nodeType":"YulFunctionCall","src":"18440:14:8"},"nativeSrc":"18440:14:8","nodeType":"YulExpressionStatement","src":"18440:14:8"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"18376:7:8","nodeType":"YulIdentifier","src":"18376:7:8"}],"functionName":{"name":"iszero","nativeSrc":"18369:6:8","nodeType":"YulIdentifier","src":"18369:6:8"},"nativeSrc":"18369:15:8","nodeType":"YulFunctionCall","src":"18369:15:8"},"nativeSrc":"18366:106:8","nodeType":"YulIf","src":"18366:106:8"}]},"name":"g1_mulSetC","nativeSrc":"18045:441:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"pR","nativeSrc":"18065:2:8","nodeType":"YulTypedName","src":"18065:2:8","type":""},{"name":"x","nativeSrc":"18069:1:8","nodeType":"YulTypedName","src":"18069:1:8","type":""},{"name":"y","nativeSrc":"18072:1:8","nodeType":"YulTypedName","src":"18072:1:8","type":""},{"name":"s","nativeSrc":"18075:1:8","nodeType":"YulTypedName","src":"18075:1:8","type":""}],"src":"18045:441:8"},{"body":{"nativeSrc":"18536:171:8","nodeType":"YulBlock","src":"18536:171:8","statements":[{"nativeSrc":"18554:23:8","nodeType":"YulVariableDeclaration","src":"18554:23:8","value":{"arguments":[{"name":"pMem","nativeSrc":"18567:4:8","nodeType":"YulIdentifier","src":"18567:4:8"},{"name":"pA1","nativeSrc":"18573:3:8","nodeType":"YulIdentifier","src":"18573:3:8"}],"functionName":{"name":"add","nativeSrc":"18563:3:8","nodeType":"YulIdentifier","src":"18563:3:8"},"nativeSrc":"18563:14:8","nodeType":"YulFunctionCall","src":"18563:14:8"},"variables":[{"name":"p","nativeSrc":"18558:1:8","nodeType":"YulTypedName","src":"18558:1:8","type":""}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"18601:1:8","nodeType":"YulIdentifier","src":"18601:1:8"},{"arguments":[{"name":"pProof","nativeSrc":"18608:6:8","nodeType":"YulIdentifier","src":"18608:6:8"},{"name":"pWxi","nativeSrc":"18616:4:8","nodeType":"YulIdentifier","src":"18616:4:8"}],"functionName":{"name":"add","nativeSrc":"18604:3:8","nodeType":"YulIdentifier","src":"18604:3:8"},"nativeSrc":"18604:17:8","nodeType":"YulFunctionCall","src":"18604:17:8"}],"functionName":{"name":"g1_set","nativeSrc":"18594:6:8","nodeType":"YulIdentifier","src":"18594:6:8"},"nativeSrc":"18594:28:8","nodeType":"YulFunctionCall","src":"18594:28:8"},"nativeSrc":"18594:28:8","nodeType":"YulExpressionStatement","src":"18594:28:8"},{"expression":{"arguments":[{"name":"p","nativeSrc":"18649:1:8","nodeType":"YulIdentifier","src":"18649:1:8"},{"arguments":[{"name":"pProof","nativeSrc":"18656:6:8","nodeType":"YulIdentifier","src":"18656:6:8"},{"name":"pWxiw","nativeSrc":"18664:5:8","nodeType":"YulIdentifier","src":"18664:5:8"}],"functionName":{"name":"add","nativeSrc":"18652:3:8","nodeType":"YulIdentifier","src":"18652:3:8"},"nativeSrc":"18652:18:8","nodeType":"YulFunctionCall","src":"18652:18:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"18682:4:8","nodeType":"YulIdentifier","src":"18682:4:8"},{"name":"pU","nativeSrc":"18688:2:8","nodeType":"YulIdentifier","src":"18688:2:8"}],"functionName":{"name":"add","nativeSrc":"18678:3:8","nodeType":"YulIdentifier","src":"18678:3:8"},"nativeSrc":"18678:13:8","nodeType":"YulFunctionCall","src":"18678:13:8"}],"functionName":{"name":"mload","nativeSrc":"18672:5:8","nodeType":"YulIdentifier","src":"18672:5:8"},"nativeSrc":"18672:20:8","nodeType":"YulFunctionCall","src":"18672:20:8"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"18639:9:8","nodeType":"YulIdentifier","src":"18639:9:8"},"nativeSrc":"18639:54:8","nodeType":"YulFunctionCall","src":"18639:54:8"},"nativeSrc":"18639:54:8","nodeType":"YulExpressionStatement","src":"18639:54:8"}]},"name":"calculateA1","nativeSrc":"18501:206:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"pProof","nativeSrc":"18522:6:8","nodeType":"YulTypedName","src":"18522:6:8","type":""},{"name":"pMem","nativeSrc":"18530:4:8","nodeType":"YulTypedName","src":"18530:4:8","type":""}],"src":"18501:206:8"},{"body":{"nativeSrc":"18781:4443:8","nodeType":"YulBlock","src":"18781:4443:8","statements":[{"nativeSrc":"18799:5:8","nodeType":"YulVariableDeclaration","src":"18799:5:8","variables":[{"name":"s","nativeSrc":"18803:1:8","nodeType":"YulTypedName","src":"18803:1:8","type":""}]},{"nativeSrc":"18821:6:8","nodeType":"YulVariableDeclaration","src":"18821:6:8","variables":[{"name":"s1","nativeSrc":"18825:2:8","nodeType":"YulTypedName","src":"18825:2:8","type":""}]},{"nativeSrc":"18844:23:8","nodeType":"YulVariableDeclaration","src":"18844:23:8","value":{"arguments":[{"name":"pMem","nativeSrc":"18857:4:8","nodeType":"YulIdentifier","src":"18857:4:8"},{"name":"pB1","nativeSrc":"18863:3:8","nodeType":"YulIdentifier","src":"18863:3:8"}],"functionName":{"name":"add","nativeSrc":"18853:3:8","nodeType":"YulIdentifier","src":"18853:3:8"},"nativeSrc":"18853:14:8","nodeType":"YulFunctionCall","src":"18853:14:8"},"variables":[{"name":"p","nativeSrc":"18848:1:8","nodeType":"YulTypedName","src":"18848:1:8","type":""}]},{"nativeSrc":"18932:67:8","nodeType":"YulAssignment","src":"18932:67:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"18955:6:8","nodeType":"YulIdentifier","src":"18955:6:8"},{"name":"pEval_a","nativeSrc":"18963:7:8","nodeType":"YulIdentifier","src":"18963:7:8"}],"functionName":{"name":"add","nativeSrc":"18951:3:8","nodeType":"YulIdentifier","src":"18951:3:8"},"nativeSrc":"18951:20:8","nodeType":"YulFunctionCall","src":"18951:20:8"}],"functionName":{"name":"mload","nativeSrc":"18945:5:8","nodeType":"YulIdentifier","src":"18945:5:8"},"nativeSrc":"18945:27:8","nodeType":"YulFunctionCall","src":"18945:27:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"18984:4:8","nodeType":"YulIdentifier","src":"18984:4:8"},{"name":"pV1","nativeSrc":"18990:3:8","nodeType":"YulIdentifier","src":"18990:3:8"}],"functionName":{"name":"add","nativeSrc":"18980:3:8","nodeType":"YulIdentifier","src":"18980:3:8"},"nativeSrc":"18980:14:8","nodeType":"YulFunctionCall","src":"18980:14:8"}],"functionName":{"name":"mload","nativeSrc":"18974:5:8","nodeType":"YulIdentifier","src":"18974:5:8"},"nativeSrc":"18974:21:8","nodeType":"YulFunctionCall","src":"18974:21:8"},{"name":"q","nativeSrc":"18997:1:8","nodeType":"YulIdentifier","src":"18997:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"18937:6:8","nodeType":"YulIdentifier","src":"18937:6:8"},"nativeSrc":"18937:62:8","nodeType":"YulFunctionCall","src":"18937:62:8"},"variableNames":[{"name":"s","nativeSrc":"18932:1:8","nodeType":"YulIdentifier","src":"18932:1:8"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"19027:1:8","nodeType":"YulIdentifier","src":"19027:1:8"},{"name":"Qlx","nativeSrc":"19030:3:8","nodeType":"YulIdentifier","src":"19030:3:8"},{"name":"Qly","nativeSrc":"19035:3:8","nodeType":"YulIdentifier","src":"19035:3:8"},{"name":"s","nativeSrc":"19040:1:8","nodeType":"YulIdentifier","src":"19040:1:8"}],"functionName":{"name":"g1_mulSetC","nativeSrc":"19016:10:8","nodeType":"YulIdentifier","src":"19016:10:8"},"nativeSrc":"19016:26:8","nodeType":"YulFunctionCall","src":"19016:26:8"},"nativeSrc":"19016:26:8","nodeType":"YulExpressionStatement","src":"19016:26:8"},{"nativeSrc":"19060:47:8","nodeType":"YulAssignment","src":"19060:47:8","value":{"arguments":[{"name":"s","nativeSrc":"19073:1:8","nodeType":"YulIdentifier","src":"19073:1:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"19086:6:8","nodeType":"YulIdentifier","src":"19086:6:8"},{"name":"pEval_b","nativeSrc":"19094:7:8","nodeType":"YulIdentifier","src":"19094:7:8"}],"functionName":{"name":"add","nativeSrc":"19082:3:8","nodeType":"YulIdentifier","src":"19082:3:8"},"nativeSrc":"19082:20:8","nodeType":"YulFunctionCall","src":"19082:20:8"}],"functionName":{"name":"mload","nativeSrc":"19076:5:8","nodeType":"YulIdentifier","src":"19076:5:8"},"nativeSrc":"19076:27:8","nodeType":"YulFunctionCall","src":"19076:27:8"},{"name":"q","nativeSrc":"19105:1:8","nodeType":"YulIdentifier","src":"19105:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"19065:6:8","nodeType":"YulIdentifier","src":"19065:6:8"},"nativeSrc":"19065:42:8","nodeType":"YulFunctionCall","src":"19065:42:8"},"variableNames":[{"name":"s","nativeSrc":"19060:1:8","nodeType":"YulIdentifier","src":"19060:1:8"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"19151:1:8","nodeType":"YulIdentifier","src":"19151:1:8"},{"name":"Qmx","nativeSrc":"19154:3:8","nodeType":"YulIdentifier","src":"19154:3:8"},{"name":"Qmy","nativeSrc":"19159:3:8","nodeType":"YulIdentifier","src":"19159:3:8"},{"name":"s","nativeSrc":"19164:1:8","nodeType":"YulIdentifier","src":"19164:1:8"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"19140:10:8","nodeType":"YulIdentifier","src":"19140:10:8"},"nativeSrc":"19140:26:8","nodeType":"YulFunctionCall","src":"19140:26:8"},"nativeSrc":"19140:26:8","nodeType":"YulExpressionStatement","src":"19140:26:8"},{"nativeSrc":"19184:67:8","nodeType":"YulAssignment","src":"19184:67:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"19207:6:8","nodeType":"YulIdentifier","src":"19207:6:8"},{"name":"pEval_b","nativeSrc":"19215:7:8","nodeType":"YulIdentifier","src":"19215:7:8"}],"functionName":{"name":"add","nativeSrc":"19203:3:8","nodeType":"YulIdentifier","src":"19203:3:8"},"nativeSrc":"19203:20:8","nodeType":"YulFunctionCall","src":"19203:20:8"}],"functionName":{"name":"mload","nativeSrc":"19197:5:8","nodeType":"YulIdentifier","src":"19197:5:8"},"nativeSrc":"19197:27:8","nodeType":"YulFunctionCall","src":"19197:27:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19236:4:8","nodeType":"YulIdentifier","src":"19236:4:8"},{"name":"pV1","nativeSrc":"19242:3:8","nodeType":"YulIdentifier","src":"19242:3:8"}],"functionName":{"name":"add","nativeSrc":"19232:3:8","nodeType":"YulIdentifier","src":"19232:3:8"},"nativeSrc":"19232:14:8","nodeType":"YulFunctionCall","src":"19232:14:8"}],"functionName":{"name":"mload","nativeSrc":"19226:5:8","nodeType":"YulIdentifier","src":"19226:5:8"},"nativeSrc":"19226:21:8","nodeType":"YulFunctionCall","src":"19226:21:8"},{"name":"q","nativeSrc":"19249:1:8","nodeType":"YulIdentifier","src":"19249:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"19189:6:8","nodeType":"YulIdentifier","src":"19189:6:8"},"nativeSrc":"19189:62:8","nodeType":"YulFunctionCall","src":"19189:62:8"},"variableNames":[{"name":"s","nativeSrc":"19184:1:8","nodeType":"YulIdentifier","src":"19184:1:8"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"19279:1:8","nodeType":"YulIdentifier","src":"19279:1:8"},{"name":"Qrx","nativeSrc":"19282:3:8","nodeType":"YulIdentifier","src":"19282:3:8"},{"name":"Qry","nativeSrc":"19287:3:8","nodeType":"YulIdentifier","src":"19287:3:8"},{"name":"s","nativeSrc":"19292:1:8","nodeType":"YulIdentifier","src":"19292:1:8"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"19268:10:8","nodeType":"YulIdentifier","src":"19268:10:8"},"nativeSrc":"19268:26:8","nodeType":"YulFunctionCall","src":"19268:26:8"},"nativeSrc":"19268:26:8","nodeType":"YulExpressionStatement","src":"19268:26:8"},{"nativeSrc":"19328:67:8","nodeType":"YulAssignment","src":"19328:67:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"19351:6:8","nodeType":"YulIdentifier","src":"19351:6:8"},{"name":"pEval_c","nativeSrc":"19359:7:8","nodeType":"YulIdentifier","src":"19359:7:8"}],"functionName":{"name":"add","nativeSrc":"19347:3:8","nodeType":"YulIdentifier","src":"19347:3:8"},"nativeSrc":"19347:20:8","nodeType":"YulFunctionCall","src":"19347:20:8"}],"functionName":{"name":"mload","nativeSrc":"19341:5:8","nodeType":"YulIdentifier","src":"19341:5:8"},"nativeSrc":"19341:27:8","nodeType":"YulFunctionCall","src":"19341:27:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19380:4:8","nodeType":"YulIdentifier","src":"19380:4:8"},{"name":"pV1","nativeSrc":"19386:3:8","nodeType":"YulIdentifier","src":"19386:3:8"}],"functionName":{"name":"add","nativeSrc":"19376:3:8","nodeType":"YulIdentifier","src":"19376:3:8"},"nativeSrc":"19376:14:8","nodeType":"YulFunctionCall","src":"19376:14:8"}],"functionName":{"name":"mload","nativeSrc":"19370:5:8","nodeType":"YulIdentifier","src":"19370:5:8"},"nativeSrc":"19370:21:8","nodeType":"YulFunctionCall","src":"19370:21:8"},{"name":"q","nativeSrc":"19393:1:8","nodeType":"YulIdentifier","src":"19393:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"19333:6:8","nodeType":"YulIdentifier","src":"19333:6:8"},"nativeSrc":"19333:62:8","nodeType":"YulFunctionCall","src":"19333:62:8"},"variableNames":[{"name":"s","nativeSrc":"19328:1:8","nodeType":"YulIdentifier","src":"19328:1:8"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"19423:1:8","nodeType":"YulIdentifier","src":"19423:1:8"},{"name":"Qox","nativeSrc":"19426:3:8","nodeType":"YulIdentifier","src":"19426:3:8"},{"name":"Qoy","nativeSrc":"19431:3:8","nodeType":"YulIdentifier","src":"19431:3:8"},{"name":"s","nativeSrc":"19436:1:8","nodeType":"YulIdentifier","src":"19436:1:8"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"19412:10:8","nodeType":"YulIdentifier","src":"19412:10:8"},"nativeSrc":"19412:26:8","nodeType":"YulFunctionCall","src":"19412:26:8"},"nativeSrc":"19412:26:8","nodeType":"YulExpressionStatement","src":"19412:26:8"},{"nativeSrc":"19456:25:8","nodeType":"YulAssignment","src":"19456:25:8","value":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19470:4:8","nodeType":"YulIdentifier","src":"19470:4:8"},{"name":"pV1","nativeSrc":"19476:3:8","nodeType":"YulIdentifier","src":"19476:3:8"}],"functionName":{"name":"add","nativeSrc":"19466:3:8","nodeType":"YulIdentifier","src":"19466:3:8"},"nativeSrc":"19466:14:8","nodeType":"YulFunctionCall","src":"19466:14:8"}],"functionName":{"name":"mload","nativeSrc":"19460:5:8","nodeType":"YulIdentifier","src":"19460:5:8"},"nativeSrc":"19460:21:8","nodeType":"YulFunctionCall","src":"19460:21:8"},"variableNames":[{"name":"s","nativeSrc":"19456:1:8","nodeType":"YulIdentifier","src":"19456:1:8"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"19509:1:8","nodeType":"YulIdentifier","src":"19509:1:8"},{"name":"Qcx","nativeSrc":"19512:3:8","nodeType":"YulIdentifier","src":"19512:3:8"},{"name":"Qcy","nativeSrc":"19517:3:8","nodeType":"YulIdentifier","src":"19517:3:8"},{"name":"s","nativeSrc":"19522:1:8","nodeType":"YulIdentifier","src":"19522:1:8"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"19498:10:8","nodeType":"YulIdentifier","src":"19498:10:8"},"nativeSrc":"19498:26:8","nodeType":"YulFunctionCall","src":"19498:26:8"},"nativeSrc":"19498:26:8","nodeType":"YulExpressionStatement","src":"19498:26:8"},{"nativeSrc":"19542:70:8","nodeType":"YulAssignment","src":"19542:70:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"19564:6:8","nodeType":"YulIdentifier","src":"19564:6:8"},{"name":"pEval_a","nativeSrc":"19572:7:8","nodeType":"YulIdentifier","src":"19572:7:8"}],"functionName":{"name":"add","nativeSrc":"19560:3:8","nodeType":"YulIdentifier","src":"19560:3:8"},"nativeSrc":"19560:20:8","nodeType":"YulFunctionCall","src":"19560:20:8"}],"functionName":{"name":"mload","nativeSrc":"19554:5:8","nodeType":"YulIdentifier","src":"19554:5:8"},"nativeSrc":"19554:27:8","nodeType":"YulFunctionCall","src":"19554:27:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19593:4:8","nodeType":"YulIdentifier","src":"19593:4:8"},{"name":"pBetaXi","nativeSrc":"19599:7:8","nodeType":"YulIdentifier","src":"19599:7:8"}],"functionName":{"name":"add","nativeSrc":"19589:3:8","nodeType":"YulIdentifier","src":"19589:3:8"},"nativeSrc":"19589:18:8","nodeType":"YulFunctionCall","src":"19589:18:8"}],"functionName":{"name":"mload","nativeSrc":"19583:5:8","nodeType":"YulIdentifier","src":"19583:5:8"},"nativeSrc":"19583:25:8","nodeType":"YulFunctionCall","src":"19583:25:8"},{"name":"q","nativeSrc":"19610:1:8","nodeType":"YulIdentifier","src":"19610:1:8"}],"functionName":{"name":"addmod","nativeSrc":"19547:6:8","nodeType":"YulIdentifier","src":"19547:6:8"},"nativeSrc":"19547:65:8","nodeType":"YulFunctionCall","src":"19547:65:8"},"variableNames":[{"name":"s","nativeSrc":"19542:1:8","nodeType":"YulIdentifier","src":"19542:1:8"}]},{"nativeSrc":"19629:43:8","nodeType":"YulAssignment","src":"19629:43:8","value":{"arguments":[{"name":"s","nativeSrc":"19641:1:8","nodeType":"YulIdentifier","src":"19641:1:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19654:4:8","nodeType":"YulIdentifier","src":"19654:4:8"},{"name":"pGamma","nativeSrc":"19660:6:8","nodeType":"YulIdentifier","src":"19660:6:8"}],"functionName":{"name":"add","nativeSrc":"19650:3:8","nodeType":"YulIdentifier","src":"19650:3:8"},"nativeSrc":"19650:17:8","nodeType":"YulFunctionCall","src":"19650:17:8"}],"functionName":{"name":"mload","nativeSrc":"19644:5:8","nodeType":"YulIdentifier","src":"19644:5:8"},"nativeSrc":"19644:24:8","nodeType":"YulFunctionCall","src":"19644:24:8"},{"name":"q","nativeSrc":"19670:1:8","nodeType":"YulIdentifier","src":"19670:1:8"}],"functionName":{"name":"addmod","nativeSrc":"19634:6:8","nodeType":"YulIdentifier","src":"19634:6:8"},"nativeSrc":"19634:38:8","nodeType":"YulFunctionCall","src":"19634:38:8"},"variableNames":[{"name":"s","nativeSrc":"19629:1:8","nodeType":"YulIdentifier","src":"19629:1:8"}]},{"nativeSrc":"19689:46:8","nodeType":"YulAssignment","src":"19689:46:8","value":{"arguments":[{"name":"k1","nativeSrc":"19702:2:8","nodeType":"YulIdentifier","src":"19702:2:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19716:4:8","nodeType":"YulIdentifier","src":"19716:4:8"},{"name":"pBetaXi","nativeSrc":"19722:7:8","nodeType":"YulIdentifier","src":"19722:7:8"}],"functionName":{"name":"add","nativeSrc":"19712:3:8","nodeType":"YulIdentifier","src":"19712:3:8"},"nativeSrc":"19712:18:8","nodeType":"YulFunctionCall","src":"19712:18:8"}],"functionName":{"name":"mload","nativeSrc":"19706:5:8","nodeType":"YulIdentifier","src":"19706:5:8"},"nativeSrc":"19706:25:8","nodeType":"YulFunctionCall","src":"19706:25:8"},{"name":"q","nativeSrc":"19733:1:8","nodeType":"YulIdentifier","src":"19733:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"19695:6:8","nodeType":"YulIdentifier","src":"19695:6:8"},"nativeSrc":"19695:40:8","nodeType":"YulFunctionCall","src":"19695:40:8"},"variableNames":[{"name":"s1","nativeSrc":"19689:2:8","nodeType":"YulIdentifier","src":"19689:2:8"}]},{"nativeSrc":"19752:48:8","nodeType":"YulAssignment","src":"19752:48:8","value":{"arguments":[{"name":"s1","nativeSrc":"19765:2:8","nodeType":"YulIdentifier","src":"19765:2:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"19779:6:8","nodeType":"YulIdentifier","src":"19779:6:8"},{"name":"pEval_b","nativeSrc":"19787:7:8","nodeType":"YulIdentifier","src":"19787:7:8"}],"functionName":{"name":"add","nativeSrc":"19775:3:8","nodeType":"YulIdentifier","src":"19775:3:8"},"nativeSrc":"19775:20:8","nodeType":"YulFunctionCall","src":"19775:20:8"}],"functionName":{"name":"mload","nativeSrc":"19769:5:8","nodeType":"YulIdentifier","src":"19769:5:8"},"nativeSrc":"19769:27:8","nodeType":"YulFunctionCall","src":"19769:27:8"},{"name":"q","nativeSrc":"19798:1:8","nodeType":"YulIdentifier","src":"19798:1:8"}],"functionName":{"name":"addmod","nativeSrc":"19758:6:8","nodeType":"YulIdentifier","src":"19758:6:8"},"nativeSrc":"19758:42:8","nodeType":"YulFunctionCall","src":"19758:42:8"},"variableNames":[{"name":"s1","nativeSrc":"19752:2:8","nodeType":"YulIdentifier","src":"19752:2:8"}]},{"nativeSrc":"19817:45:8","nodeType":"YulAssignment","src":"19817:45:8","value":{"arguments":[{"name":"s1","nativeSrc":"19830:2:8","nodeType":"YulIdentifier","src":"19830:2:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19844:4:8","nodeType":"YulIdentifier","src":"19844:4:8"},{"name":"pGamma","nativeSrc":"19850:6:8","nodeType":"YulIdentifier","src":"19850:6:8"}],"functionName":{"name":"add","nativeSrc":"19840:3:8","nodeType":"YulIdentifier","src":"19840:3:8"},"nativeSrc":"19840:17:8","nodeType":"YulFunctionCall","src":"19840:17:8"}],"functionName":{"name":"mload","nativeSrc":"19834:5:8","nodeType":"YulIdentifier","src":"19834:5:8"},"nativeSrc":"19834:24:8","nodeType":"YulFunctionCall","src":"19834:24:8"},{"name":"q","nativeSrc":"19860:1:8","nodeType":"YulIdentifier","src":"19860:1:8"}],"functionName":{"name":"addmod","nativeSrc":"19823:6:8","nodeType":"YulIdentifier","src":"19823:6:8"},"nativeSrc":"19823:39:8","nodeType":"YulFunctionCall","src":"19823:39:8"},"variableNames":[{"name":"s1","nativeSrc":"19817:2:8","nodeType":"YulIdentifier","src":"19817:2:8"}]},{"nativeSrc":"19879:21:8","nodeType":"YulAssignment","src":"19879:21:8","value":{"arguments":[{"name":"s","nativeSrc":"19891:1:8","nodeType":"YulIdentifier","src":"19891:1:8"},{"name":"s1","nativeSrc":"19894:2:8","nodeType":"YulIdentifier","src":"19894:2:8"},{"name":"q","nativeSrc":"19898:1:8","nodeType":"YulIdentifier","src":"19898:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"19884:6:8","nodeType":"YulIdentifier","src":"19884:6:8"},"nativeSrc":"19884:16:8","nodeType":"YulFunctionCall","src":"19884:16:8"},"variableNames":[{"name":"s","nativeSrc":"19879:1:8","nodeType":"YulIdentifier","src":"19879:1:8"}]},{"nativeSrc":"19917:46:8","nodeType":"YulAssignment","src":"19917:46:8","value":{"arguments":[{"name":"k2","nativeSrc":"19930:2:8","nodeType":"YulIdentifier","src":"19930:2:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"19944:4:8","nodeType":"YulIdentifier","src":"19944:4:8"},{"name":"pBetaXi","nativeSrc":"19950:7:8","nodeType":"YulIdentifier","src":"19950:7:8"}],"functionName":{"name":"add","nativeSrc":"19940:3:8","nodeType":"YulIdentifier","src":"19940:3:8"},"nativeSrc":"19940:18:8","nodeType":"YulFunctionCall","src":"19940:18:8"}],"functionName":{"name":"mload","nativeSrc":"19934:5:8","nodeType":"YulIdentifier","src":"19934:5:8"},"nativeSrc":"19934:25:8","nodeType":"YulFunctionCall","src":"19934:25:8"},{"name":"q","nativeSrc":"19961:1:8","nodeType":"YulIdentifier","src":"19961:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"19923:6:8","nodeType":"YulIdentifier","src":"19923:6:8"},"nativeSrc":"19923:40:8","nodeType":"YulFunctionCall","src":"19923:40:8"},"variableNames":[{"name":"s1","nativeSrc":"19917:2:8","nodeType":"YulIdentifier","src":"19917:2:8"}]},{"nativeSrc":"19980:48:8","nodeType":"YulAssignment","src":"19980:48:8","value":{"arguments":[{"name":"s1","nativeSrc":"19993:2:8","nodeType":"YulIdentifier","src":"19993:2:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"20007:6:8","nodeType":"YulIdentifier","src":"20007:6:8"},{"name":"pEval_c","nativeSrc":"20015:7:8","nodeType":"YulIdentifier","src":"20015:7:8"}],"functionName":{"name":"add","nativeSrc":"20003:3:8","nodeType":"YulIdentifier","src":"20003:3:8"},"nativeSrc":"20003:20:8","nodeType":"YulFunctionCall","src":"20003:20:8"}],"functionName":{"name":"mload","nativeSrc":"19997:5:8","nodeType":"YulIdentifier","src":"19997:5:8"},"nativeSrc":"19997:27:8","nodeType":"YulFunctionCall","src":"19997:27:8"},{"name":"q","nativeSrc":"20026:1:8","nodeType":"YulIdentifier","src":"20026:1:8"}],"functionName":{"name":"addmod","nativeSrc":"19986:6:8","nodeType":"YulIdentifier","src":"19986:6:8"},"nativeSrc":"19986:42:8","nodeType":"YulFunctionCall","src":"19986:42:8"},"variableNames":[{"name":"s1","nativeSrc":"19980:2:8","nodeType":"YulIdentifier","src":"19980:2:8"}]},{"nativeSrc":"20045:45:8","nodeType":"YulAssignment","src":"20045:45:8","value":{"arguments":[{"name":"s1","nativeSrc":"20058:2:8","nodeType":"YulIdentifier","src":"20058:2:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20072:4:8","nodeType":"YulIdentifier","src":"20072:4:8"},{"name":"pGamma","nativeSrc":"20078:6:8","nodeType":"YulIdentifier","src":"20078:6:8"}],"functionName":{"name":"add","nativeSrc":"20068:3:8","nodeType":"YulIdentifier","src":"20068:3:8"},"nativeSrc":"20068:17:8","nodeType":"YulFunctionCall","src":"20068:17:8"}],"functionName":{"name":"mload","nativeSrc":"20062:5:8","nodeType":"YulIdentifier","src":"20062:5:8"},"nativeSrc":"20062:24:8","nodeType":"YulFunctionCall","src":"20062:24:8"},{"name":"q","nativeSrc":"20088:1:8","nodeType":"YulIdentifier","src":"20088:1:8"}],"functionName":{"name":"addmod","nativeSrc":"20051:6:8","nodeType":"YulIdentifier","src":"20051:6:8"},"nativeSrc":"20051:39:8","nodeType":"YulFunctionCall","src":"20051:39:8"},"variableNames":[{"name":"s1","nativeSrc":"20045:2:8","nodeType":"YulIdentifier","src":"20045:2:8"}]},{"nativeSrc":"20107:21:8","nodeType":"YulAssignment","src":"20107:21:8","value":{"arguments":[{"name":"s","nativeSrc":"20119:1:8","nodeType":"YulIdentifier","src":"20119:1:8"},{"name":"s1","nativeSrc":"20122:2:8","nodeType":"YulIdentifier","src":"20122:2:8"},{"name":"q","nativeSrc":"20126:1:8","nodeType":"YulIdentifier","src":"20126:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"20112:6:8","nodeType":"YulIdentifier","src":"20112:6:8"},"nativeSrc":"20112:16:8","nodeType":"YulFunctionCall","src":"20112:16:8"},"variableNames":[{"name":"s","nativeSrc":"20107:1:8","nodeType":"YulIdentifier","src":"20107:1:8"}]},{"nativeSrc":"20145:43:8","nodeType":"YulAssignment","src":"20145:43:8","value":{"arguments":[{"name":"s","nativeSrc":"20157:1:8","nodeType":"YulIdentifier","src":"20157:1:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20170:4:8","nodeType":"YulIdentifier","src":"20170:4:8"},{"name":"pAlpha","nativeSrc":"20176:6:8","nodeType":"YulIdentifier","src":"20176:6:8"}],"functionName":{"name":"add","nativeSrc":"20166:3:8","nodeType":"YulIdentifier","src":"20166:3:8"},"nativeSrc":"20166:17:8","nodeType":"YulFunctionCall","src":"20166:17:8"}],"functionName":{"name":"mload","nativeSrc":"20160:5:8","nodeType":"YulIdentifier","src":"20160:5:8"},"nativeSrc":"20160:24:8","nodeType":"YulFunctionCall","src":"20160:24:8"},{"name":"q","nativeSrc":"20186:1:8","nodeType":"YulIdentifier","src":"20186:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"20150:6:8","nodeType":"YulIdentifier","src":"20150:6:8"},"nativeSrc":"20150:38:8","nodeType":"YulFunctionCall","src":"20150:38:8"},"variableNames":[{"name":"s","nativeSrc":"20145:1:8","nodeType":"YulIdentifier","src":"20145:1:8"}]},{"nativeSrc":"20205:40:8","nodeType":"YulAssignment","src":"20205:40:8","value":{"arguments":[{"name":"s","nativeSrc":"20217:1:8","nodeType":"YulIdentifier","src":"20217:1:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20230:4:8","nodeType":"YulIdentifier","src":"20230:4:8"},{"name":"pV1","nativeSrc":"20236:3:8","nodeType":"YulIdentifier","src":"20236:3:8"}],"functionName":{"name":"add","nativeSrc":"20226:3:8","nodeType":"YulIdentifier","src":"20226:3:8"},"nativeSrc":"20226:14:8","nodeType":"YulFunctionCall","src":"20226:14:8"}],"functionName":{"name":"mload","nativeSrc":"20220:5:8","nodeType":"YulIdentifier","src":"20220:5:8"},"nativeSrc":"20220:21:8","nodeType":"YulFunctionCall","src":"20220:21:8"},{"name":"q","nativeSrc":"20243:1:8","nodeType":"YulIdentifier","src":"20243:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"20210:6:8","nodeType":"YulIdentifier","src":"20210:6:8"},"nativeSrc":"20210:35:8","nodeType":"YulFunctionCall","src":"20210:35:8"},"variableNames":[{"name":"s","nativeSrc":"20205:1:8","nodeType":"YulIdentifier","src":"20205:1:8"}]},{"nativeSrc":"20262:69:8","nodeType":"YulAssignment","src":"20262:69:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20285:4:8","nodeType":"YulIdentifier","src":"20285:4:8"},{"name":"pEval_l1","nativeSrc":"20291:8:8","nodeType":"YulIdentifier","src":"20291:8:8"}],"functionName":{"name":"add","nativeSrc":"20281:3:8","nodeType":"YulIdentifier","src":"20281:3:8"},"nativeSrc":"20281:19:8","nodeType":"YulFunctionCall","src":"20281:19:8"}],"functionName":{"name":"mload","nativeSrc":"20275:5:8","nodeType":"YulIdentifier","src":"20275:5:8"},"nativeSrc":"20275:26:8","nodeType":"YulFunctionCall","src":"20275:26:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20313:4:8","nodeType":"YulIdentifier","src":"20313:4:8"},{"name":"pAlpha","nativeSrc":"20319:6:8","nodeType":"YulIdentifier","src":"20319:6:8"}],"functionName":{"name":"add","nativeSrc":"20309:3:8","nodeType":"YulIdentifier","src":"20309:3:8"},"nativeSrc":"20309:17:8","nodeType":"YulFunctionCall","src":"20309:17:8"}],"functionName":{"name":"mload","nativeSrc":"20303:5:8","nodeType":"YulIdentifier","src":"20303:5:8"},"nativeSrc":"20303:24:8","nodeType":"YulFunctionCall","src":"20303:24:8"},{"name":"q","nativeSrc":"20329:1:8","nodeType":"YulIdentifier","src":"20329:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"20268:6:8","nodeType":"YulIdentifier","src":"20268:6:8"},"nativeSrc":"20268:63:8","nodeType":"YulFunctionCall","src":"20268:63:8"},"variableNames":[{"name":"s1","nativeSrc":"20262:2:8","nodeType":"YulIdentifier","src":"20262:2:8"}]},{"nativeSrc":"20348:45:8","nodeType":"YulAssignment","src":"20348:45:8","value":{"arguments":[{"name":"s1","nativeSrc":"20361:2:8","nodeType":"YulIdentifier","src":"20361:2:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20375:4:8","nodeType":"YulIdentifier","src":"20375:4:8"},{"name":"pAlpha","nativeSrc":"20381:6:8","nodeType":"YulIdentifier","src":"20381:6:8"}],"functionName":{"name":"add","nativeSrc":"20371:3:8","nodeType":"YulIdentifier","src":"20371:3:8"},"nativeSrc":"20371:17:8","nodeType":"YulFunctionCall","src":"20371:17:8"}],"functionName":{"name":"mload","nativeSrc":"20365:5:8","nodeType":"YulIdentifier","src":"20365:5:8"},"nativeSrc":"20365:24:8","nodeType":"YulFunctionCall","src":"20365:24:8"},{"name":"q","nativeSrc":"20391:1:8","nodeType":"YulIdentifier","src":"20391:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"20354:6:8","nodeType":"YulIdentifier","src":"20354:6:8"},"nativeSrc":"20354:39:8","nodeType":"YulFunctionCall","src":"20354:39:8"},"variableNames":[{"name":"s1","nativeSrc":"20348:2:8","nodeType":"YulIdentifier","src":"20348:2:8"}]},{"nativeSrc":"20410:42:8","nodeType":"YulAssignment","src":"20410:42:8","value":{"arguments":[{"name":"s1","nativeSrc":"20423:2:8","nodeType":"YulIdentifier","src":"20423:2:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20437:4:8","nodeType":"YulIdentifier","src":"20437:4:8"},{"name":"pV1","nativeSrc":"20443:3:8","nodeType":"YulIdentifier","src":"20443:3:8"}],"functionName":{"name":"add","nativeSrc":"20433:3:8","nodeType":"YulIdentifier","src":"20433:3:8"},"nativeSrc":"20433:14:8","nodeType":"YulFunctionCall","src":"20433:14:8"}],"functionName":{"name":"mload","nativeSrc":"20427:5:8","nodeType":"YulIdentifier","src":"20427:5:8"},"nativeSrc":"20427:21:8","nodeType":"YulFunctionCall","src":"20427:21:8"},{"name":"q","nativeSrc":"20450:1:8","nodeType":"YulIdentifier","src":"20450:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"20416:6:8","nodeType":"YulIdentifier","src":"20416:6:8"},"nativeSrc":"20416:36:8","nodeType":"YulFunctionCall","src":"20416:36:8"},"variableNames":[{"name":"s1","nativeSrc":"20410:2:8","nodeType":"YulIdentifier","src":"20410:2:8"}]},{"nativeSrc":"20469:21:8","nodeType":"YulAssignment","src":"20469:21:8","value":{"arguments":[{"name":"s","nativeSrc":"20481:1:8","nodeType":"YulIdentifier","src":"20481:1:8"},{"name":"s1","nativeSrc":"20484:2:8","nodeType":"YulIdentifier","src":"20484:2:8"},{"name":"q","nativeSrc":"20488:1:8","nodeType":"YulIdentifier","src":"20488:1:8"}],"functionName":{"name":"addmod","nativeSrc":"20474:6:8","nodeType":"YulIdentifier","src":"20474:6:8"},"nativeSrc":"20474:16:8","nodeType":"YulFunctionCall","src":"20474:16:8"},"variableNames":[{"name":"s","nativeSrc":"20469:1:8","nodeType":"YulIdentifier","src":"20469:1:8"}]},{"nativeSrc":"20507:39:8","nodeType":"YulAssignment","src":"20507:39:8","value":{"arguments":[{"name":"s","nativeSrc":"20519:1:8","nodeType":"YulIdentifier","src":"20519:1:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20532:4:8","nodeType":"YulIdentifier","src":"20532:4:8"},{"name":"pU","nativeSrc":"20538:2:8","nodeType":"YulIdentifier","src":"20538:2:8"}],"functionName":{"name":"add","nativeSrc":"20528:3:8","nodeType":"YulIdentifier","src":"20528:3:8"},"nativeSrc":"20528:13:8","nodeType":"YulFunctionCall","src":"20528:13:8"}],"functionName":{"name":"mload","nativeSrc":"20522:5:8","nodeType":"YulIdentifier","src":"20522:5:8"},"nativeSrc":"20522:20:8","nodeType":"YulFunctionCall","src":"20522:20:8"},{"name":"q","nativeSrc":"20544:1:8","nodeType":"YulIdentifier","src":"20544:1:8"}],"functionName":{"name":"addmod","nativeSrc":"20512:6:8","nodeType":"YulIdentifier","src":"20512:6:8"},"nativeSrc":"20512:34:8","nodeType":"YulFunctionCall","src":"20512:34:8"},"variableNames":[{"name":"s","nativeSrc":"20507:1:8","nodeType":"YulIdentifier","src":"20507:1:8"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"20573:1:8","nodeType":"YulIdentifier","src":"20573:1:8"},{"arguments":[{"name":"pProof","nativeSrc":"20580:6:8","nodeType":"YulIdentifier","src":"20580:6:8"},{"name":"pZ","nativeSrc":"20588:2:8","nodeType":"YulIdentifier","src":"20588:2:8"}],"functionName":{"name":"add","nativeSrc":"20576:3:8","nodeType":"YulIdentifier","src":"20576:3:8"},"nativeSrc":"20576:15:8","nodeType":"YulFunctionCall","src":"20576:15:8"},{"name":"s","nativeSrc":"20593:1:8","nodeType":"YulIdentifier","src":"20593:1:8"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"20563:9:8","nodeType":"YulIdentifier","src":"20563:9:8"},"nativeSrc":"20563:32:8","nodeType":"YulFunctionCall","src":"20563:32:8"},"nativeSrc":"20563:32:8","nodeType":"YulExpressionStatement","src":"20563:32:8"},{"nativeSrc":"20629:69:8","nodeType":"YulAssignment","src":"20629:69:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20651:4:8","nodeType":"YulIdentifier","src":"20651:4:8"},{"name":"pBeta","nativeSrc":"20657:5:8","nodeType":"YulIdentifier","src":"20657:5:8"}],"functionName":{"name":"add","nativeSrc":"20647:3:8","nodeType":"YulIdentifier","src":"20647:3:8"},"nativeSrc":"20647:16:8","nodeType":"YulFunctionCall","src":"20647:16:8"}],"functionName":{"name":"mload","nativeSrc":"20641:5:8","nodeType":"YulIdentifier","src":"20641:5:8"},"nativeSrc":"20641:23:8","nodeType":"YulFunctionCall","src":"20641:23:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"20676:6:8","nodeType":"YulIdentifier","src":"20676:6:8"},{"name":"pEval_s1","nativeSrc":"20684:8:8","nodeType":"YulIdentifier","src":"20684:8:8"}],"functionName":{"name":"add","nativeSrc":"20672:3:8","nodeType":"YulIdentifier","src":"20672:3:8"},"nativeSrc":"20672:21:8","nodeType":"YulFunctionCall","src":"20672:21:8"}],"functionName":{"name":"mload","nativeSrc":"20666:5:8","nodeType":"YulIdentifier","src":"20666:5:8"},"nativeSrc":"20666:28:8","nodeType":"YulFunctionCall","src":"20666:28:8"},{"name":"q","nativeSrc":"20696:1:8","nodeType":"YulIdentifier","src":"20696:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"20634:6:8","nodeType":"YulIdentifier","src":"20634:6:8"},"nativeSrc":"20634:64:8","nodeType":"YulFunctionCall","src":"20634:64:8"},"variableNames":[{"name":"s","nativeSrc":"20629:1:8","nodeType":"YulIdentifier","src":"20629:1:8"}]},{"nativeSrc":"20715:46:8","nodeType":"YulAssignment","src":"20715:46:8","value":{"arguments":[{"name":"s","nativeSrc":"20727:1:8","nodeType":"YulIdentifier","src":"20727:1:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"20740:6:8","nodeType":"YulIdentifier","src":"20740:6:8"},{"name":"pEval_a","nativeSrc":"20748:7:8","nodeType":"YulIdentifier","src":"20748:7:8"}],"functionName":{"name":"add","nativeSrc":"20736:3:8","nodeType":"YulIdentifier","src":"20736:3:8"},"nativeSrc":"20736:20:8","nodeType":"YulFunctionCall","src":"20736:20:8"}],"functionName":{"name":"mload","nativeSrc":"20730:5:8","nodeType":"YulIdentifier","src":"20730:5:8"},"nativeSrc":"20730:27:8","nodeType":"YulFunctionCall","src":"20730:27:8"},{"name":"q","nativeSrc":"20759:1:8","nodeType":"YulIdentifier","src":"20759:1:8"}],"functionName":{"name":"addmod","nativeSrc":"20720:6:8","nodeType":"YulIdentifier","src":"20720:6:8"},"nativeSrc":"20720:41:8","nodeType":"YulFunctionCall","src":"20720:41:8"},"variableNames":[{"name":"s","nativeSrc":"20715:1:8","nodeType":"YulIdentifier","src":"20715:1:8"}]},{"nativeSrc":"20778:43:8","nodeType":"YulAssignment","src":"20778:43:8","value":{"arguments":[{"name":"s","nativeSrc":"20790:1:8","nodeType":"YulIdentifier","src":"20790:1:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20803:4:8","nodeType":"YulIdentifier","src":"20803:4:8"},{"name":"pGamma","nativeSrc":"20809:6:8","nodeType":"YulIdentifier","src":"20809:6:8"}],"functionName":{"name":"add","nativeSrc":"20799:3:8","nodeType":"YulIdentifier","src":"20799:3:8"},"nativeSrc":"20799:17:8","nodeType":"YulFunctionCall","src":"20799:17:8"}],"functionName":{"name":"mload","nativeSrc":"20793:5:8","nodeType":"YulIdentifier","src":"20793:5:8"},"nativeSrc":"20793:24:8","nodeType":"YulFunctionCall","src":"20793:24:8"},{"name":"q","nativeSrc":"20819:1:8","nodeType":"YulIdentifier","src":"20819:1:8"}],"functionName":{"name":"addmod","nativeSrc":"20783:6:8","nodeType":"YulIdentifier","src":"20783:6:8"},"nativeSrc":"20783:38:8","nodeType":"YulFunctionCall","src":"20783:38:8"},"variableNames":[{"name":"s","nativeSrc":"20778:1:8","nodeType":"YulIdentifier","src":"20778:1:8"}]},{"nativeSrc":"20838:70:8","nodeType":"YulAssignment","src":"20838:70:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"20861:4:8","nodeType":"YulIdentifier","src":"20861:4:8"},{"name":"pBeta","nativeSrc":"20867:5:8","nodeType":"YulIdentifier","src":"20867:5:8"}],"functionName":{"name":"add","nativeSrc":"20857:3:8","nodeType":"YulIdentifier","src":"20857:3:8"},"nativeSrc":"20857:16:8","nodeType":"YulFunctionCall","src":"20857:16:8"}],"functionName":{"name":"mload","nativeSrc":"20851:5:8","nodeType":"YulIdentifier","src":"20851:5:8"},"nativeSrc":"20851:23:8","nodeType":"YulFunctionCall","src":"20851:23:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"20886:6:8","nodeType":"YulIdentifier","src":"20886:6:8"},{"name":"pEval_s2","nativeSrc":"20894:8:8","nodeType":"YulIdentifier","src":"20894:8:8"}],"functionName":{"name":"add","nativeSrc":"20882:3:8","nodeType":"YulIdentifier","src":"20882:3:8"},"nativeSrc":"20882:21:8","nodeType":"YulFunctionCall","src":"20882:21:8"}],"functionName":{"name":"mload","nativeSrc":"20876:5:8","nodeType":"YulIdentifier","src":"20876:5:8"},"nativeSrc":"20876:28:8","nodeType":"YulFunctionCall","src":"20876:28:8"},{"name":"q","nativeSrc":"20906:1:8","nodeType":"YulIdentifier","src":"20906:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"20844:6:8","nodeType":"YulIdentifier","src":"20844:6:8"},"nativeSrc":"20844:64:8","nodeType":"YulFunctionCall","src":"20844:64:8"},"variableNames":[{"name":"s1","nativeSrc":"20838:2:8","nodeType":"YulIdentifier","src":"20838:2:8"}]},{"nativeSrc":"20925:48:8","nodeType":"YulAssignment","src":"20925:48:8","value":{"arguments":[{"name":"s1","nativeSrc":"20938:2:8","nodeType":"YulIdentifier","src":"20938:2:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"20952:6:8","nodeType":"YulIdentifier","src":"20952:6:8"},{"name":"pEval_b","nativeSrc":"20960:7:8","nodeType":"YulIdentifier","src":"20960:7:8"}],"functionName":{"name":"add","nativeSrc":"20948:3:8","nodeType":"YulIdentifier","src":"20948:3:8"},"nativeSrc":"20948:20:8","nodeType":"YulFunctionCall","src":"20948:20:8"}],"functionName":{"name":"mload","nativeSrc":"20942:5:8","nodeType":"YulIdentifier","src":"20942:5:8"},"nativeSrc":"20942:27:8","nodeType":"YulFunctionCall","src":"20942:27:8"},{"name":"q","nativeSrc":"20971:1:8","nodeType":"YulIdentifier","src":"20971:1:8"}],"functionName":{"name":"addmod","nativeSrc":"20931:6:8","nodeType":"YulIdentifier","src":"20931:6:8"},"nativeSrc":"20931:42:8","nodeType":"YulFunctionCall","src":"20931:42:8"},"variableNames":[{"name":"s1","nativeSrc":"20925:2:8","nodeType":"YulIdentifier","src":"20925:2:8"}]},{"nativeSrc":"20990:45:8","nodeType":"YulAssignment","src":"20990:45:8","value":{"arguments":[{"name":"s1","nativeSrc":"21003:2:8","nodeType":"YulIdentifier","src":"21003:2:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21017:4:8","nodeType":"YulIdentifier","src":"21017:4:8"},{"name":"pGamma","nativeSrc":"21023:6:8","nodeType":"YulIdentifier","src":"21023:6:8"}],"functionName":{"name":"add","nativeSrc":"21013:3:8","nodeType":"YulIdentifier","src":"21013:3:8"},"nativeSrc":"21013:17:8","nodeType":"YulFunctionCall","src":"21013:17:8"}],"functionName":{"name":"mload","nativeSrc":"21007:5:8","nodeType":"YulIdentifier","src":"21007:5:8"},"nativeSrc":"21007:24:8","nodeType":"YulFunctionCall","src":"21007:24:8"},{"name":"q","nativeSrc":"21033:1:8","nodeType":"YulIdentifier","src":"21033:1:8"}],"functionName":{"name":"addmod","nativeSrc":"20996:6:8","nodeType":"YulIdentifier","src":"20996:6:8"},"nativeSrc":"20996:39:8","nodeType":"YulFunctionCall","src":"20996:39:8"},"variableNames":[{"name":"s1","nativeSrc":"20990:2:8","nodeType":"YulIdentifier","src":"20990:2:8"}]},{"nativeSrc":"21052:21:8","nodeType":"YulAssignment","src":"21052:21:8","value":{"arguments":[{"name":"s","nativeSrc":"21064:1:8","nodeType":"YulIdentifier","src":"21064:1:8"},{"name":"s1","nativeSrc":"21067:2:8","nodeType":"YulIdentifier","src":"21067:2:8"},{"name":"q","nativeSrc":"21071:1:8","nodeType":"YulIdentifier","src":"21071:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"21057:6:8","nodeType":"YulIdentifier","src":"21057:6:8"},"nativeSrc":"21057:16:8","nodeType":"YulFunctionCall","src":"21057:16:8"},"variableNames":[{"name":"s","nativeSrc":"21052:1:8","nodeType":"YulIdentifier","src":"21052:1:8"}]},{"nativeSrc":"21090:43:8","nodeType":"YulAssignment","src":"21090:43:8","value":{"arguments":[{"name":"s","nativeSrc":"21102:1:8","nodeType":"YulIdentifier","src":"21102:1:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21115:4:8","nodeType":"YulIdentifier","src":"21115:4:8"},{"name":"pAlpha","nativeSrc":"21121:6:8","nodeType":"YulIdentifier","src":"21121:6:8"}],"functionName":{"name":"add","nativeSrc":"21111:3:8","nodeType":"YulIdentifier","src":"21111:3:8"},"nativeSrc":"21111:17:8","nodeType":"YulFunctionCall","src":"21111:17:8"}],"functionName":{"name":"mload","nativeSrc":"21105:5:8","nodeType":"YulIdentifier","src":"21105:5:8"},"nativeSrc":"21105:24:8","nodeType":"YulFunctionCall","src":"21105:24:8"},{"name":"q","nativeSrc":"21131:1:8","nodeType":"YulIdentifier","src":"21131:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"21095:6:8","nodeType":"YulIdentifier","src":"21095:6:8"},"nativeSrc":"21095:38:8","nodeType":"YulFunctionCall","src":"21095:38:8"},"variableNames":[{"name":"s","nativeSrc":"21090:1:8","nodeType":"YulIdentifier","src":"21090:1:8"}]},{"nativeSrc":"21150:40:8","nodeType":"YulAssignment","src":"21150:40:8","value":{"arguments":[{"name":"s","nativeSrc":"21162:1:8","nodeType":"YulIdentifier","src":"21162:1:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21175:4:8","nodeType":"YulIdentifier","src":"21175:4:8"},{"name":"pV1","nativeSrc":"21181:3:8","nodeType":"YulIdentifier","src":"21181:3:8"}],"functionName":{"name":"add","nativeSrc":"21171:3:8","nodeType":"YulIdentifier","src":"21171:3:8"},"nativeSrc":"21171:14:8","nodeType":"YulFunctionCall","src":"21171:14:8"}],"functionName":{"name":"mload","nativeSrc":"21165:5:8","nodeType":"YulIdentifier","src":"21165:5:8"},"nativeSrc":"21165:21:8","nodeType":"YulFunctionCall","src":"21165:21:8"},{"name":"q","nativeSrc":"21188:1:8","nodeType":"YulIdentifier","src":"21188:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"21155:6:8","nodeType":"YulIdentifier","src":"21155:6:8"},"nativeSrc":"21155:35:8","nodeType":"YulFunctionCall","src":"21155:35:8"},"variableNames":[{"name":"s","nativeSrc":"21150:1:8","nodeType":"YulIdentifier","src":"21150:1:8"}]},{"nativeSrc":"21207:42:8","nodeType":"YulAssignment","src":"21207:42:8","value":{"arguments":[{"name":"s","nativeSrc":"21219:1:8","nodeType":"YulIdentifier","src":"21219:1:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21232:4:8","nodeType":"YulIdentifier","src":"21232:4:8"},{"name":"pBeta","nativeSrc":"21238:5:8","nodeType":"YulIdentifier","src":"21238:5:8"}],"functionName":{"name":"add","nativeSrc":"21228:3:8","nodeType":"YulIdentifier","src":"21228:3:8"},"nativeSrc":"21228:16:8","nodeType":"YulFunctionCall","src":"21228:16:8"}],"functionName":{"name":"mload","nativeSrc":"21222:5:8","nodeType":"YulIdentifier","src":"21222:5:8"},"nativeSrc":"21222:23:8","nodeType":"YulFunctionCall","src":"21222:23:8"},{"name":"q","nativeSrc":"21247:1:8","nodeType":"YulIdentifier","src":"21247:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"21212:6:8","nodeType":"YulIdentifier","src":"21212:6:8"},"nativeSrc":"21212:37:8","nodeType":"YulFunctionCall","src":"21212:37:8"},"variableNames":[{"name":"s","nativeSrc":"21207:1:8","nodeType":"YulIdentifier","src":"21207:1:8"}]},{"nativeSrc":"21266:47:8","nodeType":"YulAssignment","src":"21266:47:8","value":{"arguments":[{"name":"s","nativeSrc":"21278:1:8","nodeType":"YulIdentifier","src":"21278:1:8"},{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"21291:6:8","nodeType":"YulIdentifier","src":"21291:6:8"},{"name":"pEval_zw","nativeSrc":"21299:8:8","nodeType":"YulIdentifier","src":"21299:8:8"}],"functionName":{"name":"add","nativeSrc":"21287:3:8","nodeType":"YulIdentifier","src":"21287:3:8"},"nativeSrc":"21287:21:8","nodeType":"YulFunctionCall","src":"21287:21:8"}],"functionName":{"name":"mload","nativeSrc":"21281:5:8","nodeType":"YulIdentifier","src":"21281:5:8"},"nativeSrc":"21281:28:8","nodeType":"YulFunctionCall","src":"21281:28:8"},{"name":"q","nativeSrc":"21311:1:8","nodeType":"YulIdentifier","src":"21311:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"21271:6:8","nodeType":"YulIdentifier","src":"21271:6:8"},"nativeSrc":"21271:42:8","nodeType":"YulFunctionCall","src":"21271:42:8"},"variableNames":[{"name":"s","nativeSrc":"21266:1:8","nodeType":"YulIdentifier","src":"21266:1:8"}]},{"nativeSrc":"21330:22:8","nodeType":"YulAssignment","src":"21330:22:8","value":{"arguments":[{"arguments":[{"name":"q","nativeSrc":"21343:1:8","nodeType":"YulIdentifier","src":"21343:1:8"},{"name":"s","nativeSrc":"21346:1:8","nodeType":"YulIdentifier","src":"21346:1:8"}],"functionName":{"name":"sub","nativeSrc":"21339:3:8","nodeType":"YulIdentifier","src":"21339:3:8"},"nativeSrc":"21339:9:8","nodeType":"YulFunctionCall","src":"21339:9:8"},{"name":"q","nativeSrc":"21350:1:8","nodeType":"YulIdentifier","src":"21350:1:8"}],"functionName":{"name":"mod","nativeSrc":"21335:3:8","nodeType":"YulIdentifier","src":"21335:3:8"},"nativeSrc":"21335:17:8","nodeType":"YulFunctionCall","src":"21335:17:8"},"variableNames":[{"name":"s","nativeSrc":"21330:1:8","nodeType":"YulIdentifier","src":"21330:1:8"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"21380:1:8","nodeType":"YulIdentifier","src":"21380:1:8"},{"name":"S3x","nativeSrc":"21383:3:8","nodeType":"YulIdentifier","src":"21383:3:8"},{"name":"S3y","nativeSrc":"21388:3:8","nodeType":"YulIdentifier","src":"21388:3:8"},{"name":"s","nativeSrc":"21393:1:8","nodeType":"YulIdentifier","src":"21393:1:8"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"21369:10:8","nodeType":"YulIdentifier","src":"21369:10:8"},"nativeSrc":"21369:26:8","nodeType":"YulFunctionCall","src":"21369:26:8"},"nativeSrc":"21369:26:8","nodeType":"YulExpressionStatement","src":"21369:26:8"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21452:1:8","nodeType":"YulIdentifier","src":"21452:1:8"},{"arguments":[{"name":"pProof","nativeSrc":"21460:6:8","nodeType":"YulIdentifier","src":"21460:6:8"},{"name":"pT1","nativeSrc":"21468:3:8","nodeType":"YulIdentifier","src":"21468:3:8"}],"functionName":{"name":"add","nativeSrc":"21456:3:8","nodeType":"YulIdentifier","src":"21456:3:8"},"nativeSrc":"21456:16:8","nodeType":"YulFunctionCall","src":"21456:16:8"}],"functionName":{"name":"g1_acc","nativeSrc":"21445:6:8","nodeType":"YulIdentifier","src":"21445:6:8"},"nativeSrc":"21445:28:8","nodeType":"YulFunctionCall","src":"21445:28:8"},"nativeSrc":"21445:28:8","nodeType":"YulExpressionStatement","src":"21445:28:8"},{"nativeSrc":"21491:27:8","nodeType":"YulAssignment","src":"21491:27:8","value":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21506:4:8","nodeType":"YulIdentifier","src":"21506:4:8"},{"name":"pXin","nativeSrc":"21512:4:8","nodeType":"YulIdentifier","src":"21512:4:8"}],"functionName":{"name":"add","nativeSrc":"21502:3:8","nodeType":"YulIdentifier","src":"21502:3:8"},"nativeSrc":"21502:15:8","nodeType":"YulFunctionCall","src":"21502:15:8"}],"functionName":{"name":"mload","nativeSrc":"21496:5:8","nodeType":"YulIdentifier","src":"21496:5:8"},"nativeSrc":"21496:22:8","nodeType":"YulFunctionCall","src":"21496:22:8"},"variableNames":[{"name":"s","nativeSrc":"21491:1:8","nodeType":"YulIdentifier","src":"21491:1:8"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"21545:1:8","nodeType":"YulIdentifier","src":"21545:1:8"},{"arguments":[{"name":"pProof","nativeSrc":"21552:6:8","nodeType":"YulIdentifier","src":"21552:6:8"},{"name":"pT2","nativeSrc":"21560:3:8","nodeType":"YulIdentifier","src":"21560:3:8"}],"functionName":{"name":"add","nativeSrc":"21548:3:8","nodeType":"YulIdentifier","src":"21548:3:8"},"nativeSrc":"21548:16:8","nodeType":"YulFunctionCall","src":"21548:16:8"},{"name":"s","nativeSrc":"21566:1:8","nodeType":"YulIdentifier","src":"21566:1:8"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"21535:9:8","nodeType":"YulIdentifier","src":"21535:9:8"},"nativeSrc":"21535:33:8","nodeType":"YulFunctionCall","src":"21535:33:8"},"nativeSrc":"21535:33:8","nodeType":"YulExpressionStatement","src":"21535:33:8"},{"nativeSrc":"21602:20:8","nodeType":"YulAssignment","src":"21602:20:8","value":{"arguments":[{"name":"s","nativeSrc":"21614:1:8","nodeType":"YulIdentifier","src":"21614:1:8"},{"name":"s","nativeSrc":"21617:1:8","nodeType":"YulIdentifier","src":"21617:1:8"},{"name":"q","nativeSrc":"21620:1:8","nodeType":"YulIdentifier","src":"21620:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"21607:6:8","nodeType":"YulIdentifier","src":"21607:6:8"},"nativeSrc":"21607:15:8","nodeType":"YulFunctionCall","src":"21607:15:8"},"variableNames":[{"name":"s","nativeSrc":"21602:1:8","nodeType":"YulIdentifier","src":"21602:1:8"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"21649:1:8","nodeType":"YulIdentifier","src":"21649:1:8"},{"arguments":[{"name":"pProof","nativeSrc":"21656:6:8","nodeType":"YulIdentifier","src":"21656:6:8"},{"name":"pT3","nativeSrc":"21664:3:8","nodeType":"YulIdentifier","src":"21664:3:8"}],"functionName":{"name":"add","nativeSrc":"21652:3:8","nodeType":"YulIdentifier","src":"21652:3:8"},"nativeSrc":"21652:16:8","nodeType":"YulFunctionCall","src":"21652:16:8"},{"name":"s","nativeSrc":"21670:1:8","nodeType":"YulIdentifier","src":"21670:1:8"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"21639:9:8","nodeType":"YulIdentifier","src":"21639:9:8"},"nativeSrc":"21639:33:8","nodeType":"YulFunctionCall","src":"21639:33:8"},"nativeSrc":"21639:33:8","nodeType":"YulExpressionStatement","src":"21639:33:8"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21716:1:8","nodeType":"YulIdentifier","src":"21716:1:8"},{"arguments":[{"name":"pProof","nativeSrc":"21723:6:8","nodeType":"YulIdentifier","src":"21723:6:8"},{"name":"pA","nativeSrc":"21731:2:8","nodeType":"YulIdentifier","src":"21731:2:8"}],"functionName":{"name":"add","nativeSrc":"21719:3:8","nodeType":"YulIdentifier","src":"21719:3:8"},"nativeSrc":"21719:15:8","nodeType":"YulFunctionCall","src":"21719:15:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21746:4:8","nodeType":"YulIdentifier","src":"21746:4:8"},{"name":"pV2","nativeSrc":"21752:3:8","nodeType":"YulIdentifier","src":"21752:3:8"}],"functionName":{"name":"add","nativeSrc":"21742:3:8","nodeType":"YulIdentifier","src":"21742:3:8"},"nativeSrc":"21742:14:8","nodeType":"YulFunctionCall","src":"21742:14:8"}],"functionName":{"name":"mload","nativeSrc":"21736:5:8","nodeType":"YulIdentifier","src":"21736:5:8"},"nativeSrc":"21736:21:8","nodeType":"YulFunctionCall","src":"21736:21:8"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"21706:9:8","nodeType":"YulIdentifier","src":"21706:9:8"},"nativeSrc":"21706:52:8","nodeType":"YulFunctionCall","src":"21706:52:8"},"nativeSrc":"21706:52:8","nodeType":"YulExpressionStatement","src":"21706:52:8"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21785:1:8","nodeType":"YulIdentifier","src":"21785:1:8"},{"arguments":[{"name":"pProof","nativeSrc":"21792:6:8","nodeType":"YulIdentifier","src":"21792:6:8"},{"name":"pB","nativeSrc":"21800:2:8","nodeType":"YulIdentifier","src":"21800:2:8"}],"functionName":{"name":"add","nativeSrc":"21788:3:8","nodeType":"YulIdentifier","src":"21788:3:8"},"nativeSrc":"21788:15:8","nodeType":"YulFunctionCall","src":"21788:15:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21815:4:8","nodeType":"YulIdentifier","src":"21815:4:8"},{"name":"pV3","nativeSrc":"21821:3:8","nodeType":"YulIdentifier","src":"21821:3:8"}],"functionName":{"name":"add","nativeSrc":"21811:3:8","nodeType":"YulIdentifier","src":"21811:3:8"},"nativeSrc":"21811:14:8","nodeType":"YulFunctionCall","src":"21811:14:8"}],"functionName":{"name":"mload","nativeSrc":"21805:5:8","nodeType":"YulIdentifier","src":"21805:5:8"},"nativeSrc":"21805:21:8","nodeType":"YulFunctionCall","src":"21805:21:8"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"21775:9:8","nodeType":"YulIdentifier","src":"21775:9:8"},"nativeSrc":"21775:52:8","nodeType":"YulFunctionCall","src":"21775:52:8"},"nativeSrc":"21775:52:8","nodeType":"YulExpressionStatement","src":"21775:52:8"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21854:1:8","nodeType":"YulIdentifier","src":"21854:1:8"},{"arguments":[{"name":"pProof","nativeSrc":"21861:6:8","nodeType":"YulIdentifier","src":"21861:6:8"},{"name":"pC","nativeSrc":"21869:2:8","nodeType":"YulIdentifier","src":"21869:2:8"}],"functionName":{"name":"add","nativeSrc":"21857:3:8","nodeType":"YulIdentifier","src":"21857:3:8"},"nativeSrc":"21857:15:8","nodeType":"YulFunctionCall","src":"21857:15:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21884:4:8","nodeType":"YulIdentifier","src":"21884:4:8"},{"name":"pV4","nativeSrc":"21890:3:8","nodeType":"YulIdentifier","src":"21890:3:8"}],"functionName":{"name":"add","nativeSrc":"21880:3:8","nodeType":"YulIdentifier","src":"21880:3:8"},"nativeSrc":"21880:14:8","nodeType":"YulFunctionCall","src":"21880:14:8"}],"functionName":{"name":"mload","nativeSrc":"21874:5:8","nodeType":"YulIdentifier","src":"21874:5:8"},"nativeSrc":"21874:21:8","nodeType":"YulFunctionCall","src":"21874:21:8"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"21844:9:8","nodeType":"YulIdentifier","src":"21844:9:8"},"nativeSrc":"21844:52:8","nodeType":"YulFunctionCall","src":"21844:52:8"},"nativeSrc":"21844:52:8","nodeType":"YulExpressionStatement","src":"21844:52:8"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21924:1:8","nodeType":"YulIdentifier","src":"21924:1:8"},{"name":"S1x","nativeSrc":"21927:3:8","nodeType":"YulIdentifier","src":"21927:3:8"},{"name":"S1y","nativeSrc":"21932:3:8","nodeType":"YulIdentifier","src":"21932:3:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"21947:4:8","nodeType":"YulIdentifier","src":"21947:4:8"},{"name":"pV5","nativeSrc":"21953:3:8","nodeType":"YulIdentifier","src":"21953:3:8"}],"functionName":{"name":"add","nativeSrc":"21943:3:8","nodeType":"YulIdentifier","src":"21943:3:8"},"nativeSrc":"21943:14:8","nodeType":"YulFunctionCall","src":"21943:14:8"}],"functionName":{"name":"mload","nativeSrc":"21937:5:8","nodeType":"YulIdentifier","src":"21937:5:8"},"nativeSrc":"21937:21:8","nodeType":"YulFunctionCall","src":"21937:21:8"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"21913:10:8","nodeType":"YulIdentifier","src":"21913:10:8"},"nativeSrc":"21913:46:8","nodeType":"YulFunctionCall","src":"21913:46:8"},"nativeSrc":"21913:46:8","nodeType":"YulExpressionStatement","src":"21913:46:8"},{"expression":{"arguments":[{"name":"p","nativeSrc":"21987:1:8","nodeType":"YulIdentifier","src":"21987:1:8"},{"name":"S2x","nativeSrc":"21990:3:8","nodeType":"YulIdentifier","src":"21990:3:8"},{"name":"S2y","nativeSrc":"21995:3:8","nodeType":"YulIdentifier","src":"21995:3:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22010:4:8","nodeType":"YulIdentifier","src":"22010:4:8"},{"name":"pV6","nativeSrc":"22016:3:8","nodeType":"YulIdentifier","src":"22016:3:8"}],"functionName":{"name":"add","nativeSrc":"22006:3:8","nodeType":"YulIdentifier","src":"22006:3:8"},"nativeSrc":"22006:14:8","nodeType":"YulFunctionCall","src":"22006:14:8"}],"functionName":{"name":"mload","nativeSrc":"22000:5:8","nodeType":"YulIdentifier","src":"22000:5:8"},"nativeSrc":"22000:21:8","nodeType":"YulFunctionCall","src":"22000:21:8"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"21976:10:8","nodeType":"YulIdentifier","src":"21976:10:8"},"nativeSrc":"21976:46:8","nodeType":"YulFunctionCall","src":"21976:46:8"},"nativeSrc":"21976:46:8","nodeType":"YulExpressionStatement","src":"21976:46:8"},{"nativeSrc":"22087:30:8","nodeType":"YulAssignment","src":"22087:30:8","value":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22102:4:8","nodeType":"YulIdentifier","src":"22102:4:8"},{"name":"pEval_t","nativeSrc":"22108:7:8","nodeType":"YulIdentifier","src":"22108:7:8"}],"functionName":{"name":"add","nativeSrc":"22098:3:8","nodeType":"YulIdentifier","src":"22098:3:8"},"nativeSrc":"22098:18:8","nodeType":"YulFunctionCall","src":"22098:18:8"}],"functionName":{"name":"mload","nativeSrc":"22092:5:8","nodeType":"YulIdentifier","src":"22092:5:8"},"nativeSrc":"22092:25:8","nodeType":"YulFunctionCall","src":"22092:25:8"},"variableNames":[{"name":"s","nativeSrc":"22087:1:8","nodeType":"YulIdentifier","src":"22087:1:8"}]},{"nativeSrc":"22134:80:8","nodeType":"YulAssignment","src":"22134:80:8","value":{"arguments":[{"name":"s","nativeSrc":"22146:1:8","nodeType":"YulIdentifier","src":"22146:1:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22166:6:8","nodeType":"YulIdentifier","src":"22166:6:8"},{"name":"pEval_r","nativeSrc":"22174:7:8","nodeType":"YulIdentifier","src":"22174:7:8"}],"functionName":{"name":"add","nativeSrc":"22162:3:8","nodeType":"YulIdentifier","src":"22162:3:8"},"nativeSrc":"22162:20:8","nodeType":"YulFunctionCall","src":"22162:20:8"}],"functionName":{"name":"mload","nativeSrc":"22156:5:8","nodeType":"YulIdentifier","src":"22156:5:8"},"nativeSrc":"22156:27:8","nodeType":"YulFunctionCall","src":"22156:27:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22195:4:8","nodeType":"YulIdentifier","src":"22195:4:8"},{"name":"pV1","nativeSrc":"22201:3:8","nodeType":"YulIdentifier","src":"22201:3:8"}],"functionName":{"name":"add","nativeSrc":"22191:3:8","nodeType":"YulIdentifier","src":"22191:3:8"},"nativeSrc":"22191:14:8","nodeType":"YulFunctionCall","src":"22191:14:8"}],"functionName":{"name":"mload","nativeSrc":"22185:5:8","nodeType":"YulIdentifier","src":"22185:5:8"},"nativeSrc":"22185:21:8","nodeType":"YulFunctionCall","src":"22185:21:8"},{"name":"q","nativeSrc":"22208:1:8","nodeType":"YulIdentifier","src":"22208:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"22149:6:8","nodeType":"YulIdentifier","src":"22149:6:8"},"nativeSrc":"22149:61:8","nodeType":"YulFunctionCall","src":"22149:61:8"},{"name":"q","nativeSrc":"22212:1:8","nodeType":"YulIdentifier","src":"22212:1:8"}],"functionName":{"name":"addmod","nativeSrc":"22139:6:8","nodeType":"YulIdentifier","src":"22139:6:8"},"nativeSrc":"22139:75:8","nodeType":"YulFunctionCall","src":"22139:75:8"},"variableNames":[{"name":"s","nativeSrc":"22134:1:8","nodeType":"YulIdentifier","src":"22134:1:8"}]},{"nativeSrc":"22231:80:8","nodeType":"YulAssignment","src":"22231:80:8","value":{"arguments":[{"name":"s","nativeSrc":"22243:1:8","nodeType":"YulIdentifier","src":"22243:1:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22263:6:8","nodeType":"YulIdentifier","src":"22263:6:8"},{"name":"pEval_a","nativeSrc":"22271:7:8","nodeType":"YulIdentifier","src":"22271:7:8"}],"functionName":{"name":"add","nativeSrc":"22259:3:8","nodeType":"YulIdentifier","src":"22259:3:8"},"nativeSrc":"22259:20:8","nodeType":"YulFunctionCall","src":"22259:20:8"}],"functionName":{"name":"mload","nativeSrc":"22253:5:8","nodeType":"YulIdentifier","src":"22253:5:8"},"nativeSrc":"22253:27:8","nodeType":"YulFunctionCall","src":"22253:27:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22292:4:8","nodeType":"YulIdentifier","src":"22292:4:8"},{"name":"pV2","nativeSrc":"22298:3:8","nodeType":"YulIdentifier","src":"22298:3:8"}],"functionName":{"name":"add","nativeSrc":"22288:3:8","nodeType":"YulIdentifier","src":"22288:3:8"},"nativeSrc":"22288:14:8","nodeType":"YulFunctionCall","src":"22288:14:8"}],"functionName":{"name":"mload","nativeSrc":"22282:5:8","nodeType":"YulIdentifier","src":"22282:5:8"},"nativeSrc":"22282:21:8","nodeType":"YulFunctionCall","src":"22282:21:8"},{"name":"q","nativeSrc":"22305:1:8","nodeType":"YulIdentifier","src":"22305:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"22246:6:8","nodeType":"YulIdentifier","src":"22246:6:8"},"nativeSrc":"22246:61:8","nodeType":"YulFunctionCall","src":"22246:61:8"},{"name":"q","nativeSrc":"22309:1:8","nodeType":"YulIdentifier","src":"22309:1:8"}],"functionName":{"name":"addmod","nativeSrc":"22236:6:8","nodeType":"YulIdentifier","src":"22236:6:8"},"nativeSrc":"22236:75:8","nodeType":"YulFunctionCall","src":"22236:75:8"},"variableNames":[{"name":"s","nativeSrc":"22231:1:8","nodeType":"YulIdentifier","src":"22231:1:8"}]},{"nativeSrc":"22328:80:8","nodeType":"YulAssignment","src":"22328:80:8","value":{"arguments":[{"name":"s","nativeSrc":"22340:1:8","nodeType":"YulIdentifier","src":"22340:1:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22360:6:8","nodeType":"YulIdentifier","src":"22360:6:8"},{"name":"pEval_b","nativeSrc":"22368:7:8","nodeType":"YulIdentifier","src":"22368:7:8"}],"functionName":{"name":"add","nativeSrc":"22356:3:8","nodeType":"YulIdentifier","src":"22356:3:8"},"nativeSrc":"22356:20:8","nodeType":"YulFunctionCall","src":"22356:20:8"}],"functionName":{"name":"mload","nativeSrc":"22350:5:8","nodeType":"YulIdentifier","src":"22350:5:8"},"nativeSrc":"22350:27:8","nodeType":"YulFunctionCall","src":"22350:27:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22389:4:8","nodeType":"YulIdentifier","src":"22389:4:8"},{"name":"pV3","nativeSrc":"22395:3:8","nodeType":"YulIdentifier","src":"22395:3:8"}],"functionName":{"name":"add","nativeSrc":"22385:3:8","nodeType":"YulIdentifier","src":"22385:3:8"},"nativeSrc":"22385:14:8","nodeType":"YulFunctionCall","src":"22385:14:8"}],"functionName":{"name":"mload","nativeSrc":"22379:5:8","nodeType":"YulIdentifier","src":"22379:5:8"},"nativeSrc":"22379:21:8","nodeType":"YulFunctionCall","src":"22379:21:8"},{"name":"q","nativeSrc":"22402:1:8","nodeType":"YulIdentifier","src":"22402:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"22343:6:8","nodeType":"YulIdentifier","src":"22343:6:8"},"nativeSrc":"22343:61:8","nodeType":"YulFunctionCall","src":"22343:61:8"},{"name":"q","nativeSrc":"22406:1:8","nodeType":"YulIdentifier","src":"22406:1:8"}],"functionName":{"name":"addmod","nativeSrc":"22333:6:8","nodeType":"YulIdentifier","src":"22333:6:8"},"nativeSrc":"22333:75:8","nodeType":"YulFunctionCall","src":"22333:75:8"},"variableNames":[{"name":"s","nativeSrc":"22328:1:8","nodeType":"YulIdentifier","src":"22328:1:8"}]},{"nativeSrc":"22425:80:8","nodeType":"YulAssignment","src":"22425:80:8","value":{"arguments":[{"name":"s","nativeSrc":"22437:1:8","nodeType":"YulIdentifier","src":"22437:1:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22457:6:8","nodeType":"YulIdentifier","src":"22457:6:8"},{"name":"pEval_c","nativeSrc":"22465:7:8","nodeType":"YulIdentifier","src":"22465:7:8"}],"functionName":{"name":"add","nativeSrc":"22453:3:8","nodeType":"YulIdentifier","src":"22453:3:8"},"nativeSrc":"22453:20:8","nodeType":"YulFunctionCall","src":"22453:20:8"}],"functionName":{"name":"mload","nativeSrc":"22447:5:8","nodeType":"YulIdentifier","src":"22447:5:8"},"nativeSrc":"22447:27:8","nodeType":"YulFunctionCall","src":"22447:27:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22486:4:8","nodeType":"YulIdentifier","src":"22486:4:8"},{"name":"pV4","nativeSrc":"22492:3:8","nodeType":"YulIdentifier","src":"22492:3:8"}],"functionName":{"name":"add","nativeSrc":"22482:3:8","nodeType":"YulIdentifier","src":"22482:3:8"},"nativeSrc":"22482:14:8","nodeType":"YulFunctionCall","src":"22482:14:8"}],"functionName":{"name":"mload","nativeSrc":"22476:5:8","nodeType":"YulIdentifier","src":"22476:5:8"},"nativeSrc":"22476:21:8","nodeType":"YulFunctionCall","src":"22476:21:8"},{"name":"q","nativeSrc":"22499:1:8","nodeType":"YulIdentifier","src":"22499:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"22440:6:8","nodeType":"YulIdentifier","src":"22440:6:8"},"nativeSrc":"22440:61:8","nodeType":"YulFunctionCall","src":"22440:61:8"},{"name":"q","nativeSrc":"22503:1:8","nodeType":"YulIdentifier","src":"22503:1:8"}],"functionName":{"name":"addmod","nativeSrc":"22430:6:8","nodeType":"YulIdentifier","src":"22430:6:8"},"nativeSrc":"22430:75:8","nodeType":"YulFunctionCall","src":"22430:75:8"},"variableNames":[{"name":"s","nativeSrc":"22425:1:8","nodeType":"YulIdentifier","src":"22425:1:8"}]},{"nativeSrc":"22522:81:8","nodeType":"YulAssignment","src":"22522:81:8","value":{"arguments":[{"name":"s","nativeSrc":"22534:1:8","nodeType":"YulIdentifier","src":"22534:1:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22554:6:8","nodeType":"YulIdentifier","src":"22554:6:8"},{"name":"pEval_s1","nativeSrc":"22562:8:8","nodeType":"YulIdentifier","src":"22562:8:8"}],"functionName":{"name":"add","nativeSrc":"22550:3:8","nodeType":"YulIdentifier","src":"22550:3:8"},"nativeSrc":"22550:21:8","nodeType":"YulFunctionCall","src":"22550:21:8"}],"functionName":{"name":"mload","nativeSrc":"22544:5:8","nodeType":"YulIdentifier","src":"22544:5:8"},"nativeSrc":"22544:28:8","nodeType":"YulFunctionCall","src":"22544:28:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22584:4:8","nodeType":"YulIdentifier","src":"22584:4:8"},{"name":"pV5","nativeSrc":"22590:3:8","nodeType":"YulIdentifier","src":"22590:3:8"}],"functionName":{"name":"add","nativeSrc":"22580:3:8","nodeType":"YulIdentifier","src":"22580:3:8"},"nativeSrc":"22580:14:8","nodeType":"YulFunctionCall","src":"22580:14:8"}],"functionName":{"name":"mload","nativeSrc":"22574:5:8","nodeType":"YulIdentifier","src":"22574:5:8"},"nativeSrc":"22574:21:8","nodeType":"YulFunctionCall","src":"22574:21:8"},{"name":"q","nativeSrc":"22597:1:8","nodeType":"YulIdentifier","src":"22597:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"22537:6:8","nodeType":"YulIdentifier","src":"22537:6:8"},"nativeSrc":"22537:62:8","nodeType":"YulFunctionCall","src":"22537:62:8"},{"name":"q","nativeSrc":"22601:1:8","nodeType":"YulIdentifier","src":"22601:1:8"}],"functionName":{"name":"addmod","nativeSrc":"22527:6:8","nodeType":"YulIdentifier","src":"22527:6:8"},"nativeSrc":"22527:76:8","nodeType":"YulFunctionCall","src":"22527:76:8"},"variableNames":[{"name":"s","nativeSrc":"22522:1:8","nodeType":"YulIdentifier","src":"22522:1:8"}]},{"nativeSrc":"22620:81:8","nodeType":"YulAssignment","src":"22620:81:8","value":{"arguments":[{"name":"s","nativeSrc":"22632:1:8","nodeType":"YulIdentifier","src":"22632:1:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22652:6:8","nodeType":"YulIdentifier","src":"22652:6:8"},{"name":"pEval_s2","nativeSrc":"22660:8:8","nodeType":"YulIdentifier","src":"22660:8:8"}],"functionName":{"name":"add","nativeSrc":"22648:3:8","nodeType":"YulIdentifier","src":"22648:3:8"},"nativeSrc":"22648:21:8","nodeType":"YulFunctionCall","src":"22648:21:8"}],"functionName":{"name":"mload","nativeSrc":"22642:5:8","nodeType":"YulIdentifier","src":"22642:5:8"},"nativeSrc":"22642:28:8","nodeType":"YulFunctionCall","src":"22642:28:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22682:4:8","nodeType":"YulIdentifier","src":"22682:4:8"},{"name":"pV6","nativeSrc":"22688:3:8","nodeType":"YulIdentifier","src":"22688:3:8"}],"functionName":{"name":"add","nativeSrc":"22678:3:8","nodeType":"YulIdentifier","src":"22678:3:8"},"nativeSrc":"22678:14:8","nodeType":"YulFunctionCall","src":"22678:14:8"}],"functionName":{"name":"mload","nativeSrc":"22672:5:8","nodeType":"YulIdentifier","src":"22672:5:8"},"nativeSrc":"22672:21:8","nodeType":"YulFunctionCall","src":"22672:21:8"},{"name":"q","nativeSrc":"22695:1:8","nodeType":"YulIdentifier","src":"22695:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"22635:6:8","nodeType":"YulIdentifier","src":"22635:6:8"},"nativeSrc":"22635:62:8","nodeType":"YulFunctionCall","src":"22635:62:8"},{"name":"q","nativeSrc":"22699:1:8","nodeType":"YulIdentifier","src":"22699:1:8"}],"functionName":{"name":"addmod","nativeSrc":"22625:6:8","nodeType":"YulIdentifier","src":"22625:6:8"},"nativeSrc":"22625:76:8","nodeType":"YulFunctionCall","src":"22625:76:8"},"variableNames":[{"name":"s","nativeSrc":"22620:1:8","nodeType":"YulIdentifier","src":"22620:1:8"}]},{"nativeSrc":"22718:80:8","nodeType":"YulAssignment","src":"22718:80:8","value":{"arguments":[{"name":"s","nativeSrc":"22730:1:8","nodeType":"YulIdentifier","src":"22730:1:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"pProof","nativeSrc":"22750:6:8","nodeType":"YulIdentifier","src":"22750:6:8"},{"name":"pEval_zw","nativeSrc":"22758:8:8","nodeType":"YulIdentifier","src":"22758:8:8"}],"functionName":{"name":"add","nativeSrc":"22746:3:8","nodeType":"YulIdentifier","src":"22746:3:8"},"nativeSrc":"22746:21:8","nodeType":"YulFunctionCall","src":"22746:21:8"}],"functionName":{"name":"mload","nativeSrc":"22740:5:8","nodeType":"YulIdentifier","src":"22740:5:8"},"nativeSrc":"22740:28:8","nodeType":"YulFunctionCall","src":"22740:28:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22780:4:8","nodeType":"YulIdentifier","src":"22780:4:8"},{"name":"pU","nativeSrc":"22786:2:8","nodeType":"YulIdentifier","src":"22786:2:8"}],"functionName":{"name":"add","nativeSrc":"22776:3:8","nodeType":"YulIdentifier","src":"22776:3:8"},"nativeSrc":"22776:13:8","nodeType":"YulFunctionCall","src":"22776:13:8"}],"functionName":{"name":"mload","nativeSrc":"22770:5:8","nodeType":"YulIdentifier","src":"22770:5:8"},"nativeSrc":"22770:20:8","nodeType":"YulFunctionCall","src":"22770:20:8"},{"name":"q","nativeSrc":"22792:1:8","nodeType":"YulIdentifier","src":"22792:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"22733:6:8","nodeType":"YulIdentifier","src":"22733:6:8"},"nativeSrc":"22733:61:8","nodeType":"YulFunctionCall","src":"22733:61:8"},{"name":"q","nativeSrc":"22796:1:8","nodeType":"YulIdentifier","src":"22796:1:8"}],"functionName":{"name":"addmod","nativeSrc":"22723:6:8","nodeType":"YulIdentifier","src":"22723:6:8"},"nativeSrc":"22723:75:8","nodeType":"YulFunctionCall","src":"22723:75:8"},"variableNames":[{"name":"s","nativeSrc":"22718:1:8","nodeType":"YulIdentifier","src":"22718:1:8"}]},{"nativeSrc":"22815:22:8","nodeType":"YulAssignment","src":"22815:22:8","value":{"arguments":[{"arguments":[{"name":"q","nativeSrc":"22828:1:8","nodeType":"YulIdentifier","src":"22828:1:8"},{"name":"s","nativeSrc":"22831:1:8","nodeType":"YulIdentifier","src":"22831:1:8"}],"functionName":{"name":"sub","nativeSrc":"22824:3:8","nodeType":"YulIdentifier","src":"22824:3:8"},"nativeSrc":"22824:9:8","nodeType":"YulFunctionCall","src":"22824:9:8"},{"name":"q","nativeSrc":"22835:1:8","nodeType":"YulIdentifier","src":"22835:1:8"}],"functionName":{"name":"mod","nativeSrc":"22820:3:8","nodeType":"YulIdentifier","src":"22820:3:8"},"nativeSrc":"22820:17:8","nodeType":"YulFunctionCall","src":"22820:17:8"},"variableNames":[{"name":"s","nativeSrc":"22815:1:8","nodeType":"YulIdentifier","src":"22815:1:8"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"22865:1:8","nodeType":"YulIdentifier","src":"22865:1:8"},{"name":"G1x","nativeSrc":"22868:3:8","nodeType":"YulIdentifier","src":"22868:3:8"},{"name":"G1y","nativeSrc":"22873:3:8","nodeType":"YulIdentifier","src":"22873:3:8"},{"name":"s","nativeSrc":"22878:1:8","nodeType":"YulIdentifier","src":"22878:1:8"}],"functionName":{"name":"g1_mulAccC","nativeSrc":"22854:10:8","nodeType":"YulIdentifier","src":"22854:10:8"},"nativeSrc":"22854:26:8","nodeType":"YulFunctionCall","src":"22854:26:8"},"nativeSrc":"22854:26:8","nodeType":"YulExpressionStatement","src":"22854:26:8"},{"nativeSrc":"22965:26:8","nodeType":"YulAssignment","src":"22965:26:8","value":{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"22980:4:8","nodeType":"YulIdentifier","src":"22980:4:8"},{"name":"pXi","nativeSrc":"22986:3:8","nodeType":"YulIdentifier","src":"22986:3:8"}],"functionName":{"name":"add","nativeSrc":"22976:3:8","nodeType":"YulIdentifier","src":"22976:3:8"},"nativeSrc":"22976:14:8","nodeType":"YulFunctionCall","src":"22976:14:8"}],"functionName":{"name":"mload","nativeSrc":"22970:5:8","nodeType":"YulIdentifier","src":"22970:5:8"},"nativeSrc":"22970:21:8","nodeType":"YulFunctionCall","src":"22970:21:8"},"variableNames":[{"name":"s","nativeSrc":"22965:1:8","nodeType":"YulIdentifier","src":"22965:1:8"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"23018:1:8","nodeType":"YulIdentifier","src":"23018:1:8"},{"arguments":[{"name":"pProof","nativeSrc":"23025:6:8","nodeType":"YulIdentifier","src":"23025:6:8"},{"name":"pWxi","nativeSrc":"23033:4:8","nodeType":"YulIdentifier","src":"23033:4:8"}],"functionName":{"name":"add","nativeSrc":"23021:3:8","nodeType":"YulIdentifier","src":"23021:3:8"},"nativeSrc":"23021:17:8","nodeType":"YulFunctionCall","src":"23021:17:8"},{"name":"s","nativeSrc":"23040:1:8","nodeType":"YulIdentifier","src":"23040:1:8"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"23008:9:8","nodeType":"YulIdentifier","src":"23008:9:8"},"nativeSrc":"23008:34:8","nodeType":"YulFunctionCall","src":"23008:34:8"},"nativeSrc":"23008:34:8","nodeType":"YulExpressionStatement","src":"23008:34:8"},{"nativeSrc":"23060:59:8","nodeType":"YulAssignment","src":"23060:59:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23082:4:8","nodeType":"YulIdentifier","src":"23082:4:8"},{"name":"pU","nativeSrc":"23088:2:8","nodeType":"YulIdentifier","src":"23088:2:8"}],"functionName":{"name":"add","nativeSrc":"23078:3:8","nodeType":"YulIdentifier","src":"23078:3:8"},"nativeSrc":"23078:13:8","nodeType":"YulFunctionCall","src":"23078:13:8"}],"functionName":{"name":"mload","nativeSrc":"23072:5:8","nodeType":"YulIdentifier","src":"23072:5:8"},"nativeSrc":"23072:20:8","nodeType":"YulFunctionCall","src":"23072:20:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23104:4:8","nodeType":"YulIdentifier","src":"23104:4:8"},{"name":"pXi","nativeSrc":"23110:3:8","nodeType":"YulIdentifier","src":"23110:3:8"}],"functionName":{"name":"add","nativeSrc":"23100:3:8","nodeType":"YulIdentifier","src":"23100:3:8"},"nativeSrc":"23100:14:8","nodeType":"YulFunctionCall","src":"23100:14:8"}],"functionName":{"name":"mload","nativeSrc":"23094:5:8","nodeType":"YulIdentifier","src":"23094:5:8"},"nativeSrc":"23094:21:8","nodeType":"YulFunctionCall","src":"23094:21:8"},{"name":"q","nativeSrc":"23117:1:8","nodeType":"YulIdentifier","src":"23117:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"23065:6:8","nodeType":"YulIdentifier","src":"23065:6:8"},"nativeSrc":"23065:54:8","nodeType":"YulFunctionCall","src":"23065:54:8"},"variableNames":[{"name":"s","nativeSrc":"23060:1:8","nodeType":"YulIdentifier","src":"23060:1:8"}]},{"nativeSrc":"23136:21:8","nodeType":"YulAssignment","src":"23136:21:8","value":{"arguments":[{"name":"s","nativeSrc":"23148:1:8","nodeType":"YulIdentifier","src":"23148:1:8"},{"name":"w1","nativeSrc":"23151:2:8","nodeType":"YulIdentifier","src":"23151:2:8"},{"name":"q","nativeSrc":"23155:1:8","nodeType":"YulIdentifier","src":"23155:1:8"}],"functionName":{"name":"mulmod","nativeSrc":"23141:6:8","nodeType":"YulIdentifier","src":"23141:6:8"},"nativeSrc":"23141:16:8","nodeType":"YulFunctionCall","src":"23141:16:8"},"variableNames":[{"name":"s","nativeSrc":"23136:1:8","nodeType":"YulIdentifier","src":"23136:1:8"}]},{"expression":{"arguments":[{"name":"p","nativeSrc":"23184:1:8","nodeType":"YulIdentifier","src":"23184:1:8"},{"arguments":[{"name":"pProof","nativeSrc":"23191:6:8","nodeType":"YulIdentifier","src":"23191:6:8"},{"name":"pWxiw","nativeSrc":"23199:5:8","nodeType":"YulIdentifier","src":"23199:5:8"}],"functionName":{"name":"add","nativeSrc":"23187:3:8","nodeType":"YulIdentifier","src":"23187:3:8"},"nativeSrc":"23187:18:8","nodeType":"YulFunctionCall","src":"23187:18:8"},{"name":"s","nativeSrc":"23207:1:8","nodeType":"YulIdentifier","src":"23207:1:8"}],"functionName":{"name":"g1_mulAcc","nativeSrc":"23174:9:8","nodeType":"YulIdentifier","src":"23174:9:8"},"nativeSrc":"23174:35:8","nodeType":"YulFunctionCall","src":"23174:35:8"},"nativeSrc":"23174:35:8","nodeType":"YulExpressionStatement","src":"23174:35:8"}]},"name":"calculateB1","nativeSrc":"18746:4478:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"pProof","nativeSrc":"18767:6:8","nodeType":"YulTypedName","src":"18767:6:8","type":""},{"name":"pMem","nativeSrc":"18775:4:8","nodeType":"YulTypedName","src":"18775:4:8","type":""}],"src":"18746:4478:8"},{"body":{"nativeSrc":"23286:879:8","nodeType":"YulBlock","src":"23286:879:8","statements":[{"nativeSrc":"23304:22:8","nodeType":"YulVariableDeclaration","src":"23304:22:8","value":{"arguments":[{"kind":"number","nativeSrc":"23321:4:8","nodeType":"YulLiteral","src":"23321:4:8","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"23315:5:8","nodeType":"YulIdentifier","src":"23315:5:8"},"nativeSrc":"23315:11:8","nodeType":"YulFunctionCall","src":"23315:11:8"},"variables":[{"name":"mIn","nativeSrc":"23308:3:8","nodeType":"YulTypedName","src":"23308:3:8","type":""}]},{"expression":{"arguments":[{"name":"mIn","nativeSrc":"23350:3:8","nodeType":"YulIdentifier","src":"23350:3:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23365:4:8","nodeType":"YulIdentifier","src":"23365:4:8"},{"name":"pA1","nativeSrc":"23371:3:8","nodeType":"YulIdentifier","src":"23371:3:8"}],"functionName":{"name":"add","nativeSrc":"23361:3:8","nodeType":"YulIdentifier","src":"23361:3:8"},"nativeSrc":"23361:14:8","nodeType":"YulFunctionCall","src":"23361:14:8"}],"functionName":{"name":"mload","nativeSrc":"23355:5:8","nodeType":"YulIdentifier","src":"23355:5:8"},"nativeSrc":"23355:21:8","nodeType":"YulFunctionCall","src":"23355:21:8"}],"functionName":{"name":"mstore","nativeSrc":"23343:6:8","nodeType":"YulIdentifier","src":"23343:6:8"},"nativeSrc":"23343:34:8","nodeType":"YulFunctionCall","src":"23343:34:8"},"nativeSrc":"23343:34:8","nodeType":"YulExpressionStatement","src":"23343:34:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23405:3:8","nodeType":"YulIdentifier","src":"23405:3:8"},{"kind":"number","nativeSrc":"23409:2:8","nodeType":"YulLiteral","src":"23409:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23401:3:8","nodeType":"YulIdentifier","src":"23401:3:8"},"nativeSrc":"23401:11:8","nodeType":"YulFunctionCall","src":"23401:11:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23428:4:8","nodeType":"YulIdentifier","src":"23428:4:8"},{"name":"pA1","nativeSrc":"23434:3:8","nodeType":"YulIdentifier","src":"23434:3:8"}],"functionName":{"name":"add","nativeSrc":"23424:3:8","nodeType":"YulIdentifier","src":"23424:3:8"},"nativeSrc":"23424:14:8","nodeType":"YulFunctionCall","src":"23424:14:8"},{"kind":"number","nativeSrc":"23440:2:8","nodeType":"YulLiteral","src":"23440:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23420:3:8","nodeType":"YulIdentifier","src":"23420:3:8"},"nativeSrc":"23420:23:8","nodeType":"YulFunctionCall","src":"23420:23:8"}],"functionName":{"name":"mload","nativeSrc":"23414:5:8","nodeType":"YulIdentifier","src":"23414:5:8"},"nativeSrc":"23414:30:8","nodeType":"YulFunctionCall","src":"23414:30:8"}],"functionName":{"name":"mstore","nativeSrc":"23394:6:8","nodeType":"YulIdentifier","src":"23394:6:8"},"nativeSrc":"23394:51:8","nodeType":"YulFunctionCall","src":"23394:51:8"},"nativeSrc":"23394:51:8","nodeType":"YulExpressionStatement","src":"23394:51:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23473:3:8","nodeType":"YulIdentifier","src":"23473:3:8"},{"kind":"number","nativeSrc":"23477:2:8","nodeType":"YulLiteral","src":"23477:2:8","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23469:3:8","nodeType":"YulIdentifier","src":"23469:3:8"},"nativeSrc":"23469:11:8","nodeType":"YulFunctionCall","src":"23469:11:8"},{"name":"X2x2","nativeSrc":"23482:4:8","nodeType":"YulIdentifier","src":"23482:4:8"}],"functionName":{"name":"mstore","nativeSrc":"23462:6:8","nodeType":"YulIdentifier","src":"23462:6:8"},"nativeSrc":"23462:25:8","nodeType":"YulFunctionCall","src":"23462:25:8"},"nativeSrc":"23462:25:8","nodeType":"YulExpressionStatement","src":"23462:25:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23515:3:8","nodeType":"YulIdentifier","src":"23515:3:8"},{"kind":"number","nativeSrc":"23519:2:8","nodeType":"YulLiteral","src":"23519:2:8","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23511:3:8","nodeType":"YulIdentifier","src":"23511:3:8"},"nativeSrc":"23511:11:8","nodeType":"YulFunctionCall","src":"23511:11:8"},{"name":"X2x1","nativeSrc":"23524:4:8","nodeType":"YulIdentifier","src":"23524:4:8"}],"functionName":{"name":"mstore","nativeSrc":"23504:6:8","nodeType":"YulIdentifier","src":"23504:6:8"},"nativeSrc":"23504:25:8","nodeType":"YulFunctionCall","src":"23504:25:8"},"nativeSrc":"23504:25:8","nodeType":"YulExpressionStatement","src":"23504:25:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23557:3:8","nodeType":"YulIdentifier","src":"23557:3:8"},{"kind":"number","nativeSrc":"23561:3:8","nodeType":"YulLiteral","src":"23561:3:8","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23553:3:8","nodeType":"YulIdentifier","src":"23553:3:8"},"nativeSrc":"23553:12:8","nodeType":"YulFunctionCall","src":"23553:12:8"},{"name":"X2y2","nativeSrc":"23567:4:8","nodeType":"YulIdentifier","src":"23567:4:8"}],"functionName":{"name":"mstore","nativeSrc":"23546:6:8","nodeType":"YulIdentifier","src":"23546:6:8"},"nativeSrc":"23546:26:8","nodeType":"YulFunctionCall","src":"23546:26:8"},"nativeSrc":"23546:26:8","nodeType":"YulExpressionStatement","src":"23546:26:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23600:3:8","nodeType":"YulIdentifier","src":"23600:3:8"},{"kind":"number","nativeSrc":"23604:3:8","nodeType":"YulLiteral","src":"23604:3:8","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"23596:3:8","nodeType":"YulIdentifier","src":"23596:3:8"},"nativeSrc":"23596:12:8","nodeType":"YulFunctionCall","src":"23596:12:8"},{"name":"X2y1","nativeSrc":"23610:4:8","nodeType":"YulIdentifier","src":"23610:4:8"}],"functionName":{"name":"mstore","nativeSrc":"23589:6:8","nodeType":"YulIdentifier","src":"23589:6:8"},"nativeSrc":"23589:26:8","nodeType":"YulFunctionCall","src":"23589:26:8"},"nativeSrc":"23589:26:8","nodeType":"YulExpressionStatement","src":"23589:26:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23643:3:8","nodeType":"YulIdentifier","src":"23643:3:8"},{"kind":"number","nativeSrc":"23647:3:8","nodeType":"YulLiteral","src":"23647:3:8","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"23639:3:8","nodeType":"YulIdentifier","src":"23639:3:8"},"nativeSrc":"23639:12:8","nodeType":"YulFunctionCall","src":"23639:12:8"},{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23663:4:8","nodeType":"YulIdentifier","src":"23663:4:8"},{"name":"pB1","nativeSrc":"23669:3:8","nodeType":"YulIdentifier","src":"23669:3:8"}],"functionName":{"name":"add","nativeSrc":"23659:3:8","nodeType":"YulIdentifier","src":"23659:3:8"},"nativeSrc":"23659:14:8","nodeType":"YulFunctionCall","src":"23659:14:8"}],"functionName":{"name":"mload","nativeSrc":"23653:5:8","nodeType":"YulIdentifier","src":"23653:5:8"},"nativeSrc":"23653:21:8","nodeType":"YulFunctionCall","src":"23653:21:8"}],"functionName":{"name":"mstore","nativeSrc":"23632:6:8","nodeType":"YulIdentifier","src":"23632:6:8"},"nativeSrc":"23632:43:8","nodeType":"YulFunctionCall","src":"23632:43:8"},"nativeSrc":"23632:43:8","nodeType":"YulExpressionStatement","src":"23632:43:8"},{"nativeSrc":"23692:39:8","nodeType":"YulVariableDeclaration","src":"23692:39:8","value":{"arguments":[{"arguments":[{"arguments":[{"name":"pMem","nativeSrc":"23715:4:8","nodeType":"YulIdentifier","src":"23715:4:8"},{"name":"pB1","nativeSrc":"23721:3:8","nodeType":"YulIdentifier","src":"23721:3:8"}],"functionName":{"name":"add","nativeSrc":"23711:3:8","nodeType":"YulIdentifier","src":"23711:3:8"},"nativeSrc":"23711:14:8","nodeType":"YulFunctionCall","src":"23711:14:8"},{"kind":"number","nativeSrc":"23727:2:8","nodeType":"YulLiteral","src":"23727:2:8","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23707:3:8","nodeType":"YulIdentifier","src":"23707:3:8"},"nativeSrc":"23707:23:8","nodeType":"YulFunctionCall","src":"23707:23:8"}],"functionName":{"name":"mload","nativeSrc":"23701:5:8","nodeType":"YulIdentifier","src":"23701:5:8"},"nativeSrc":"23701:30:8","nodeType":"YulFunctionCall","src":"23701:30:8"},"variables":[{"name":"s","nativeSrc":"23696:1:8","nodeType":"YulTypedName","src":"23696:1:8","type":""}]},{"nativeSrc":"23748:24:8","nodeType":"YulAssignment","src":"23748:24:8","value":{"arguments":[{"arguments":[{"name":"qf","nativeSrc":"23761:2:8","nodeType":"YulIdentifier","src":"23761:2:8"},{"name":"s","nativeSrc":"23765:1:8","nodeType":"YulIdentifier","src":"23765:1:8"}],"functionName":{"name":"sub","nativeSrc":"23757:3:8","nodeType":"YulIdentifier","src":"23757:3:8"},"nativeSrc":"23757:10:8","nodeType":"YulFunctionCall","src":"23757:10:8"},{"name":"qf","nativeSrc":"23769:2:8","nodeType":"YulIdentifier","src":"23769:2:8"}],"functionName":{"name":"mod","nativeSrc":"23753:3:8","nodeType":"YulIdentifier","src":"23753:3:8"},"nativeSrc":"23753:19:8","nodeType":"YulFunctionCall","src":"23753:19:8"},"variableNames":[{"name":"s","nativeSrc":"23748:1:8","nodeType":"YulIdentifier","src":"23748:1:8"}]},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23800:3:8","nodeType":"YulIdentifier","src":"23800:3:8"},{"kind":"number","nativeSrc":"23804:3:8","nodeType":"YulLiteral","src":"23804:3:8","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"23796:3:8","nodeType":"YulIdentifier","src":"23796:3:8"},"nativeSrc":"23796:12:8","nodeType":"YulFunctionCall","src":"23796:12:8"},{"name":"s","nativeSrc":"23810:1:8","nodeType":"YulIdentifier","src":"23810:1:8"}],"functionName":{"name":"mstore","nativeSrc":"23789:6:8","nodeType":"YulIdentifier","src":"23789:6:8"},"nativeSrc":"23789:23:8","nodeType":"YulFunctionCall","src":"23789:23:8"},"nativeSrc":"23789:23:8","nodeType":"YulExpressionStatement","src":"23789:23:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23840:3:8","nodeType":"YulIdentifier","src":"23840:3:8"},{"kind":"number","nativeSrc":"23844:3:8","nodeType":"YulLiteral","src":"23844:3:8","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"23836:3:8","nodeType":"YulIdentifier","src":"23836:3:8"},"nativeSrc":"23836:12:8","nodeType":"YulFunctionCall","src":"23836:12:8"},{"name":"G2x2","nativeSrc":"23850:4:8","nodeType":"YulIdentifier","src":"23850:4:8"}],"functionName":{"name":"mstore","nativeSrc":"23829:6:8","nodeType":"YulIdentifier","src":"23829:6:8"},"nativeSrc":"23829:26:8","nodeType":"YulFunctionCall","src":"23829:26:8"},"nativeSrc":"23829:26:8","nodeType":"YulExpressionStatement","src":"23829:26:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23883:3:8","nodeType":"YulIdentifier","src":"23883:3:8"},{"kind":"number","nativeSrc":"23887:3:8","nodeType":"YulLiteral","src":"23887:3:8","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"23879:3:8","nodeType":"YulIdentifier","src":"23879:3:8"},"nativeSrc":"23879:12:8","nodeType":"YulFunctionCall","src":"23879:12:8"},{"name":"G2x1","nativeSrc":"23893:4:8","nodeType":"YulIdentifier","src":"23893:4:8"}],"functionName":{"name":"mstore","nativeSrc":"23872:6:8","nodeType":"YulIdentifier","src":"23872:6:8"},"nativeSrc":"23872:26:8","nodeType":"YulFunctionCall","src":"23872:26:8"},"nativeSrc":"23872:26:8","nodeType":"YulExpressionStatement","src":"23872:26:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23926:3:8","nodeType":"YulIdentifier","src":"23926:3:8"},{"kind":"number","nativeSrc":"23930:3:8","nodeType":"YulLiteral","src":"23930:3:8","type":"","value":"320"}],"functionName":{"name":"add","nativeSrc":"23922:3:8","nodeType":"YulIdentifier","src":"23922:3:8"},"nativeSrc":"23922:12:8","nodeType":"YulFunctionCall","src":"23922:12:8"},{"name":"G2y2","nativeSrc":"23936:4:8","nodeType":"YulIdentifier","src":"23936:4:8"}],"functionName":{"name":"mstore","nativeSrc":"23915:6:8","nodeType":"YulIdentifier","src":"23915:6:8"},"nativeSrc":"23915:26:8","nodeType":"YulFunctionCall","src":"23915:26:8"},"nativeSrc":"23915:26:8","nodeType":"YulExpressionStatement","src":"23915:26:8"},{"expression":{"arguments":[{"arguments":[{"name":"mIn","nativeSrc":"23969:3:8","nodeType":"YulIdentifier","src":"23969:3:8"},{"kind":"number","nativeSrc":"23973:3:8","nodeType":"YulLiteral","src":"23973:3:8","type":"","value":"352"}],"functionName":{"name":"add","nativeSrc":"23965:3:8","nodeType":"YulIdentifier","src":"23965:3:8"},"nativeSrc":"23965:12:8","nodeType":"YulFunctionCall","src":"23965:12:8"},{"name":"G2y1","nativeSrc":"23979:4:8","nodeType":"YulIdentifier","src":"23979:4:8"}],"functionName":{"name":"mstore","nativeSrc":"23958:6:8","nodeType":"YulIdentifier","src":"23958:6:8"},"nativeSrc":"23958:26:8","nodeType":"YulFunctionCall","src":"23958:26:8"},"nativeSrc":"23958:26:8","nodeType":"YulExpressionStatement","src":"23958:26:8"},{"nativeSrc":"24018:67:8","nodeType":"YulVariableDeclaration","src":"24018:67:8","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"24048:3:8","nodeType":"YulIdentifier","src":"24048:3:8"},"nativeSrc":"24048:5:8","nodeType":"YulFunctionCall","src":"24048:5:8"},{"kind":"number","nativeSrc":"24055:4:8","nodeType":"YulLiteral","src":"24055:4:8","type":"","value":"2000"}],"functionName":{"name":"sub","nativeSrc":"24044:3:8","nodeType":"YulIdentifier","src":"24044:3:8"},"nativeSrc":"24044:16:8","nodeType":"YulFunctionCall","src":"24044:16:8"},{"kind":"number","nativeSrc":"24062:1:8","nodeType":"YulLiteral","src":"24062:1:8","type":"","value":"8"},{"name":"mIn","nativeSrc":"24065:3:8","nodeType":"YulIdentifier","src":"24065:3:8"},{"kind":"number","nativeSrc":"24070:3:8","nodeType":"YulLiteral","src":"24070:3:8","type":"","value":"384"},{"name":"mIn","nativeSrc":"24075:3:8","nodeType":"YulIdentifier","src":"24075:3:8"},{"kind":"number","nativeSrc":"24080:4:8","nodeType":"YulLiteral","src":"24080:4:8","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"24033:10:8","nodeType":"YulIdentifier","src":"24033:10:8"},"nativeSrc":"24033:52:8","nodeType":"YulFunctionCall","src":"24033:52:8"},"variables":[{"name":"success","nativeSrc":"24022:7:8","nodeType":"YulTypedName","src":"24022:7:8","type":""}]},{"nativeSrc":"24119:32:8","nodeType":"YulAssignment","src":"24119:32:8","value":{"arguments":[{"name":"success","nativeSrc":"24131:7:8","nodeType":"YulIdentifier","src":"24131:7:8"},{"arguments":[{"name":"mIn","nativeSrc":"24146:3:8","nodeType":"YulIdentifier","src":"24146:3:8"}],"functionName":{"name":"mload","nativeSrc":"24140:5:8","nodeType":"YulIdentifier","src":"24140:5:8"},"nativeSrc":"24140:10:8","nodeType":"YulFunctionCall","src":"24140:10:8"}],"functionName":{"name":"and","nativeSrc":"24127:3:8","nodeType":"YulIdentifier","src":"24127:3:8"},"nativeSrc":"24127:24:8","nodeType":"YulFunctionCall","src":"24127:24:8"},"variableNames":[{"name":"isOk","nativeSrc":"24119:4:8","nodeType":"YulIdentifier","src":"24119:4:8"}]}]},"name":"checkPairing","nativeSrc":"23250:915:8","nodeType":"YulFunctionDefinition","parameters":[{"name":"pMem","nativeSrc":"23272:4:8","nodeType":"YulTypedName","src":"23272:4:8","type":""}],"returnVariables":[{"name":"isOk","nativeSrc":"23281:4:8","nodeType":"YulTypedName","src":"23281:4:8","type":""}],"src":"23250:915:8"},{"nativeSrc":"24191:23:8","nodeType":"YulVariableDeclaration","src":"24191:23:8","value":{"arguments":[{"kind":"number","nativeSrc":"24209:4:8","nodeType":"YulLiteral","src":"24209:4:8","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"24203:5:8","nodeType":"YulIdentifier","src":"24203:5:8"},"nativeSrc":"24203:11:8","nodeType":"YulFunctionCall","src":"24203:11:8"},"variables":[{"name":"pMem","nativeSrc":"24195:4:8","nodeType":"YulTypedName","src":"24195:4:8","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24234:4:8","nodeType":"YulLiteral","src":"24234:4:8","type":"","value":"0x40"},{"arguments":[{"name":"pMem","nativeSrc":"24244:4:8","nodeType":"YulIdentifier","src":"24244:4:8"},{"name":"lastMem","nativeSrc":"24250:7:8","nodeType":"YulIdentifier","src":"24250:7:8"}],"functionName":{"name":"add","nativeSrc":"24240:3:8","nodeType":"YulIdentifier","src":"24240:3:8"},"nativeSrc":"24240:18:8","nodeType":"YulFunctionCall","src":"24240:18:8"}],"functionName":{"name":"mstore","nativeSrc":"24227:6:8","nodeType":"YulIdentifier","src":"24227:6:8"},"nativeSrc":"24227:32:8","nodeType":"YulFunctionCall","src":"24227:32:8"},"nativeSrc":"24227:32:8","nodeType":"YulExpressionStatement","src":"24227:32:8"},{"expression":{"arguments":[{"name":"proof","nativeSrc":"24296:5:8","nodeType":"YulIdentifier","src":"24296:5:8"}],"functionName":{"name":"checkInput","nativeSrc":"24285:10:8","nodeType":"YulIdentifier","src":"24285:10:8"},"nativeSrc":"24285:17:8","nodeType":"YulFunctionCall","src":"24285:17:8"},"nativeSrc":"24285:17:8","nodeType":"YulExpressionStatement","src":"24285:17:8"},{"expression":{"arguments":[{"name":"proof","nativeSrc":"24335:5:8","nodeType":"YulIdentifier","src":"24335:5:8"},{"name":"pMem","nativeSrc":"24342:4:8","nodeType":"YulIdentifier","src":"24342:4:8"},{"name":"pubSignals","nativeSrc":"24348:10:8","nodeType":"YulIdentifier","src":"24348:10:8"}],"functionName":{"name":"calculateChallanges","nativeSrc":"24315:19:8","nodeType":"YulIdentifier","src":"24315:19:8"},"nativeSrc":"24315:44:8","nodeType":"YulFunctionCall","src":"24315:44:8"},"nativeSrc":"24315:44:8","nodeType":"YulExpressionStatement","src":"24315:44:8"},{"expression":{"arguments":[{"name":"pMem","nativeSrc":"24390:4:8","nodeType":"YulIdentifier","src":"24390:4:8"}],"functionName":{"name":"calculateLagrange","nativeSrc":"24372:17:8","nodeType":"YulIdentifier","src":"24372:17:8"},"nativeSrc":"24372:23:8","nodeType":"YulFunctionCall","src":"24372:23:8"},"nativeSrc":"24372:23:8","nodeType":"YulExpressionStatement","src":"24372:23:8"},{"expression":{"arguments":[{"name":"pMem","nativeSrc":"24420:4:8","nodeType":"YulIdentifier","src":"24420:4:8"},{"name":"pubSignals","nativeSrc":"24426:10:8","nodeType":"YulIdentifier","src":"24426:10:8"}],"functionName":{"name":"calculatePl","nativeSrc":"24408:11:8","nodeType":"YulIdentifier","src":"24408:11:8"},"nativeSrc":"24408:29:8","nodeType":"YulFunctionCall","src":"24408:29:8"},"nativeSrc":"24408:29:8","nodeType":"YulExpressionStatement","src":"24408:29:8"},{"expression":{"arguments":[{"name":"proof","nativeSrc":"24461:5:8","nodeType":"YulIdentifier","src":"24461:5:8"},{"name":"pMem","nativeSrc":"24468:4:8","nodeType":"YulIdentifier","src":"24468:4:8"}],"functionName":{"name":"calculateT","nativeSrc":"24450:10:8","nodeType":"YulIdentifier","src":"24450:10:8"},"nativeSrc":"24450:23:8","nodeType":"YulFunctionCall","src":"24450:23:8"},"nativeSrc":"24450:23:8","nodeType":"YulExpressionStatement","src":"24450:23:8"},{"expression":{"arguments":[{"name":"proof","nativeSrc":"24498:5:8","nodeType":"YulIdentifier","src":"24498:5:8"},{"name":"pMem","nativeSrc":"24505:4:8","nodeType":"YulIdentifier","src":"24505:4:8"}],"functionName":{"name":"calculateA1","nativeSrc":"24486:11:8","nodeType":"YulIdentifier","src":"24486:11:8"},"nativeSrc":"24486:24:8","nodeType":"YulFunctionCall","src":"24486:24:8"},"nativeSrc":"24486:24:8","nodeType":"YulExpressionStatement","src":"24486:24:8"},{"expression":{"arguments":[{"name":"proof","nativeSrc":"24535:5:8","nodeType":"YulIdentifier","src":"24535:5:8"},{"name":"pMem","nativeSrc":"24542:4:8","nodeType":"YulIdentifier","src":"24542:4:8"}],"functionName":{"name":"calculateB1","nativeSrc":"24523:11:8","nodeType":"YulIdentifier","src":"24523:11:8"},"nativeSrc":"24523:24:8","nodeType":"YulFunctionCall","src":"24523:24:8"},"nativeSrc":"24523:24:8","nodeType":"YulExpressionStatement","src":"24523:24:8"},{"nativeSrc":"24560:33:8","nodeType":"YulVariableDeclaration","src":"24560:33:8","value":{"arguments":[{"name":"pMem","nativeSrc":"24588:4:8","nodeType":"YulIdentifier","src":"24588:4:8"}],"functionName":{"name":"checkPairing","nativeSrc":"24575:12:8","nodeType":"YulIdentifier","src":"24575:12:8"},"nativeSrc":"24575:18:8","nodeType":"YulFunctionCall","src":"24575:18:8"},"variables":[{"name":"isValid","nativeSrc":"24564:7:8","nodeType":"YulTypedName","src":"24564:7:8","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24626:4:8","nodeType":"YulLiteral","src":"24626:4:8","type":"","value":"0x40"},{"arguments":[{"name":"pMem","nativeSrc":"24636:4:8","nodeType":"YulIdentifier","src":"24636:4:8"},{"name":"lastMem","nativeSrc":"24642:7:8","nodeType":"YulIdentifier","src":"24642:7:8"}],"functionName":{"name":"sub","nativeSrc":"24632:3:8","nodeType":"YulIdentifier","src":"24632:3:8"},"nativeSrc":"24632:18:8","nodeType":"YulFunctionCall","src":"24632:18:8"}],"functionName":{"name":"mstore","nativeSrc":"24619:6:8","nodeType":"YulIdentifier","src":"24619:6:8"},"nativeSrc":"24619:32:8","nodeType":"YulFunctionCall","src":"24619:32:8"},"nativeSrc":"24619:32:8","nodeType":"YulExpressionStatement","src":"24619:32:8"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24671:1:8","nodeType":"YulLiteral","src":"24671:1:8","type":"","value":"0"},{"name":"isValid","nativeSrc":"24674:7:8","nodeType":"YulIdentifier","src":"24674:7:8"}],"functionName":{"name":"mstore","nativeSrc":"24664:6:8","nodeType":"YulIdentifier","src":"24664:6:8"},"nativeSrc":"24664:18:8","nodeType":"YulFunctionCall","src":"24664:18:8"},"nativeSrc":"24664:18:8","nodeType":"YulExpressionStatement","src":"24664:18:8"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24702:1:8","nodeType":"YulLiteral","src":"24702:1:8","type":"","value":"0"},{"kind":"number","nativeSrc":"24704:4:8","nodeType":"YulLiteral","src":"24704:4:8","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"24695:6:8","nodeType":"YulIdentifier","src":"24695:6:8"},"nativeSrc":"24695:14:8","nodeType":"YulFunctionCall","src":"24695:14:8"},"nativeSrc":"24695:14:8","nodeType":"YulExpressionStatement","src":"24695:14:8"}]},"evmVersion":"paris","externalReferences":[{"declaration":1133,"isOffset":false,"isSlot":false,"src":"22868:3:8","valueSize":1},{"declaration":1136,"isOffset":false,"isSlot":false,"src":"22873:3:8","valueSize":1},{"declaration":1139,"isOffset":false,"isSlot":false,"src":"23893:4:8","valueSize":1},{"declaration":1142,"isOffset":false,"isSlot":false,"src":"23850:4:8","valueSize":1},{"declaration":1145,"isOffset":false,"isSlot":false,"src":"23979:4:8","valueSize":1},{"declaration":1148,"isOffset":false,"isSlot":false,"src":"23936:4:8","valueSize":1},{"declaration":1082,"isOffset":false,"isSlot":false,"src":"19512:3:8","valueSize":1},{"declaration":1085,"isOffset":false,"isSlot":false,"src":"19517:3:8","valueSize":1},{"declaration":1064,"isOffset":false,"isSlot":false,"src":"19030:3:8","valueSize":1},{"declaration":1067,"isOffset":false,"isSlot":false,"src":"19035:3:8","valueSize":1},{"declaration":1058,"isOffset":false,"isSlot":false,"src":"19154:3:8","valueSize":1},{"declaration":1061,"isOffset":false,"isSlot":false,"src":"19159:3:8","valueSize":1},{"declaration":1076,"isOffset":false,"isSlot":false,"src":"19426:3:8","valueSize":1},{"declaration":1079,"isOffset":false,"isSlot":false,"src":"19431:3:8","valueSize":1},{"declaration":1070,"isOffset":false,"isSlot":false,"src":"19282:3:8","valueSize":1},{"declaration":1073,"isOffset":false,"isSlot":false,"src":"19287:3:8","valueSize":1},{"declaration":1088,"isOffset":false,"isSlot":false,"src":"21927:3:8","valueSize":1},{"declaration":1091,"isOffset":false,"isSlot":false,"src":"21932:3:8","valueSize":1},{"declaration":1094,"isOffset":false,"isSlot":false,"src":"21990:3:8","valueSize":1},{"declaration":1097,"isOffset":false,"isSlot":false,"src":"21995:3:8","valueSize":1},{"declaration":1100,"isOffset":false,"isSlot":false,"src":"21383:3:8","valueSize":1},{"declaration":1103,"isOffset":false,"isSlot":false,"src":"21388:3:8","valueSize":1},{"declaration":1112,"isOffset":false,"isSlot":false,"src":"23524:4:8","valueSize":1},{"declaration":1115,"isOffset":false,"isSlot":false,"src":"23482:4:8","valueSize":1},{"declaration":1118,"isOffset":false,"isSlot":false,"src":"23610:4:8","valueSize":1},{"declaration":1121,"isOffset":false,"isSlot":false,"src":"23567:4:8","valueSize":1},{"declaration":1106,"isOffset":false,"isSlot":false,"src":"19702:2:8","valueSize":1},{"declaration":1109,"isOffset":false,"isSlot":false,"src":"19930:2:8","valueSize":1},{"declaration":1259,"isOffset":false,"isSlot":false,"src":"24250:7:8","valueSize":1},{"declaration":1259,"isOffset":false,"isSlot":false,"src":"24642:7:8","valueSize":1},{"declaration":1259,"isOffset":false,"isSlot":false,"src":"9540:7:8","valueSize":1},{"declaration":1049,"isOffset":false,"isSlot":false,"src":"11888:1:8","valueSize":1},{"declaration":1151,"isOffset":false,"isSlot":false,"src":"21731:2:8","valueSize":1},{"declaration":1151,"isOffset":false,"isSlot":false,"src":"9095:2:8","valueSize":1},{"declaration":1151,"isOffset":false,"isSlot":false,"src":"9166:2:8","valueSize":1},{"declaration":1151,"isOffset":false,"isSlot":false,"src":"9241:2:8","valueSize":1},{"declaration":1151,"isOffset":false,"isSlot":false,"src":"9316:2:8","valueSize":1},{"declaration":1151,"isOffset":false,"isSlot":false,"src":"9391:2:8","valueSize":1},{"declaration":1151,"isOffset":false,"isSlot":false,"src":"9467:2:8","valueSize":1},{"declaration":1244,"isOffset":false,"isSlot":false,"src":"18573:3:8","valueSize":1},{"declaration":1244,"isOffset":false,"isSlot":false,"src":"23371:3:8","valueSize":1},{"declaration":1244,"isOffset":false,"isSlot":false,"src":"23434:3:8","valueSize":1},{"declaration":1199,"isOffset":false,"isSlot":false,"src":"15150:6:8","valueSize":1},{"declaration":1199,"isOffset":false,"isSlot":false,"src":"15295:6:8","valueSize":1},{"declaration":1199,"isOffset":false,"isSlot":false,"src":"15438:6:8","valueSize":1},{"declaration":1199,"isOffset":false,"isSlot":false,"src":"20176:6:8","valueSize":1},{"declaration":1199,"isOffset":false,"isSlot":false,"src":"20319:6:8","valueSize":1},{"declaration":1199,"isOffset":false,"isSlot":false,"src":"20381:6:8","valueSize":1},{"declaration":1199,"isOffset":false,"isSlot":false,"src":"21121:6:8","valueSize":1},{"declaration":1199,"isOffset":false,"isSlot":false,"src":"9723:6:8","valueSize":1},{"declaration":1154,"isOffset":false,"isSlot":false,"src":"21800:2:8","valueSize":1},{"declaration":1247,"isOffset":false,"isSlot":false,"src":"18863:3:8","valueSize":1},{"declaration":1247,"isOffset":false,"isSlot":false,"src":"23669:3:8","valueSize":1},{"declaration":1247,"isOffset":false,"isSlot":false,"src":"23721:3:8","valueSize":1},{"declaration":1202,"isOffset":false,"isSlot":false,"src":"13938:5:8","valueSize":1},{"declaration":1202,"isOffset":false,"isSlot":false,"src":"14405:5:8","valueSize":1},{"declaration":1202,"isOffset":false,"isSlot":false,"src":"20657:5:8","valueSize":1},{"declaration":1202,"isOffset":false,"isSlot":false,"src":"20867:5:8","valueSize":1},{"declaration":1202,"isOffset":false,"isSlot":false,"src":"21238:5:8","valueSize":1},{"declaration":1202,"isOffset":false,"isSlot":false,"src":"9594:5:8","valueSize":1},{"declaration":1202,"isOffset":false,"isSlot":false,"src":"9672:5:8","valueSize":1},{"declaration":1214,"isOffset":false,"isSlot":false,"src":"19599:7:8","valueSize":1},{"declaration":1214,"isOffset":false,"isSlot":false,"src":"19722:7:8","valueSize":1},{"declaration":1214,"isOffset":false,"isSlot":false,"src":"19950:7:8","valueSize":1},{"declaration":1214,"isOffset":false,"isSlot":false,"src":"9928:7:8","valueSize":1},{"declaration":1157,"isOffset":false,"isSlot":false,"src":"21869:2:8","valueSize":1},{"declaration":1178,"isOffset":false,"isSlot":false,"src":"11067:7:8","valueSize":1},{"declaration":1178,"isOffset":false,"isSlot":false,"src":"14080:7:8","valueSize":1},{"declaration":1178,"isOffset":false,"isSlot":false,"src":"18963:7:8","valueSize":1},{"declaration":1178,"isOffset":false,"isSlot":false,"src":"19572:7:8","valueSize":1},{"declaration":1178,"isOffset":false,"isSlot":false,"src":"20748:7:8","valueSize":1},{"declaration":1178,"isOffset":false,"isSlot":false,"src":"22271:7:8","valueSize":1},{"declaration":1178,"isOffset":false,"isSlot":false,"src":"8340:7:8","valueSize":1},{"declaration":1181,"isOffset":false,"isSlot":false,"src":"14547:7:8","valueSize":1},{"declaration":1181,"isOffset":false,"isSlot":false,"src":"19094:7:8","valueSize":1},{"declaration":1181,"isOffset":false,"isSlot":false,"src":"19215:7:8","valueSize":1},{"declaration":1181,"isOffset":false,"isSlot":false,"src":"19787:7:8","valueSize":1},{"declaration":1181,"isOffset":false,"isSlot":false,"src":"20960:7:8","valueSize":1},{"declaration":1181,"isOffset":false,"isSlot":false,"src":"22368:7:8","valueSize":1},{"declaration":1181,"isOffset":false,"isSlot":false,"src":"8396:7:8","valueSize":1},{"declaration":1184,"isOffset":false,"isSlot":false,"src":"14897:7:8","valueSize":1},{"declaration":1184,"isOffset":false,"isSlot":false,"src":"19359:7:8","valueSize":1},{"declaration":1184,"isOffset":false,"isSlot":false,"src":"20015:7:8","valueSize":1},{"declaration":1184,"isOffset":false,"isSlot":false,"src":"22465:7:8","valueSize":1},{"declaration":1184,"isOffset":false,"isSlot":false,"src":"8452:7:8","valueSize":1},{"declaration":1256,"isOffset":false,"isSlot":false,"src":"11824:8:8","valueSize":1},{"declaration":1256,"isOffset":false,"isSlot":false,"src":"12593:8:8","valueSize":1},{"declaration":1256,"isOffset":false,"isSlot":false,"src":"12674:8:8","valueSize":1},{"declaration":1256,"isOffset":false,"isSlot":false,"src":"13170:8:8","valueSize":1},{"declaration":1256,"isOffset":false,"isSlot":false,"src":"15246:8:8","valueSize":1},{"declaration":1256,"isOffset":false,"isSlot":false,"src":"20291:8:8","valueSize":1},{"declaration":1196,"isOffset":false,"isSlot":false,"src":"13709:7:8","valueSize":1},{"declaration":1196,"isOffset":false,"isSlot":false,"src":"22174:7:8","valueSize":1},{"declaration":1196,"isOffset":false,"isSlot":false,"src":"8679:7:8","valueSize":1},{"declaration":1187,"isOffset":false,"isSlot":false,"src":"13890:8:8","valueSize":1},{"declaration":1187,"isOffset":false,"isSlot":false,"src":"20684:8:8","valueSize":1},{"declaration":1187,"isOffset":false,"isSlot":false,"src":"22562:8:8","valueSize":1},{"declaration":1187,"isOffset":false,"isSlot":false,"src":"8508:8:8","valueSize":1},{"declaration":1190,"isOffset":false,"isSlot":false,"src":"14357:8:8","valueSize":1},{"declaration":1190,"isOffset":false,"isSlot":false,"src":"20894:8:8","valueSize":1},{"declaration":1190,"isOffset":false,"isSlot":false,"src":"22660:8:8","valueSize":1},{"declaration":1190,"isOffset":false,"isSlot":false,"src":"8565:8:8","valueSize":1},{"declaration":1241,"isOffset":false,"isSlot":false,"src":"15706:7:8","valueSize":1},{"declaration":1241,"isOffset":false,"isSlot":false,"src":"22108:7:8","valueSize":1},{"declaration":1193,"isOffset":false,"isSlot":false,"src":"15086:8:8","valueSize":1},{"declaration":1193,"isOffset":false,"isSlot":false,"src":"21299:8:8","valueSize":1},{"declaration":1193,"isOffset":false,"isSlot":false,"src":"22758:8:8","valueSize":1},{"declaration":1193,"isOffset":false,"isSlot":false,"src":"8622:8:8","valueSize":1},{"declaration":1205,"isOffset":false,"isSlot":false,"src":"14238:6:8","valueSize":1},{"declaration":1205,"isOffset":false,"isSlot":false,"src":"14705:6:8","valueSize":1},{"declaration":1205,"isOffset":false,"isSlot":false,"src":"14944:6:8","valueSize":1},{"declaration":1205,"isOffset":false,"isSlot":false,"src":"19660:6:8","valueSize":1},{"declaration":1205,"isOffset":false,"isSlot":false,"src":"19850:6:8","valueSize":1},{"declaration":1205,"isOffset":false,"isSlot":false,"src":"20078:6:8","valueSize":1},{"declaration":1205,"isOffset":false,"isSlot":false,"src":"20809:6:8","valueSize":1},{"declaration":1205,"isOffset":false,"isSlot":false,"src":"21023:6:8","valueSize":1},{"declaration":1205,"isOffset":false,"isSlot":false,"src":"9639:6:8","valueSize":1},{"declaration":1238,"isOffset":false,"isSlot":false,"src":"13483:3:8","valueSize":1},{"declaration":1238,"isOffset":false,"isSlot":false,"src":"13757:3:8","valueSize":1},{"declaration":1163,"isOffset":false,"isSlot":false,"src":"21468:3:8","valueSize":1},{"declaration":1163,"isOffset":false,"isSlot":false,"src":"9836:3:8","valueSize":1},{"declaration":1166,"isOffset":false,"isSlot":false,"src":"21560:3:8","valueSize":1},{"declaration":1169,"isOffset":false,"isSlot":false,"src":"21664:3:8","valueSize":1},{"declaration":1235,"isOffset":false,"isSlot":false,"src":"11587:2:8","valueSize":1},{"declaration":1235,"isOffset":false,"isSlot":false,"src":"18688:2:8","valueSize":1},{"declaration":1235,"isOffset":false,"isSlot":false,"src":"20538:2:8","valueSize":1},{"declaration":1235,"isOffset":false,"isSlot":false,"src":"22786:2:8","valueSize":1},{"declaration":1235,"isOffset":false,"isSlot":false,"src":"23088:2:8","valueSize":1},{"declaration":1217,"isOffset":false,"isSlot":false,"src":"11120:3:8","valueSize":1},{"declaration":1217,"isOffset":false,"isSlot":false,"src":"18990:3:8","valueSize":1},{"declaration":1217,"isOffset":false,"isSlot":false,"src":"19242:3:8","valueSize":1},{"declaration":1217,"isOffset":false,"isSlot":false,"src":"19386:3:8","valueSize":1},{"declaration":1217,"isOffset":false,"isSlot":false,"src":"19476:3:8","valueSize":1},{"declaration":1217,"isOffset":false,"isSlot":false,"src":"20236:3:8","valueSize":1},{"declaration":1217,"isOffset":false,"isSlot":false,"src":"20443:3:8","valueSize":1},{"declaration":1217,"isOffset":false,"isSlot":false,"src":"21181:3:8","valueSize":1},{"declaration":1217,"isOffset":false,"isSlot":false,"src":"22201:3:8","valueSize":1},{"declaration":1220,"isOffset":false,"isSlot":false,"src":"11203:3:8","valueSize":1},{"declaration":1220,"isOffset":false,"isSlot":false,"src":"21752:3:8","valueSize":1},{"declaration":1220,"isOffset":false,"isSlot":false,"src":"22298:3:8","valueSize":1},{"declaration":1223,"isOffset":false,"isSlot":false,"src":"11284:3:8","valueSize":1},{"declaration":1223,"isOffset":false,"isSlot":false,"src":"21821:3:8","valueSize":1},{"declaration":1223,"isOffset":false,"isSlot":false,"src":"22395:3:8","valueSize":1},{"declaration":1226,"isOffset":false,"isSlot":false,"src":"11365:3:8","valueSize":1},{"declaration":1226,"isOffset":false,"isSlot":false,"src":"21890:3:8","valueSize":1},{"declaration":1226,"isOffset":false,"isSlot":false,"src":"22492:3:8","valueSize":1},{"declaration":1229,"isOffset":false,"isSlot":false,"src":"11446:3:8","valueSize":1},{"declaration":1229,"isOffset":false,"isSlot":false,"src":"21953:3:8","valueSize":1},{"declaration":1229,"isOffset":false,"isSlot":false,"src":"22590:3:8","valueSize":1},{"declaration":1232,"isOffset":false,"isSlot":false,"src":"11527:3:8","valueSize":1},{"declaration":1232,"isOffset":false,"isSlot":false,"src":"22016:3:8","valueSize":1},{"declaration":1232,"isOffset":false,"isSlot":false,"src":"22688:3:8","valueSize":1},{"declaration":1172,"isOffset":false,"isSlot":false,"src":"11618:4:8","valueSize":1},{"declaration":1172,"isOffset":false,"isSlot":false,"src":"18616:4:8","valueSize":1},{"declaration":1172,"isOffset":false,"isSlot":false,"src":"23033:4:8","valueSize":1},{"declaration":1175,"isOffset":false,"isSlot":false,"src":"18664:5:8","valueSize":1},{"declaration":1175,"isOffset":false,"isSlot":false,"src":"23199:5:8","valueSize":1},{"declaration":1208,"isOffset":false,"isSlot":false,"src":"12043:3:8","valueSize":1},{"declaration":1208,"isOffset":false,"isSlot":false,"src":"22986:3:8","valueSize":1},{"declaration":1208,"isOffset":false,"isSlot":false,"src":"23110:3:8","valueSize":1},{"declaration":1208,"isOffset":false,"isSlot":false,"src":"9885:3:8","valueSize":1},{"declaration":1211,"isOffset":false,"isSlot":false,"src":"10801:4:8","valueSize":1},{"declaration":1211,"isOffset":false,"isSlot":false,"src":"21512:4:8","valueSize":1},{"declaration":1160,"isOffset":false,"isSlot":false,"src":"20588:2:8","valueSize":1},{"declaration":1160,"isOffset":false,"isSlot":false,"src":"9758:2:8","valueSize":1},{"declaration":1250,"isOffset":false,"isSlot":false,"src":"10890:3:8","valueSize":1},{"declaration":1250,"isOffset":false,"isSlot":false,"src":"12476:3:8","valueSize":1},{"declaration":1253,"isOffset":false,"isSlot":false,"src":"10933:6:8","valueSize":1},{"declaration":1253,"isOffset":false,"isSlot":false,"src":"12404:6:8","valueSize":1},{"declaration":1253,"isOffset":false,"isSlot":false,"src":"15642:6:8","valueSize":1},{"declaration":1261,"isOffset":false,"isSlot":false,"src":"24296:5:8","valueSize":1},{"declaration":1261,"isOffset":false,"isSlot":false,"src":"24335:5:8","valueSize":1},{"declaration":1261,"isOffset":false,"isSlot":false,"src":"24461:5:8","valueSize":1},{"declaration":1261,"isOffset":false,"isSlot":false,"src":"24498:5:8","valueSize":1},{"declaration":1261,"isOffset":false,"isSlot":false,"src":"24535:5:8","valueSize":1},{"declaration":1264,"isOffset":false,"isSlot":false,"src":"24348:10:8","valueSize":1},{"declaration":1264,"isOffset":false,"isSlot":false,"src":"24426:10:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10005:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10058:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10111:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10164:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10217:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10270:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10323:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10376:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10429:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10482:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10535:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10588:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10641:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10694:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10747:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10849:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"10853:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"11083:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"11166:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"11247:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"11328:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"11409:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"11490:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"11631:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"12157:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"12218:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"12272:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"12739:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"13268:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"13351:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"13396:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"13785:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"13967:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"14111:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"14268:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"14434:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"14578:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"14735:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"14809:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"14974:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"15032:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"15098:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"15160:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"15326:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"15469:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"15527:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"15583:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"15592:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"15652:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"18997:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"19105:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"19249:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"19393:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"19610:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"19670:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"19733:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"19798:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"19860:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"19898:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"19961:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"20026:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"20088:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"20126:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"20186:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"20243:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"20329:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"20391:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"20450:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"20488:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"20544:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"20696:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"20759:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"20819:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"20906:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"20971:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"21033:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"21071:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"21131:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"21188:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"21247:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"21311:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"21343:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"21350:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"21620:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22208:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22212:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22305:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22309:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22402:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22406:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22499:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22503:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22597:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22601:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22695:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22699:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22792:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22796:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22828:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"22835:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"23117:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"23155:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"7063:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"7120:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"7690:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"7744:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"7995:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"9556:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"9685:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"9768:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"9848:1:8","valueSize":1},{"declaration":1124,"isOffset":false,"isSlot":false,"src":"9951:1:8","valueSize":1},{"declaration":1127,"isOffset":false,"isSlot":false,"src":"23761:2:8","valueSize":1},{"declaration":1127,"isOffset":false,"isSlot":false,"src":"23769:2:8","valueSize":1},{"declaration":1130,"isOffset":false,"isSlot":false,"src":"23151:2:8","valueSize":1}],"id":1269,"nodeType":"InlineAssembly","src":"5287:19432:8"}]},"functionSelector":"1e8e1e13","id":1271,"implemented":true,"kind":"function","modifiers":[],"name":"verifyProof","nameLocation":"5192:11:8","nodeType":"FunctionDefinition","parameters":{"id":1265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1261,"mutability":"mutable","name":"proof","nameLocation":"5217:5:8","nodeType":"VariableDeclaration","scope":1271,"src":"5204:18:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1260,"name":"bytes","nodeType":"ElementaryTypeName","src":"5204:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1264,"mutability":"mutable","name":"pubSignals","nameLocation":"5238:10:8","nodeType":"VariableDeclaration","scope":1271,"src":"5224:24:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1262,"name":"uint","nodeType":"ElementaryTypeName","src":"5224:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1263,"nodeType":"ArrayTypeName","src":"5224:6:8","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5203:46:8"},"returnParameters":{"id":1268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1267,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1271,"src":"5271:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1266,"name":"bool","nodeType":"ElementaryTypeName","src":"5271:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5270:6:8"},"scope":1272,"src":"5183:19551:8","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":1273,"src":"832:23904:8","usedErrors":[],"usedEvents":[]}],"src":"799:23938:8"},"id":8}},"contracts":{"@openzeppelin/contracts/access/AccessControl.sol":{"AccessControl":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/IAccessControl.sol":{"IAccessControl":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}"}},"contracts/CcsmBpiStateAnchor.sol":{"CcsmBpiStateAnchor":{"abi":[{"inputs":[{"internalType":"address[]","name":"admins","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"workgroupId","type":"string"},{"indexed":false,"internalType":"string","name":"anchorHash","type":"string"}],"name":"AnchorHashSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"anchorHashStore","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_workgroupId","type":"string"}],"name":"getAnchorHash","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_workgroupId","type":"string"},{"internalType":"string","name":"_anchorHash","type":"string"}],"name":"setAnchorHash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_497":{"entryPoint":null,"id":497,"parameterSlots":1,"returnSlots":0},"@_grantRole_256":{"entryPoint":192,"id":256,"parameterSlots":2,"returnSlots":1},"@_msgSender_390":{"entryPoint":557,"id":390,"parameterSlots":0,"returnSlots":1},"@hasRole_80":{"entryPoint":451,"id":80,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory":{"entryPoint":892,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":869,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory":{"entryPoint":1008,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory":{"entryPoint":1059,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":708,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":565,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":739,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address":{"entryPoint":823,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":791,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":654,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x32":{"entryPoint":1140,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":607,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":585,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":786,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":580,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":575,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":590,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":843,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4030:9","nodeType":"YulBlock","src":"0:4030:9","statements":[{"body":{"nativeSrc":"47:35:9","nodeType":"YulBlock","src":"47:35:9","statements":[{"nativeSrc":"57:19:9","nodeType":"YulAssignment","src":"57:19:9","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:9","nodeType":"YulLiteral","src":"73:2:9","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:9","nodeType":"YulIdentifier","src":"67:5:9"},"nativeSrc":"67:9:9","nodeType":"YulFunctionCall","src":"67:9:9"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:9","nodeType":"YulIdentifier","src":"57:6:9"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:9","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:9","nodeType":"YulTypedName","src":"40:6:9","type":""}],"src":"7:75:9"},{"body":{"nativeSrc":"177:28:9","nodeType":"YulBlock","src":"177:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:9","nodeType":"YulLiteral","src":"194:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:9","nodeType":"YulLiteral","src":"197:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:9","nodeType":"YulIdentifier","src":"187:6:9"},"nativeSrc":"187:12:9","nodeType":"YulFunctionCall","src":"187:12:9"},"nativeSrc":"187:12:9","nodeType":"YulExpressionStatement","src":"187:12:9"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:9","nodeType":"YulFunctionDefinition","src":"88:117:9"},{"body":{"nativeSrc":"300:28:9","nodeType":"YulBlock","src":"300:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:9","nodeType":"YulLiteral","src":"317:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:9","nodeType":"YulLiteral","src":"320:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:9","nodeType":"YulIdentifier","src":"310:6:9"},"nativeSrc":"310:12:9","nodeType":"YulFunctionCall","src":"310:12:9"},"nativeSrc":"310:12:9","nodeType":"YulExpressionStatement","src":"310:12:9"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:9","nodeType":"YulFunctionDefinition","src":"211:117:9"},{"body":{"nativeSrc":"423:28:9","nodeType":"YulBlock","src":"423:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:9","nodeType":"YulLiteral","src":"440:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:9","nodeType":"YulLiteral","src":"443:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:9","nodeType":"YulIdentifier","src":"433:6:9"},"nativeSrc":"433:12:9","nodeType":"YulFunctionCall","src":"433:12:9"},"nativeSrc":"433:12:9","nodeType":"YulExpressionStatement","src":"433:12:9"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:9","nodeType":"YulFunctionDefinition","src":"334:117:9"},{"body":{"nativeSrc":"505:54:9","nodeType":"YulBlock","src":"505:54:9","statements":[{"nativeSrc":"515:38:9","nodeType":"YulAssignment","src":"515:38:9","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"533:5:9","nodeType":"YulIdentifier","src":"533:5:9"},{"kind":"number","nativeSrc":"540:2:9","nodeType":"YulLiteral","src":"540:2:9","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"529:3:9","nodeType":"YulIdentifier","src":"529:3:9"},"nativeSrc":"529:14:9","nodeType":"YulFunctionCall","src":"529:14:9"},{"arguments":[{"kind":"number","nativeSrc":"549:2:9","nodeType":"YulLiteral","src":"549:2:9","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"545:3:9","nodeType":"YulIdentifier","src":"545:3:9"},"nativeSrc":"545:7:9","nodeType":"YulFunctionCall","src":"545:7:9"}],"functionName":{"name":"and","nativeSrc":"525:3:9","nodeType":"YulIdentifier","src":"525:3:9"},"nativeSrc":"525:28:9","nodeType":"YulFunctionCall","src":"525:28:9"},"variableNames":[{"name":"result","nativeSrc":"515:6:9","nodeType":"YulIdentifier","src":"515:6:9"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"457:102:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"488:5:9","nodeType":"YulTypedName","src":"488:5:9","type":""}],"returnVariables":[{"name":"result","nativeSrc":"498:6:9","nodeType":"YulTypedName","src":"498:6:9","type":""}],"src":"457:102:9"},{"body":{"nativeSrc":"593:152:9","nodeType":"YulBlock","src":"593:152:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"610:1:9","nodeType":"YulLiteral","src":"610:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"613:77:9","nodeType":"YulLiteral","src":"613:77:9","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"603:6:9","nodeType":"YulIdentifier","src":"603:6:9"},"nativeSrc":"603:88:9","nodeType":"YulFunctionCall","src":"603:88:9"},"nativeSrc":"603:88:9","nodeType":"YulExpressionStatement","src":"603:88:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"707:1:9","nodeType":"YulLiteral","src":"707:1:9","type":"","value":"4"},{"kind":"number","nativeSrc":"710:4:9","nodeType":"YulLiteral","src":"710:4:9","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"700:6:9","nodeType":"YulIdentifier","src":"700:6:9"},"nativeSrc":"700:15:9","nodeType":"YulFunctionCall","src":"700:15:9"},"nativeSrc":"700:15:9","nodeType":"YulExpressionStatement","src":"700:15:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"731:1:9","nodeType":"YulLiteral","src":"731:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"734:4:9","nodeType":"YulLiteral","src":"734:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"724:6:9","nodeType":"YulIdentifier","src":"724:6:9"},"nativeSrc":"724:15:9","nodeType":"YulFunctionCall","src":"724:15:9"},"nativeSrc":"724:15:9","nodeType":"YulExpressionStatement","src":"724:15:9"}]},"name":"panic_error_0x41","nativeSrc":"565:180:9","nodeType":"YulFunctionDefinition","src":"565:180:9"},{"body":{"nativeSrc":"794:238:9","nodeType":"YulBlock","src":"794:238:9","statements":[{"nativeSrc":"804:58:9","nodeType":"YulVariableDeclaration","src":"804:58:9","value":{"arguments":[{"name":"memPtr","nativeSrc":"826:6:9","nodeType":"YulIdentifier","src":"826:6:9"},{"arguments":[{"name":"size","nativeSrc":"856:4:9","nodeType":"YulIdentifier","src":"856:4:9"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"834:21:9","nodeType":"YulIdentifier","src":"834:21:9"},"nativeSrc":"834:27:9","nodeType":"YulFunctionCall","src":"834:27:9"}],"functionName":{"name":"add","nativeSrc":"822:3:9","nodeType":"YulIdentifier","src":"822:3:9"},"nativeSrc":"822:40:9","nodeType":"YulFunctionCall","src":"822:40:9"},"variables":[{"name":"newFreePtr","nativeSrc":"808:10:9","nodeType":"YulTypedName","src":"808:10:9","type":""}]},{"body":{"nativeSrc":"973:22:9","nodeType":"YulBlock","src":"973:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"975:16:9","nodeType":"YulIdentifier","src":"975:16:9"},"nativeSrc":"975:18:9","nodeType":"YulFunctionCall","src":"975:18:9"},"nativeSrc":"975:18:9","nodeType":"YulExpressionStatement","src":"975:18:9"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"916:10:9","nodeType":"YulIdentifier","src":"916:10:9"},{"kind":"number","nativeSrc":"928:18:9","nodeType":"YulLiteral","src":"928:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"913:2:9","nodeType":"YulIdentifier","src":"913:2:9"},"nativeSrc":"913:34:9","nodeType":"YulFunctionCall","src":"913:34:9"},{"arguments":[{"name":"newFreePtr","nativeSrc":"952:10:9","nodeType":"YulIdentifier","src":"952:10:9"},{"name":"memPtr","nativeSrc":"964:6:9","nodeType":"YulIdentifier","src":"964:6:9"}],"functionName":{"name":"lt","nativeSrc":"949:2:9","nodeType":"YulIdentifier","src":"949:2:9"},"nativeSrc":"949:22:9","nodeType":"YulFunctionCall","src":"949:22:9"}],"functionName":{"name":"or","nativeSrc":"910:2:9","nodeType":"YulIdentifier","src":"910:2:9"},"nativeSrc":"910:62:9","nodeType":"YulFunctionCall","src":"910:62:9"},"nativeSrc":"907:88:9","nodeType":"YulIf","src":"907:88:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1011:2:9","nodeType":"YulLiteral","src":"1011:2:9","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1015:10:9","nodeType":"YulIdentifier","src":"1015:10:9"}],"functionName":{"name":"mstore","nativeSrc":"1004:6:9","nodeType":"YulIdentifier","src":"1004:6:9"},"nativeSrc":"1004:22:9","nodeType":"YulFunctionCall","src":"1004:22:9"},"nativeSrc":"1004:22:9","nodeType":"YulExpressionStatement","src":"1004:22:9"}]},"name":"finalize_allocation","nativeSrc":"751:281:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"780:6:9","nodeType":"YulTypedName","src":"780:6:9","type":""},{"name":"size","nativeSrc":"788:4:9","nodeType":"YulTypedName","src":"788:4:9","type":""}],"src":"751:281:9"},{"body":{"nativeSrc":"1079:88:9","nodeType":"YulBlock","src":"1079:88:9","statements":[{"nativeSrc":"1089:30:9","nodeType":"YulAssignment","src":"1089:30:9","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1099:18:9","nodeType":"YulIdentifier","src":"1099:18:9"},"nativeSrc":"1099:20:9","nodeType":"YulFunctionCall","src":"1099:20:9"},"variableNames":[{"name":"memPtr","nativeSrc":"1089:6:9","nodeType":"YulIdentifier","src":"1089:6:9"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1148:6:9","nodeType":"YulIdentifier","src":"1148:6:9"},{"name":"size","nativeSrc":"1156:4:9","nodeType":"YulIdentifier","src":"1156:4:9"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1128:19:9","nodeType":"YulIdentifier","src":"1128:19:9"},"nativeSrc":"1128:33:9","nodeType":"YulFunctionCall","src":"1128:33:9"},"nativeSrc":"1128:33:9","nodeType":"YulExpressionStatement","src":"1128:33:9"}]},"name":"allocate_memory","nativeSrc":"1038:129:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1063:4:9","nodeType":"YulTypedName","src":"1063:4:9","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1072:6:9","nodeType":"YulTypedName","src":"1072:6:9","type":""}],"src":"1038:129:9"},{"body":{"nativeSrc":"1255:229:9","nodeType":"YulBlock","src":"1255:229:9","statements":[{"body":{"nativeSrc":"1360:22:9","nodeType":"YulBlock","src":"1360:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1362:16:9","nodeType":"YulIdentifier","src":"1362:16:9"},"nativeSrc":"1362:18:9","nodeType":"YulFunctionCall","src":"1362:18:9"},"nativeSrc":"1362:18:9","nodeType":"YulExpressionStatement","src":"1362:18:9"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1332:6:9","nodeType":"YulIdentifier","src":"1332:6:9"},{"kind":"number","nativeSrc":"1340:18:9","nodeType":"YulLiteral","src":"1340:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1329:2:9","nodeType":"YulIdentifier","src":"1329:2:9"},"nativeSrc":"1329:30:9","nodeType":"YulFunctionCall","src":"1329:30:9"},"nativeSrc":"1326:56:9","nodeType":"YulIf","src":"1326:56:9"},{"nativeSrc":"1392:25:9","nodeType":"YulAssignment","src":"1392:25:9","value":{"arguments":[{"name":"length","nativeSrc":"1404:6:9","nodeType":"YulIdentifier","src":"1404:6:9"},{"kind":"number","nativeSrc":"1412:4:9","nodeType":"YulLiteral","src":"1412:4:9","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"1400:3:9","nodeType":"YulIdentifier","src":"1400:3:9"},"nativeSrc":"1400:17:9","nodeType":"YulFunctionCall","src":"1400:17:9"},"variableNames":[{"name":"size","nativeSrc":"1392:4:9","nodeType":"YulIdentifier","src":"1392:4:9"}]},{"nativeSrc":"1454:23:9","nodeType":"YulAssignment","src":"1454:23:9","value":{"arguments":[{"name":"size","nativeSrc":"1466:4:9","nodeType":"YulIdentifier","src":"1466:4:9"},{"kind":"number","nativeSrc":"1472:4:9","nodeType":"YulLiteral","src":"1472:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1462:3:9","nodeType":"YulIdentifier","src":"1462:3:9"},"nativeSrc":"1462:15:9","nodeType":"YulFunctionCall","src":"1462:15:9"},"variableNames":[{"name":"size","nativeSrc":"1454:4:9","nodeType":"YulIdentifier","src":"1454:4:9"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"1173:311:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1239:6:9","nodeType":"YulTypedName","src":"1239:6:9","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1250:4:9","nodeType":"YulTypedName","src":"1250:4:9","type":""}],"src":"1173:311:9"},{"body":{"nativeSrc":"1579:28:9","nodeType":"YulBlock","src":"1579:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1596:1:9","nodeType":"YulLiteral","src":"1596:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"1599:1:9","nodeType":"YulLiteral","src":"1599:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1589:6:9","nodeType":"YulIdentifier","src":"1589:6:9"},"nativeSrc":"1589:12:9","nodeType":"YulFunctionCall","src":"1589:12:9"},"nativeSrc":"1589:12:9","nodeType":"YulExpressionStatement","src":"1589:12:9"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1490:117:9","nodeType":"YulFunctionDefinition","src":"1490:117:9"},{"body":{"nativeSrc":"1658:81:9","nodeType":"YulBlock","src":"1658:81:9","statements":[{"nativeSrc":"1668:65:9","nodeType":"YulAssignment","src":"1668:65:9","value":{"arguments":[{"name":"value","nativeSrc":"1683:5:9","nodeType":"YulIdentifier","src":"1683:5:9"},{"kind":"number","nativeSrc":"1690:42:9","nodeType":"YulLiteral","src":"1690:42:9","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1679:3:9","nodeType":"YulIdentifier","src":"1679:3:9"},"nativeSrc":"1679:54:9","nodeType":"YulFunctionCall","src":"1679:54:9"},"variableNames":[{"name":"cleaned","nativeSrc":"1668:7:9","nodeType":"YulIdentifier","src":"1668:7:9"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1613:126:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1640:5:9","nodeType":"YulTypedName","src":"1640:5:9","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1650:7:9","nodeType":"YulTypedName","src":"1650:7:9","type":""}],"src":"1613:126:9"},{"body":{"nativeSrc":"1790:51:9","nodeType":"YulBlock","src":"1790:51:9","statements":[{"nativeSrc":"1800:35:9","nodeType":"YulAssignment","src":"1800:35:9","value":{"arguments":[{"name":"value","nativeSrc":"1829:5:9","nodeType":"YulIdentifier","src":"1829:5:9"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1811:17:9","nodeType":"YulIdentifier","src":"1811:17:9"},"nativeSrc":"1811:24:9","nodeType":"YulFunctionCall","src":"1811:24:9"},"variableNames":[{"name":"cleaned","nativeSrc":"1800:7:9","nodeType":"YulIdentifier","src":"1800:7:9"}]}]},"name":"cleanup_t_address","nativeSrc":"1745:96:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1772:5:9","nodeType":"YulTypedName","src":"1772:5:9","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1782:7:9","nodeType":"YulTypedName","src":"1782:7:9","type":""}],"src":"1745:96:9"},{"body":{"nativeSrc":"1890:79:9","nodeType":"YulBlock","src":"1890:79:9","statements":[{"body":{"nativeSrc":"1947:16:9","nodeType":"YulBlock","src":"1947:16:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1956:1:9","nodeType":"YulLiteral","src":"1956:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"1959:1:9","nodeType":"YulLiteral","src":"1959:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1949:6:9","nodeType":"YulIdentifier","src":"1949:6:9"},"nativeSrc":"1949:12:9","nodeType":"YulFunctionCall","src":"1949:12:9"},"nativeSrc":"1949:12:9","nodeType":"YulExpressionStatement","src":"1949:12:9"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1913:5:9","nodeType":"YulIdentifier","src":"1913:5:9"},{"arguments":[{"name":"value","nativeSrc":"1938:5:9","nodeType":"YulIdentifier","src":"1938:5:9"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1920:17:9","nodeType":"YulIdentifier","src":"1920:17:9"},"nativeSrc":"1920:24:9","nodeType":"YulFunctionCall","src":"1920:24:9"}],"functionName":{"name":"eq","nativeSrc":"1910:2:9","nodeType":"YulIdentifier","src":"1910:2:9"},"nativeSrc":"1910:35:9","nodeType":"YulFunctionCall","src":"1910:35:9"}],"functionName":{"name":"iszero","nativeSrc":"1903:6:9","nodeType":"YulIdentifier","src":"1903:6:9"},"nativeSrc":"1903:43:9","nodeType":"YulFunctionCall","src":"1903:43:9"},"nativeSrc":"1900:63:9","nodeType":"YulIf","src":"1900:63:9"}]},"name":"validator_revert_t_address","nativeSrc":"1847:122:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1883:5:9","nodeType":"YulTypedName","src":"1883:5:9","type":""}],"src":"1847:122:9"},{"body":{"nativeSrc":"2038:80:9","nodeType":"YulBlock","src":"2038:80:9","statements":[{"nativeSrc":"2048:22:9","nodeType":"YulAssignment","src":"2048:22:9","value":{"arguments":[{"name":"offset","nativeSrc":"2063:6:9","nodeType":"YulIdentifier","src":"2063:6:9"}],"functionName":{"name":"mload","nativeSrc":"2057:5:9","nodeType":"YulIdentifier","src":"2057:5:9"},"nativeSrc":"2057:13:9","nodeType":"YulFunctionCall","src":"2057:13:9"},"variableNames":[{"name":"value","nativeSrc":"2048:5:9","nodeType":"YulIdentifier","src":"2048:5:9"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2106:5:9","nodeType":"YulIdentifier","src":"2106:5:9"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2079:26:9","nodeType":"YulIdentifier","src":"2079:26:9"},"nativeSrc":"2079:33:9","nodeType":"YulFunctionCall","src":"2079:33:9"},"nativeSrc":"2079:33:9","nodeType":"YulExpressionStatement","src":"2079:33:9"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"1975:143:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2016:6:9","nodeType":"YulTypedName","src":"2016:6:9","type":""},{"name":"end","nativeSrc":"2024:3:9","nodeType":"YulTypedName","src":"2024:3:9","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2032:5:9","nodeType":"YulTypedName","src":"2032:5:9","type":""}],"src":"1975:143:9"},{"body":{"nativeSrc":"2254:619:9","nodeType":"YulBlock","src":"2254:619:9","statements":[{"nativeSrc":"2264:90:9","nodeType":"YulAssignment","src":"2264:90:9","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2346:6:9","nodeType":"YulIdentifier","src":"2346:6:9"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"2289:56:9","nodeType":"YulIdentifier","src":"2289:56:9"},"nativeSrc":"2289:64:9","nodeType":"YulFunctionCall","src":"2289:64:9"}],"functionName":{"name":"allocate_memory","nativeSrc":"2273:15:9","nodeType":"YulIdentifier","src":"2273:15:9"},"nativeSrc":"2273:81:9","nodeType":"YulFunctionCall","src":"2273:81:9"},"variableNames":[{"name":"array","nativeSrc":"2264:5:9","nodeType":"YulIdentifier","src":"2264:5:9"}]},{"nativeSrc":"2363:16:9","nodeType":"YulVariableDeclaration","src":"2363:16:9","value":{"name":"array","nativeSrc":"2374:5:9","nodeType":"YulIdentifier","src":"2374:5:9"},"variables":[{"name":"dst","nativeSrc":"2367:3:9","nodeType":"YulTypedName","src":"2367:3:9","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2396:5:9","nodeType":"YulIdentifier","src":"2396:5:9"},{"name":"length","nativeSrc":"2403:6:9","nodeType":"YulIdentifier","src":"2403:6:9"}],"functionName":{"name":"mstore","nativeSrc":"2389:6:9","nodeType":"YulIdentifier","src":"2389:6:9"},"nativeSrc":"2389:21:9","nodeType":"YulFunctionCall","src":"2389:21:9"},"nativeSrc":"2389:21:9","nodeType":"YulExpressionStatement","src":"2389:21:9"},{"nativeSrc":"2419:23:9","nodeType":"YulAssignment","src":"2419:23:9","value":{"arguments":[{"name":"array","nativeSrc":"2430:5:9","nodeType":"YulIdentifier","src":"2430:5:9"},{"kind":"number","nativeSrc":"2437:4:9","nodeType":"YulLiteral","src":"2437:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2426:3:9","nodeType":"YulIdentifier","src":"2426:3:9"},"nativeSrc":"2426:16:9","nodeType":"YulFunctionCall","src":"2426:16:9"},"variableNames":[{"name":"dst","nativeSrc":"2419:3:9","nodeType":"YulIdentifier","src":"2419:3:9"}]},{"nativeSrc":"2452:44:9","nodeType":"YulVariableDeclaration","src":"2452:44:9","value":{"arguments":[{"name":"offset","nativeSrc":"2470:6:9","nodeType":"YulIdentifier","src":"2470:6:9"},{"arguments":[{"name":"length","nativeSrc":"2482:6:9","nodeType":"YulIdentifier","src":"2482:6:9"},{"kind":"number","nativeSrc":"2490:4:9","nodeType":"YulLiteral","src":"2490:4:9","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"2478:3:9","nodeType":"YulIdentifier","src":"2478:3:9"},"nativeSrc":"2478:17:9","nodeType":"YulFunctionCall","src":"2478:17:9"}],"functionName":{"name":"add","nativeSrc":"2466:3:9","nodeType":"YulIdentifier","src":"2466:3:9"},"nativeSrc":"2466:30:9","nodeType":"YulFunctionCall","src":"2466:30:9"},"variables":[{"name":"srcEnd","nativeSrc":"2456:6:9","nodeType":"YulTypedName","src":"2456:6:9","type":""}]},{"body":{"nativeSrc":"2524:103:9","nodeType":"YulBlock","src":"2524:103:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2538:77:9","nodeType":"YulIdentifier","src":"2538:77:9"},"nativeSrc":"2538:79:9","nodeType":"YulFunctionCall","src":"2538:79:9"},"nativeSrc":"2538:79:9","nodeType":"YulExpressionStatement","src":"2538:79:9"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"2511:6:9","nodeType":"YulIdentifier","src":"2511:6:9"},{"name":"end","nativeSrc":"2519:3:9","nodeType":"YulIdentifier","src":"2519:3:9"}],"functionName":{"name":"gt","nativeSrc":"2508:2:9","nodeType":"YulIdentifier","src":"2508:2:9"},"nativeSrc":"2508:15:9","nodeType":"YulFunctionCall","src":"2508:15:9"},"nativeSrc":"2505:122:9","nodeType":"YulIf","src":"2505:122:9"},{"body":{"nativeSrc":"2712:155:9","nodeType":"YulBlock","src":"2712:155:9","statements":[{"nativeSrc":"2727:21:9","nodeType":"YulVariableDeclaration","src":"2727:21:9","value":{"name":"src","nativeSrc":"2745:3:9","nodeType":"YulIdentifier","src":"2745:3:9"},"variables":[{"name":"elementPos","nativeSrc":"2731:10:9","nodeType":"YulTypedName","src":"2731:10:9","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"2769:3:9","nodeType":"YulIdentifier","src":"2769:3:9"},{"arguments":[{"name":"elementPos","nativeSrc":"2806:10:9","nodeType":"YulIdentifier","src":"2806:10:9"},{"name":"end","nativeSrc":"2818:3:9","nodeType":"YulIdentifier","src":"2818:3:9"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"2774:31:9","nodeType":"YulIdentifier","src":"2774:31:9"},"nativeSrc":"2774:48:9","nodeType":"YulFunctionCall","src":"2774:48:9"}],"functionName":{"name":"mstore","nativeSrc":"2762:6:9","nodeType":"YulIdentifier","src":"2762:6:9"},"nativeSrc":"2762:61:9","nodeType":"YulFunctionCall","src":"2762:61:9"},"nativeSrc":"2762:61:9","nodeType":"YulExpressionStatement","src":"2762:61:9"},{"nativeSrc":"2836:21:9","nodeType":"YulAssignment","src":"2836:21:9","value":{"arguments":[{"name":"dst","nativeSrc":"2847:3:9","nodeType":"YulIdentifier","src":"2847:3:9"},{"kind":"number","nativeSrc":"2852:4:9","nodeType":"YulLiteral","src":"2852:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2843:3:9","nodeType":"YulIdentifier","src":"2843:3:9"},"nativeSrc":"2843:14:9","nodeType":"YulFunctionCall","src":"2843:14:9"},"variableNames":[{"name":"dst","nativeSrc":"2836:3:9","nodeType":"YulIdentifier","src":"2836:3:9"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"2665:3:9","nodeType":"YulIdentifier","src":"2665:3:9"},{"name":"srcEnd","nativeSrc":"2670:6:9","nodeType":"YulIdentifier","src":"2670:6:9"}],"functionName":{"name":"lt","nativeSrc":"2662:2:9","nodeType":"YulIdentifier","src":"2662:2:9"},"nativeSrc":"2662:15:9","nodeType":"YulFunctionCall","src":"2662:15:9"},"nativeSrc":"2636:231:9","nodeType":"YulForLoop","post":{"nativeSrc":"2678:25:9","nodeType":"YulBlock","src":"2678:25:9","statements":[{"nativeSrc":"2680:21:9","nodeType":"YulAssignment","src":"2680:21:9","value":{"arguments":[{"name":"src","nativeSrc":"2691:3:9","nodeType":"YulIdentifier","src":"2691:3:9"},{"kind":"number","nativeSrc":"2696:4:9","nodeType":"YulLiteral","src":"2696:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2687:3:9","nodeType":"YulIdentifier","src":"2687:3:9"},"nativeSrc":"2687:14:9","nodeType":"YulFunctionCall","src":"2687:14:9"},"variableNames":[{"name":"src","nativeSrc":"2680:3:9","nodeType":"YulIdentifier","src":"2680:3:9"}]}]},"pre":{"nativeSrc":"2640:21:9","nodeType":"YulBlock","src":"2640:21:9","statements":[{"nativeSrc":"2642:17:9","nodeType":"YulVariableDeclaration","src":"2642:17:9","value":{"name":"offset","nativeSrc":"2653:6:9","nodeType":"YulIdentifier","src":"2653:6:9"},"variables":[{"name":"src","nativeSrc":"2646:3:9","nodeType":"YulTypedName","src":"2646:3:9","type":""}]}]},"src":"2636:231:9"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory","nativeSrc":"2141:732:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2224:6:9","nodeType":"YulTypedName","src":"2224:6:9","type":""},{"name":"length","nativeSrc":"2232:6:9","nodeType":"YulTypedName","src":"2232:6:9","type":""},{"name":"end","nativeSrc":"2240:3:9","nodeType":"YulTypedName","src":"2240:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2248:5:9","nodeType":"YulTypedName","src":"2248:5:9","type":""}],"src":"2141:732:9"},{"body":{"nativeSrc":"2984:297:9","nodeType":"YulBlock","src":"2984:297:9","statements":[{"body":{"nativeSrc":"3033:83:9","nodeType":"YulBlock","src":"3033:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3035:77:9","nodeType":"YulIdentifier","src":"3035:77:9"},"nativeSrc":"3035:79:9","nodeType":"YulFunctionCall","src":"3035:79:9"},"nativeSrc":"3035:79:9","nodeType":"YulExpressionStatement","src":"3035:79:9"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3012:6:9","nodeType":"YulIdentifier","src":"3012:6:9"},{"kind":"number","nativeSrc":"3020:4:9","nodeType":"YulLiteral","src":"3020:4:9","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3008:3:9","nodeType":"YulIdentifier","src":"3008:3:9"},"nativeSrc":"3008:17:9","nodeType":"YulFunctionCall","src":"3008:17:9"},{"name":"end","nativeSrc":"3027:3:9","nodeType":"YulIdentifier","src":"3027:3:9"}],"functionName":{"name":"slt","nativeSrc":"3004:3:9","nodeType":"YulIdentifier","src":"3004:3:9"},"nativeSrc":"3004:27:9","nodeType":"YulFunctionCall","src":"3004:27:9"}],"functionName":{"name":"iszero","nativeSrc":"2997:6:9","nodeType":"YulIdentifier","src":"2997:6:9"},"nativeSrc":"2997:35:9","nodeType":"YulFunctionCall","src":"2997:35:9"},"nativeSrc":"2994:122:9","nodeType":"YulIf","src":"2994:122:9"},{"nativeSrc":"3125:27:9","nodeType":"YulVariableDeclaration","src":"3125:27:9","value":{"arguments":[{"name":"offset","nativeSrc":"3145:6:9","nodeType":"YulIdentifier","src":"3145:6:9"}],"functionName":{"name":"mload","nativeSrc":"3139:5:9","nodeType":"YulIdentifier","src":"3139:5:9"},"nativeSrc":"3139:13:9","nodeType":"YulFunctionCall","src":"3139:13:9"},"variables":[{"name":"length","nativeSrc":"3129:6:9","nodeType":"YulTypedName","src":"3129:6:9","type":""}]},{"nativeSrc":"3161:114:9","nodeType":"YulAssignment","src":"3161:114:9","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3248:6:9","nodeType":"YulIdentifier","src":"3248:6:9"},{"kind":"number","nativeSrc":"3256:4:9","nodeType":"YulLiteral","src":"3256:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3244:3:9","nodeType":"YulIdentifier","src":"3244:3:9"},"nativeSrc":"3244:17:9","nodeType":"YulFunctionCall","src":"3244:17:9"},{"name":"length","nativeSrc":"3263:6:9","nodeType":"YulIdentifier","src":"3263:6:9"},{"name":"end","nativeSrc":"3271:3:9","nodeType":"YulIdentifier","src":"3271:3:9"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory","nativeSrc":"3170:73:9","nodeType":"YulIdentifier","src":"3170:73:9"},"nativeSrc":"3170:105:9","nodeType":"YulFunctionCall","src":"3170:105:9"},"variableNames":[{"name":"array","nativeSrc":"3161:5:9","nodeType":"YulIdentifier","src":"3161:5:9"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory","nativeSrc":"2896:385:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2962:6:9","nodeType":"YulTypedName","src":"2962:6:9","type":""},{"name":"end","nativeSrc":"2970:3:9","nodeType":"YulTypedName","src":"2970:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2978:5:9","nodeType":"YulTypedName","src":"2978:5:9","type":""}],"src":"2896:385:9"},{"body":{"nativeSrc":"3389:452:9","nodeType":"YulBlock","src":"3389:452:9","statements":[{"body":{"nativeSrc":"3435:83:9","nodeType":"YulBlock","src":"3435:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3437:77:9","nodeType":"YulIdentifier","src":"3437:77:9"},"nativeSrc":"3437:79:9","nodeType":"YulFunctionCall","src":"3437:79:9"},"nativeSrc":"3437:79:9","nodeType":"YulExpressionStatement","src":"3437:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3410:7:9","nodeType":"YulIdentifier","src":"3410:7:9"},{"name":"headStart","nativeSrc":"3419:9:9","nodeType":"YulIdentifier","src":"3419:9:9"}],"functionName":{"name":"sub","nativeSrc":"3406:3:9","nodeType":"YulIdentifier","src":"3406:3:9"},"nativeSrc":"3406:23:9","nodeType":"YulFunctionCall","src":"3406:23:9"},{"kind":"number","nativeSrc":"3431:2:9","nodeType":"YulLiteral","src":"3431:2:9","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3402:3:9","nodeType":"YulIdentifier","src":"3402:3:9"},"nativeSrc":"3402:32:9","nodeType":"YulFunctionCall","src":"3402:32:9"},"nativeSrc":"3399:119:9","nodeType":"YulIf","src":"3399:119:9"},{"nativeSrc":"3528:306:9","nodeType":"YulBlock","src":"3528:306:9","statements":[{"nativeSrc":"3543:38:9","nodeType":"YulVariableDeclaration","src":"3543:38:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3567:9:9","nodeType":"YulIdentifier","src":"3567:9:9"},{"kind":"number","nativeSrc":"3578:1:9","nodeType":"YulLiteral","src":"3578:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3563:3:9","nodeType":"YulIdentifier","src":"3563:3:9"},"nativeSrc":"3563:17:9","nodeType":"YulFunctionCall","src":"3563:17:9"}],"functionName":{"name":"mload","nativeSrc":"3557:5:9","nodeType":"YulIdentifier","src":"3557:5:9"},"nativeSrc":"3557:24:9","nodeType":"YulFunctionCall","src":"3557:24:9"},"variables":[{"name":"offset","nativeSrc":"3547:6:9","nodeType":"YulTypedName","src":"3547:6:9","type":""}]},{"body":{"nativeSrc":"3628:83:9","nodeType":"YulBlock","src":"3628:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3630:77:9","nodeType":"YulIdentifier","src":"3630:77:9"},"nativeSrc":"3630:79:9","nodeType":"YulFunctionCall","src":"3630:79:9"},"nativeSrc":"3630:79:9","nodeType":"YulExpressionStatement","src":"3630:79:9"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3600:6:9","nodeType":"YulIdentifier","src":"3600:6:9"},{"kind":"number","nativeSrc":"3608:18:9","nodeType":"YulLiteral","src":"3608:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3597:2:9","nodeType":"YulIdentifier","src":"3597:2:9"},"nativeSrc":"3597:30:9","nodeType":"YulFunctionCall","src":"3597:30:9"},"nativeSrc":"3594:117:9","nodeType":"YulIf","src":"3594:117:9"},{"nativeSrc":"3725:99:9","nodeType":"YulAssignment","src":"3725:99:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3796:9:9","nodeType":"YulIdentifier","src":"3796:9:9"},{"name":"offset","nativeSrc":"3807:6:9","nodeType":"YulIdentifier","src":"3807:6:9"}],"functionName":{"name":"add","nativeSrc":"3792:3:9","nodeType":"YulIdentifier","src":"3792:3:9"},"nativeSrc":"3792:22:9","nodeType":"YulFunctionCall","src":"3792:22:9"},{"name":"dataEnd","nativeSrc":"3816:7:9","nodeType":"YulIdentifier","src":"3816:7:9"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory","nativeSrc":"3735:56:9","nodeType":"YulIdentifier","src":"3735:56:9"},"nativeSrc":"3735:89:9","nodeType":"YulFunctionCall","src":"3735:89:9"},"variableNames":[{"name":"value0","nativeSrc":"3725:6:9","nodeType":"YulIdentifier","src":"3725:6:9"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory","nativeSrc":"3287:554:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3359:9:9","nodeType":"YulTypedName","src":"3359:9:9","type":""},{"name":"dataEnd","nativeSrc":"3370:7:9","nodeType":"YulTypedName","src":"3370:7:9","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3382:6:9","nodeType":"YulTypedName","src":"3382:6:9","type":""}],"src":"3287:554:9"},{"body":{"nativeSrc":"3875:152:9","nodeType":"YulBlock","src":"3875:152:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3892:1:9","nodeType":"YulLiteral","src":"3892:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"3895:77:9","nodeType":"YulLiteral","src":"3895:77:9","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3885:6:9","nodeType":"YulIdentifier","src":"3885:6:9"},"nativeSrc":"3885:88:9","nodeType":"YulFunctionCall","src":"3885:88:9"},"nativeSrc":"3885:88:9","nodeType":"YulExpressionStatement","src":"3885:88:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3989:1:9","nodeType":"YulLiteral","src":"3989:1:9","type":"","value":"4"},{"kind":"number","nativeSrc":"3992:4:9","nodeType":"YulLiteral","src":"3992:4:9","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"3982:6:9","nodeType":"YulIdentifier","src":"3982:6:9"},"nativeSrc":"3982:15:9","nodeType":"YulFunctionCall","src":"3982:15:9"},"nativeSrc":"3982:15:9","nodeType":"YulExpressionStatement","src":"3982:15:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4013:1:9","nodeType":"YulLiteral","src":"4013:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"4016:4:9","nodeType":"YulLiteral","src":"4016:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4006:6:9","nodeType":"YulIdentifier","src":"4006:6:9"},"nativeSrc":"4006:15:9","nodeType":"YulFunctionCall","src":"4006:15:9"},"nativeSrc":"4006:15:9","nodeType":"YulExpressionStatement","src":"4006:15:9"}]},"name":"panic_error_0x32","nativeSrc":"3847:180:9","nodeType":"YulFunctionDefinition","src":"3847:180:9"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n}\n","id":9,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162001af638038062001af6833981810160405281019062000037919062000423565b6200004c6000801b33620000c060201b60201c565b5060005b8151811015620000b857620000a97fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583838151811062000095576200009462000474565b5b6020026020010151620000c060201b60201c565b50808060010191505062000050565b5050620004a3565b6000620000d48383620001c360201b60201c565b620001b857600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620001546200022d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050620001bd565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000299826200024e565b810181811067ffffffffffffffff82111715620002bb57620002ba6200025f565b5b80604052505050565b6000620002d062000235565b9050620002de82826200028e565b919050565b600067ffffffffffffffff8211156200030157620003006200025f565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003448262000317565b9050919050565b620003568162000337565b81146200036257600080fd5b50565b60008151905062000376816200034b565b92915050565b6000620003936200038d84620002e3565b620002c4565b90508083825260208201905060208402830185811115620003b957620003b862000312565b5b835b81811015620003e65780620003d1888262000365565b845260208401935050602081019050620003bb565b5050509392505050565b600082601f83011262000408576200040762000249565b5b81516200041a8482602086016200037c565b91505092915050565b6000602082840312156200043c576200043b6200023f565b5b600082015167ffffffffffffffff8111156200045d576200045c62000244565b5b6200046b84828501620003f0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b61164380620004b36000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063513ec2f811610071578063513ec2f81461016257806375b238fc14610192578063890f10a0146101b057806391d14854146101e0578063a217fddf14610210578063d547741f1461022e576100a9565b806301ffc9a7146100ae578063248a9ca3146100de5780632588cd551461010e5780632f2ff15d1461012a57806336568abe14610146575b600080fd5b6100c860048036038101906100c39190610ad0565b61024a565b6040516100d59190610b18565b60405180910390f35b6100f860048036038101906100f39190610b69565b6102c4565b6040516101059190610ba5565b60405180910390f35b61012860048036038101906101239190610c25565b6102e3565b005b610144600480360381019061013f9190610d04565b6104ed565b005b610160600480360381019061015b9190610d04565b61050f565b005b61017c60048036038101906101779190610e85565b61058a565b6040516101899190610f4d565b60405180910390f35b61019a610640565b6040516101a79190610ba5565b60405180910390f35b6101ca60048036038101906101c59190610f6f565b610664565b6040516101d79190610f4d565b60405180910390f35b6101fa60048036038101906101f59190610d04565b610717565b6040516102079190610b18565b60405180910390f35b610218610781565b6040516102259190610ba5565b60405180910390f35b61024860048036038101906102439190610d04565b610788565b005b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102bd57506102bc826107aa565b5b9050919050565b6000806000838152602001908152602001600020600101549050919050565b61030d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533610717565b61034c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103439061102e565b60405180910390fd5b60008484905011610392576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103899061109a565b60405180910390fd5b602484849050106103d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061112c565b60405180910390fd5b6000828290501161041e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041590611198565b60405180910390fd5b610100828290501115610466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045d9061122a565b60405180910390fd5b81816001868660405161047a92919061127a565b908152602001604051809103902091826104959291906114b4565b5083836040516104a692919061127a565b60405180910390207f6468084a45bfadcd3a84169a78a1a25c53317fc97f185e4037e0696cfc913ccc83836040516104df9291906115b1565b60405180910390a250505050565b6104f6826102c4565b6104ff81610814565b6105098383610828565b50505050565b610517610919565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461057b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105858282610921565b505050565b60018180516020810182018051848252602083016020850120818352809550505050505060009150905080546105bf906112cd565b80601f01602080910402602001604051908101604052809291908181526020018280546105eb906112cd565b80156106385780601f1061060d57610100808354040283529160200191610638565b820191906000526020600020905b81548152906001019060200180831161061b57829003601f168201915b505050505081565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b60606001838360405161067892919061127a565b90815260200160405180910390208054610691906112cd565b80601f01602080910402602001604051908101604052809291908181526020018280546106bd906112cd565b801561070a5780601f106106df5761010080835404028352916020019161070a565b820191906000526020600020905b8154815290600101906020018083116106ed57829003601f168201915b5050505050905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b610791826102c4565b61079a81610814565b6107a48383610921565b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61082581610820610919565b610a13565b50565b60006108348383610717565b61090e57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506108ab610919565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610913565b600090505b92915050565b600033905090565b600061092d8383610717565b15610a0857600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506109a5610919565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610a0d565b600090505b92915050565b610a1d8282610717565b610a605780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610a579291906115e4565b60405180910390fd5b5050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610aad81610a78565b8114610ab857600080fd5b50565b600081359050610aca81610aa4565b92915050565b600060208284031215610ae657610ae5610a6e565b5b6000610af484828501610abb565b91505092915050565b60008115159050919050565b610b1281610afd565b82525050565b6000602082019050610b2d6000830184610b09565b92915050565b6000819050919050565b610b4681610b33565b8114610b5157600080fd5b50565b600081359050610b6381610b3d565b92915050565b600060208284031215610b7f57610b7e610a6e565b5b6000610b8d84828501610b54565b91505092915050565b610b9f81610b33565b82525050565b6000602082019050610bba6000830184610b96565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610be557610be4610bc0565b5b8235905067ffffffffffffffff811115610c0257610c01610bc5565b5b602083019150836001820283011115610c1e57610c1d610bca565b5b9250929050565b60008060008060408587031215610c3f57610c3e610a6e565b5b600085013567ffffffffffffffff811115610c5d57610c5c610a73565b5b610c6987828801610bcf565b9450945050602085013567ffffffffffffffff811115610c8c57610c8b610a73565b5b610c9887828801610bcf565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cd182610ca6565b9050919050565b610ce181610cc6565b8114610cec57600080fd5b50565b600081359050610cfe81610cd8565b92915050565b60008060408385031215610d1b57610d1a610a6e565b5b6000610d2985828601610b54565b9250506020610d3a85828601610cef565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610d9282610d49565b810181811067ffffffffffffffff82111715610db157610db0610d5a565b5b80604052505050565b6000610dc4610a64565b9050610dd08282610d89565b919050565b600067ffffffffffffffff821115610df057610def610d5a565b5b610df982610d49565b9050602081019050919050565b82818337600083830152505050565b6000610e28610e2384610dd5565b610dba565b905082815260208101848484011115610e4457610e43610d44565b5b610e4f848285610e06565b509392505050565b600082601f830112610e6c57610e6b610bc0565b5b8135610e7c848260208601610e15565b91505092915050565b600060208284031215610e9b57610e9a610a6e565b5b600082013567ffffffffffffffff811115610eb957610eb8610a73565b5b610ec584828501610e57565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610f08578082015181840152602081019050610eed565b60008484015250505050565b6000610f1f82610ece565b610f298185610ed9565b9350610f39818560208601610eea565b610f4281610d49565b840191505092915050565b60006020820190508181036000830152610f678184610f14565b905092915050565b60008060208385031215610f8657610f85610a6e565b5b600083013567ffffffffffffffff811115610fa457610fa3610a73565b5b610fb085828601610bcf565b92509250509250929050565b7f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000611018602183610ed9565b915061102382610fbc565b604082019050919050565b600060208201905081810360008301526110478161100b565b9050919050565b7f576f726b67726f757049642063616e6e6f7420626520656d7074790000000000600082015250565b6000611084601b83610ed9565b915061108f8261104e565b602082019050919050565b600060208201905081810360008301526110b381611077565b9050919050565b7f576f726b67726f757049642063616e6e6f74206578636565642033362062797460008201527f6573000000000000000000000000000000000000000000000000000000000000602082015250565b6000611116602283610ed9565b9150611121826110ba565b604082019050919050565b6000602082019050818103600083015261114581611109565b9050919050565b7f416e63686f72486173682063616e6e6f7420626520656d707479000000000000600082015250565b6000611182601a83610ed9565b915061118d8261114c565b602082019050919050565b600060208201905081810360008301526111b181611175565b9050919050565b7f416e63686f72486173682063616e6e6f7420657863656564203235362062797460008201527f6573000000000000000000000000000000000000000000000000000000000000602082015250565b6000611214602283610ed9565b915061121f826111b8565b604082019050919050565b6000602082019050818103600083015261124381611207565b9050919050565b600081905092915050565b6000611261838561124a565b935061126e838584610e06565b82840190509392505050565b6000611287828486611255565b91508190509392505050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806112e557607f821691505b6020821081036112f8576112f761129e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026113607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611323565b61136a8683611323565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006113b16113ac6113a784611382565b61138c565b611382565b9050919050565b6000819050919050565b6113cb83611396565b6113df6113d7826113b8565b848454611330565b825550505050565b600090565b6113f46113e7565b6113ff8184846113c2565b505050565b5b81811015611423576114186000826113ec565b600181019050611405565b5050565b601f82111561146857611439816112fe565b61144284611313565b81016020851015611451578190505b61146561145d85611313565b830182611404565b50505b505050565b600082821c905092915050565b600061148b6000198460080261146d565b1980831691505092915050565b60006114a4838361147a565b9150826002028217905092915050565b6114be8383611293565b67ffffffffffffffff8111156114d7576114d6610d5a565b5b6114e182546112cd565b6114ec828285611427565b6000601f83116001811461151b5760008415611509578287013590505b6115138582611498565b86555061157b565b601f198416611529866112fe565b60005b828110156115515784890135825560018201915060208501945060208101905061152c565b8683101561156e578489013561156a601f89168261147a565b8355505b6001600288020188555050505b50505050505050565b60006115908385610ed9565b935061159d838584610e06565b6115a683610d49565b840190509392505050565b600060208201905081810360008301526115cc818486611584565b90509392505050565b6115de81610cc6565b82525050565b60006040820190506115f960008301856115d5565b6116066020830184610b96565b939250505056fea2646970667358221220f8c24b9a708f806781b283ffab6daf29e867efc617c1bcd49d12341e3658079464736f6c63430008180033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1AF6 CODESIZE SUB DUP1 PUSH3 0x1AF6 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x423 JUMP JUMPDEST PUSH3 0x4C PUSH1 0x0 DUP1 SHL CALLER PUSH3 0xC0 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH3 0xB8 JUMPI PUSH3 0xA9 PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH3 0x95 JUMPI PUSH3 0x94 PUSH3 0x474 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH3 0xC0 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH3 0x50 JUMP JUMPDEST POP POP PUSH3 0x4A3 JUMP JUMPDEST PUSH1 0x0 PUSH3 0xD4 DUP4 DUP4 PUSH3 0x1C3 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x1B8 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH3 0x154 PUSH3 0x22D PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH3 0x1BD JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x299 DUP3 PUSH3 0x24E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x2BB JUMPI PUSH3 0x2BA PUSH3 0x25F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2D0 PUSH3 0x235 JUMP JUMPDEST SWAP1 POP PUSH3 0x2DE DUP3 DUP3 PUSH3 0x28E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x301 JUMPI PUSH3 0x300 PUSH3 0x25F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x344 DUP3 PUSH3 0x317 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x356 DUP2 PUSH3 0x337 JUMP JUMPDEST DUP2 EQ PUSH3 0x362 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x376 DUP2 PUSH3 0x34B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x393 PUSH3 0x38D DUP5 PUSH3 0x2E3 JUMP JUMPDEST PUSH3 0x2C4 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH3 0x3B9 JUMPI PUSH3 0x3B8 PUSH3 0x312 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x3E6 JUMPI DUP1 PUSH3 0x3D1 DUP9 DUP3 PUSH3 0x365 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3BB JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x408 JUMPI PUSH3 0x407 PUSH3 0x249 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x41A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x37C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x43C JUMPI PUSH3 0x43B PUSH3 0x23F JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x45D JUMPI PUSH3 0x45C PUSH3 0x244 JUMP JUMPDEST JUMPDEST PUSH3 0x46B DUP5 DUP3 DUP6 ADD PUSH3 0x3F0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1643 DUP1 PUSH3 0x4B3 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x513EC2F8 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x513EC2F8 EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0x75B238FC EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0x890F10A0 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x22E JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0xDE JUMPI DUP1 PUSH4 0x2588CD55 EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x12A JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x146 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD5 SWAP2 SWAP1 PUSH2 0xB18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xB69 JUMP JUMPDEST PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x105 SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x128 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x123 SWAP2 SWAP1 PUSH2 0xC25 JUMP JUMPDEST PUSH2 0x2E3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x144 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13F SWAP2 SWAP1 PUSH2 0xD04 JUMP JUMPDEST PUSH2 0x4ED JUMP JUMPDEST STOP JUMPDEST PUSH2 0x160 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15B SWAP2 SWAP1 PUSH2 0xD04 JUMP JUMPDEST PUSH2 0x50F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x177 SWAP2 SWAP1 PUSH2 0xE85 JUMP JUMPDEST PUSH2 0x58A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x189 SWAP2 SWAP1 PUSH2 0xF4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A7 SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C5 SWAP2 SWAP1 PUSH2 0xF6F JUMP JUMPDEST PUSH2 0x664 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D7 SWAP2 SWAP1 PUSH2 0xF4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F5 SWAP2 SWAP1 PUSH2 0xD04 JUMP JUMPDEST PUSH2 0x717 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x207 SWAP2 SWAP1 PUSH2 0xB18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x218 PUSH2 0x781 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x248 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x243 SWAP2 SWAP1 PUSH2 0xD04 JUMP JUMPDEST PUSH2 0x788 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x2BD JUMPI POP PUSH2 0x2BC DUP3 PUSH2 0x7AA JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x30D PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 CALLER PUSH2 0x717 JUMP JUMPDEST PUSH2 0x34C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x343 SWAP1 PUSH2 0x102E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP5 SWAP1 POP GT PUSH2 0x392 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x389 SWAP1 PUSH2 0x109A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x24 DUP5 DUP5 SWAP1 POP LT PUSH2 0x3D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CF SWAP1 PUSH2 0x112C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP GT PUSH2 0x41E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x415 SWAP1 PUSH2 0x1198 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x100 DUP3 DUP3 SWAP1 POP GT ISZERO PUSH2 0x466 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x45D SWAP1 PUSH2 0x122A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x1 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x47A SWAP3 SWAP2 SWAP1 PUSH2 0x127A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP2 DUP3 PUSH2 0x495 SWAP3 SWAP2 SWAP1 PUSH2 0x14B4 JUMP JUMPDEST POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x4A6 SWAP3 SWAP2 SWAP1 PUSH2 0x127A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0x6468084A45BFADCD3A84169A78A1A25C53317FC97F185E4037E0696CFC913CCC DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x4DF SWAP3 SWAP2 SWAP1 PUSH2 0x15B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x4F6 DUP3 PUSH2 0x2C4 JUMP JUMPDEST PUSH2 0x4FF DUP2 PUSH2 0x814 JUMP JUMPDEST PUSH2 0x509 DUP4 DUP4 PUSH2 0x828 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x517 PUSH2 0x919 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x57B JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x585 DUP3 DUP3 PUSH2 0x921 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 ADD DUP1 MLOAD DUP5 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP6 ADD KECCAK256 DUP2 DUP4 MSTORE DUP1 SWAP6 POP POP POP POP POP POP PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 SLOAD PUSH2 0x5BF SWAP1 PUSH2 0x12CD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x5EB SWAP1 PUSH2 0x12CD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x638 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x60D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x638 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x678 SWAP3 SWAP2 SWAP1 PUSH2 0x127A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x691 SWAP1 PUSH2 0x12CD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x6BD SWAP1 PUSH2 0x12CD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x70A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6DF JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x70A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6ED JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x791 DUP3 PUSH2 0x2C4 JUMP JUMPDEST PUSH2 0x79A DUP2 PUSH2 0x814 JUMP JUMPDEST PUSH2 0x7A4 DUP4 DUP4 PUSH2 0x921 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x825 DUP2 PUSH2 0x820 PUSH2 0x919 JUMP JUMPDEST PUSH2 0xA13 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x834 DUP4 DUP4 PUSH2 0x717 JUMP JUMPDEST PUSH2 0x90E JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x8AB PUSH2 0x919 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x913 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x92D DUP4 DUP4 PUSH2 0x717 JUMP JUMPDEST ISZERO PUSH2 0xA08 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x9A5 PUSH2 0x919 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0xA0D JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA1D DUP3 DUP3 PUSH2 0x717 JUMP JUMPDEST PUSH2 0xA60 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA57 SWAP3 SWAP2 SWAP1 PUSH2 0x15E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAAD DUP2 PUSH2 0xA78 JUMP JUMPDEST DUP2 EQ PUSH2 0xAB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xACA DUP2 PUSH2 0xAA4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAE6 JUMPI PUSH2 0xAE5 PUSH2 0xA6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xAF4 DUP5 DUP3 DUP6 ADD PUSH2 0xABB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB12 DUP2 PUSH2 0xAFD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB2D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB09 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB46 DUP2 PUSH2 0xB33 JUMP JUMPDEST DUP2 EQ PUSH2 0xB51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB63 DUP2 PUSH2 0xB3D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB7F JUMPI PUSH2 0xB7E PUSH2 0xA6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB8D DUP5 DUP3 DUP6 ADD PUSH2 0xB54 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB9F DUP2 PUSH2 0xB33 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBBA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB96 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xBE5 JUMPI PUSH2 0xBE4 PUSH2 0xBC0 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC02 JUMPI PUSH2 0xC01 PUSH2 0xBC5 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xC1E JUMPI PUSH2 0xC1D PUSH2 0xBCA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xC3F JUMPI PUSH2 0xC3E PUSH2 0xA6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC5D JUMPI PUSH2 0xC5C PUSH2 0xA73 JUMP JUMPDEST JUMPDEST PUSH2 0xC69 DUP8 DUP3 DUP9 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC8C JUMPI PUSH2 0xC8B PUSH2 0xA73 JUMP JUMPDEST JUMPDEST PUSH2 0xC98 DUP8 DUP3 DUP9 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCD1 DUP3 PUSH2 0xCA6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCE1 DUP2 PUSH2 0xCC6 JUMP JUMPDEST DUP2 EQ PUSH2 0xCEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCFE DUP2 PUSH2 0xCD8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD1B JUMPI PUSH2 0xD1A PUSH2 0xA6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD29 DUP6 DUP3 DUP7 ADD PUSH2 0xB54 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD3A DUP6 DUP3 DUP7 ADD PUSH2 0xCEF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xD92 DUP3 PUSH2 0xD49 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xDB1 JUMPI PUSH2 0xDB0 PUSH2 0xD5A JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDC4 PUSH2 0xA64 JUMP JUMPDEST SWAP1 POP PUSH2 0xDD0 DUP3 DUP3 PUSH2 0xD89 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xDF0 JUMPI PUSH2 0xDEF PUSH2 0xD5A JUMP JUMPDEST JUMPDEST PUSH2 0xDF9 DUP3 PUSH2 0xD49 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE28 PUSH2 0xE23 DUP5 PUSH2 0xDD5 JUMP JUMPDEST PUSH2 0xDBA JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xE44 JUMPI PUSH2 0xE43 PUSH2 0xD44 JUMP JUMPDEST JUMPDEST PUSH2 0xE4F DUP5 DUP3 DUP6 PUSH2 0xE06 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xE6C JUMPI PUSH2 0xE6B PUSH2 0xBC0 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xE7C DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xE15 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE9B JUMPI PUSH2 0xE9A PUSH2 0xA6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEB9 JUMPI PUSH2 0xEB8 PUSH2 0xA73 JUMP JUMPDEST JUMPDEST PUSH2 0xEC5 DUP5 DUP3 DUP6 ADD PUSH2 0xE57 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF08 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEED JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF1F DUP3 PUSH2 0xECE JUMP JUMPDEST PUSH2 0xF29 DUP2 DUP6 PUSH2 0xED9 JUMP JUMPDEST SWAP4 POP PUSH2 0xF39 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xEEA JUMP JUMPDEST PUSH2 0xF42 DUP2 PUSH2 0xD49 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xF67 DUP2 DUP5 PUSH2 0xF14 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF86 JUMPI PUSH2 0xF85 PUSH2 0xA6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFA4 JUMPI PUSH2 0xFA3 PUSH2 0xA73 JUMP JUMPDEST JUMPDEST PUSH2 0xFB0 DUP6 DUP3 DUP7 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F6E6C792061646D696E2063616E2063616C6C20746869732066756E6374696F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1018 PUSH1 0x21 DUP4 PUSH2 0xED9 JUMP JUMPDEST SWAP2 POP PUSH2 0x1023 DUP3 PUSH2 0xFBC JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1047 DUP2 PUSH2 0x100B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x576F726B67726F757049642063616E6E6F7420626520656D7074790000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1084 PUSH1 0x1B DUP4 PUSH2 0xED9 JUMP JUMPDEST SWAP2 POP PUSH2 0x108F DUP3 PUSH2 0x104E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x10B3 DUP2 PUSH2 0x1077 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x576F726B67726F757049642063616E6E6F742065786365656420333620627974 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1116 PUSH1 0x22 DUP4 PUSH2 0xED9 JUMP JUMPDEST SWAP2 POP PUSH2 0x1121 DUP3 PUSH2 0x10BA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1145 DUP2 PUSH2 0x1109 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416E63686F72486173682063616E6E6F7420626520656D707479000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1182 PUSH1 0x1A DUP4 PUSH2 0xED9 JUMP JUMPDEST SWAP2 POP PUSH2 0x118D DUP3 PUSH2 0x114C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11B1 DUP2 PUSH2 0x1175 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416E63686F72486173682063616E6E6F74206578636565642032353620627974 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1214 PUSH1 0x22 DUP4 PUSH2 0xED9 JUMP JUMPDEST SWAP2 POP PUSH2 0x121F DUP3 PUSH2 0x11B8 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1243 DUP2 PUSH2 0x1207 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1261 DUP4 DUP6 PUSH2 0x124A JUMP JUMPDEST SWAP4 POP PUSH2 0x126E DUP4 DUP6 DUP5 PUSH2 0xE06 JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1287 DUP3 DUP5 DUP7 PUSH2 0x1255 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x12E5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x12F8 JUMPI PUSH2 0x12F7 PUSH2 0x129E JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x1360 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x1323 JUMP JUMPDEST PUSH2 0x136A DUP7 DUP4 PUSH2 0x1323 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13B1 PUSH2 0x13AC PUSH2 0x13A7 DUP5 PUSH2 0x1382 JUMP JUMPDEST PUSH2 0x138C JUMP JUMPDEST PUSH2 0x1382 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x13CB DUP4 PUSH2 0x1396 JUMP JUMPDEST PUSH2 0x13DF PUSH2 0x13D7 DUP3 PUSH2 0x13B8 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x1330 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x13F4 PUSH2 0x13E7 JUMP JUMPDEST PUSH2 0x13FF DUP2 DUP5 DUP5 PUSH2 0x13C2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1423 JUMPI PUSH2 0x1418 PUSH1 0x0 DUP3 PUSH2 0x13EC JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1405 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1468 JUMPI PUSH2 0x1439 DUP2 PUSH2 0x12FE JUMP JUMPDEST PUSH2 0x1442 DUP5 PUSH2 0x1313 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1451 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x1465 PUSH2 0x145D DUP6 PUSH2 0x1313 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1404 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x148B PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x146D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14A4 DUP4 DUP4 PUSH2 0x147A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x14BE DUP4 DUP4 PUSH2 0x1293 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14D7 JUMPI PUSH2 0x14D6 PUSH2 0xD5A JUMP JUMPDEST JUMPDEST PUSH2 0x14E1 DUP3 SLOAD PUSH2 0x12CD JUMP JUMPDEST PUSH2 0x14EC DUP3 DUP3 DUP6 PUSH2 0x1427 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x151B JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1509 JUMPI DUP3 DUP8 ADD CALLDATALOAD SWAP1 POP JUMPDEST PUSH2 0x1513 DUP6 DUP3 PUSH2 0x1498 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x157B JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1529 DUP7 PUSH2 0x12FE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1551 JUMPI DUP5 DUP10 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x152C JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x156E JUMPI DUP5 DUP10 ADD CALLDATALOAD PUSH2 0x156A PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x147A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1590 DUP4 DUP6 PUSH2 0xED9 JUMP JUMPDEST SWAP4 POP PUSH2 0x159D DUP4 DUP6 DUP5 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x15A6 DUP4 PUSH2 0xD49 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x15CC DUP2 DUP5 DUP7 PUSH2 0x1584 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x15DE DUP2 PUSH2 0xCC6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x15F9 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x15D5 JUMP JUMPDEST PUSH2 0x1606 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xB96 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 0xC2 0x4B SWAP11 PUSH17 0x8F806781B283FFAB6DAF29E867EFC617C1 0xBC 0xD4 SWAP14 SLT CALLVALUE 0x1E CALLDATASIZE PC SMOD SWAP5 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ","sourceMap":"123:1368:5:-:0;;;360:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;403:42;2232:4:0;414:18:5;;434:10;403;;;:42;;:::i;:::-;;498:6;493:125;514:6;:13;510:1;:17;493:125;;;542:33;332:23;565:6;572:1;565:9;;;;;;;;:::i;:::-;;;;;;;;542:10;;;:33;;:::i;:::-;;529:3;;;;;;;493:125;;;;360:262;123:1368;;6179:316:0;6256:4;6277:22;6285:4;6291:7;6277;;;:22;;:::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;;;:12;;:::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;2854:136::-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;656:96:2:-;709:7;735:10;728:17;;656:96;:::o;7:75:9:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:143::-;2032:5;2063:6;2057:13;2048:22;;2079:33;2106:5;2079:33;:::i;:::-;1975:143;;;;:::o;2141:732::-;2248:5;2273:81;2289:64;2346:6;2289:64;:::i;:::-;2273:81;:::i;:::-;2264:90;;2374:5;2403:6;2396:5;2389:21;2437:4;2430:5;2426:16;2419:23;;2490:4;2482:6;2478:17;2470:6;2466:30;2519:3;2511:6;2508:15;2505:122;;;2538:79;;:::i;:::-;2505:122;2653:6;2636:231;2670:6;2665:3;2662:15;2636:231;;;2745:3;2774:48;2818:3;2806:10;2774:48;:::i;:::-;2769:3;2762:61;2852:4;2847:3;2843:14;2836:21;;2712:155;2696:4;2691:3;2687:14;2680:21;;2636:231;;;2640:21;2254:619;;2141:732;;;;;:::o;2896:385::-;2978:5;3027:3;3020:4;3012:6;3008:17;3004:27;2994:122;;3035:79;;:::i;:::-;2994:122;3145:6;3139:13;3170:105;3271:3;3263:6;3256:4;3248:6;3244:17;3170:105;:::i;:::-;3161:114;;2984:297;2896:385;;;;:::o;3287:554::-;3382:6;3431:2;3419:9;3410:7;3406:23;3402:32;3399:119;;;3437:79;;:::i;:::-;3399:119;3578:1;3567:9;3563:17;3557:24;3608:18;3600:6;3597:30;3594:117;;;3630:79;;:::i;:::-;3594:117;3735:89;3816:7;3807:6;3796:9;3792:22;3735:89;:::i;:::-;3725:99;;3528:306;3287:554;;;;:::o;3847:180::-;3895:77;3892:1;3885:88;3992:4;3989:1;3982:15;4016:4;4013:1;4006:15;123:1368:5;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ADMIN_ROLE_464":{"entryPoint":1600,"id":464,"parameterSlots":0,"returnSlots":0},"@DEFAULT_ADMIN_ROLE_29":{"entryPoint":1921,"id":29,"parameterSlots":0,"returnSlots":0},"@_checkRole_114":{"entryPoint":2579,"id":114,"parameterSlots":2,"returnSlots":0},"@_checkRole_93":{"entryPoint":2068,"id":93,"parameterSlots":1,"returnSlots":0},"@_grantRole_256":{"entryPoint":2088,"id":256,"parameterSlots":2,"returnSlots":1},"@_msgSender_390":{"entryPoint":2329,"id":390,"parameterSlots":0,"returnSlots":1},"@_revokeRole_294":{"entryPoint":2337,"id":294,"parameterSlots":2,"returnSlots":1},"@anchorHashStore_453":{"entryPoint":1418,"id":453,"parameterSlots":0,"returnSlots":0},"@getAnchorHash_574":{"entryPoint":1636,"id":574,"parameterSlots":2,"returnSlots":1},"@getRoleAdmin_128":{"entryPoint":708,"id":128,"parameterSlots":1,"returnSlots":1},"@grantRole_147":{"entryPoint":1261,"id":147,"parameterSlots":2,"returnSlots":0},"@hasRole_80":{"entryPoint":1815,"id":80,"parameterSlots":2,"returnSlots":1},"@renounceRole_189":{"entryPoint":1295,"id":189,"parameterSlots":2,"returnSlots":0},"@revokeRole_166":{"entryPoint":1928,"id":166,"parameterSlots":2,"returnSlots":0},"@setAnchorHash_562":{"entryPoint":739,"id":562,"parameterSlots":4,"returnSlots":0},"@supportsInterface_431":{"entryPoint":1962,"id":431,"parameterSlots":1,"returnSlots":1},"@supportsInterface_62":{"entryPoint":586,"id":62,"parameterSlots":1,"returnSlots":1},"abi_decode_available_length_t_string_memory_ptr":{"entryPoint":3605,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":3311,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":2900,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":2747,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_calldata_ptr":{"entryPoint":3023,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_string_memory_ptr":{"entryPoint":3671,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":2921,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":3332,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":2768,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_calldata_ptr":{"entryPoint":3951,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptr":{"entryPoint":3109,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_string_memory_ptr":{"entryPoint":3717,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":5589,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2825,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":2966,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":5508,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":4693,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3860,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_580a2190317e559c7d04a8b4ee7133ca2ccde26681dd0e5271b6f32aec444efa_to_t_string_memory_ptr_fromStack":{"entryPoint":4361,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_78c1e73fefe3f4316304254051aea4b3cd1dff7c956954d148b846fe8ffe2a0a_to_t_string_memory_ptr_fromStack":{"entryPoint":4215,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_917787271d803f79cf82ae633fa9817a11c907186eb4e8b04a4a8343d3facc8b_to_t_string_memory_ptr_fromStack":{"entryPoint":4615,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_a3a00e5cebac6883c44ba7b7b2dc537ce06da1609d1fbae9a9e21d5fd543a3ca_to_t_string_memory_ptr_fromStack":{"entryPoint":4469,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b_to_t_string_memory_ptr_fromStack":{"entryPoint":4107,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4730,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed":{"entryPoint":5604,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2840,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":2981,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5553,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3917,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_580a2190317e559c7d04a8b4ee7133ca2ccde26681dd0e5271b6f32aec444efa__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4396,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_78c1e73fefe3f4316304254051aea4b3cd1dff7c956954d148b846fe8ffe2a0a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4250,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_917787271d803f79cf82ae633fa9817a11c907186eb4e8b04a4a8343d3facc8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4650,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a3a00e5cebac6883c44ba7b7b2dc537ce06da1609d1fbae9a9e21d5fd543a3ca__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4504,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4142,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":3514,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":2660,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":3541,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":4862,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_calldata_ptr":{"entryPoint":4755,"id":null,"parameterSlots":2,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":3790,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":3801,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":4682,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":5159,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":3270,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":2813,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":2867,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":2680,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3238,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":4994,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":5124,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":5014,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage":{"entryPoint":5300,"id":null,"parameterSlots":3,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":3590,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":3818,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":4883,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":4813,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":5272,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":3465,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":5004,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":5242,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":4766,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3418,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":5048,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3013,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3008,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3018,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":3396,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":2675,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":2670,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":3401,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":4899,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":5229,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":5100,"id":null,"parameterSlots":2,"returnSlots":0},"store_literal_in_memory_580a2190317e559c7d04a8b4ee7133ca2ccde26681dd0e5271b6f32aec444efa":{"entryPoint":4282,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_78c1e73fefe3f4316304254051aea4b3cd1dff7c956954d148b846fe8ffe2a0a":{"entryPoint":4174,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_917787271d803f79cf82ae633fa9817a11c907186eb4e8b04a4a8343d3facc8b":{"entryPoint":4536,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_a3a00e5cebac6883c44ba7b7b2dc537ce06da1609d1fbae9a9e21d5fd543a3ca":{"entryPoint":4428,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b":{"entryPoint":4028,"id":null,"parameterSlots":1,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":4912,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":5058,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_address":{"entryPoint":3288,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":2877,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":2724,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":5095,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:21787:9","nodeType":"YulBlock","src":"0:21787:9","statements":[{"body":{"nativeSrc":"47:35:9","nodeType":"YulBlock","src":"47:35:9","statements":[{"nativeSrc":"57:19:9","nodeType":"YulAssignment","src":"57:19:9","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:9","nodeType":"YulLiteral","src":"73:2:9","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:9","nodeType":"YulIdentifier","src":"67:5:9"},"nativeSrc":"67:9:9","nodeType":"YulFunctionCall","src":"67:9:9"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:9","nodeType":"YulIdentifier","src":"57:6:9"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:9","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:9","nodeType":"YulTypedName","src":"40:6:9","type":""}],"src":"7:75:9"},{"body":{"nativeSrc":"177:28:9","nodeType":"YulBlock","src":"177:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:9","nodeType":"YulLiteral","src":"194:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:9","nodeType":"YulLiteral","src":"197:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:9","nodeType":"YulIdentifier","src":"187:6:9"},"nativeSrc":"187:12:9","nodeType":"YulFunctionCall","src":"187:12:9"},"nativeSrc":"187:12:9","nodeType":"YulExpressionStatement","src":"187:12:9"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:9","nodeType":"YulFunctionDefinition","src":"88:117:9"},{"body":{"nativeSrc":"300:28:9","nodeType":"YulBlock","src":"300:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:9","nodeType":"YulLiteral","src":"317:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:9","nodeType":"YulLiteral","src":"320:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:9","nodeType":"YulIdentifier","src":"310:6:9"},"nativeSrc":"310:12:9","nodeType":"YulFunctionCall","src":"310:12:9"},"nativeSrc":"310:12:9","nodeType":"YulExpressionStatement","src":"310:12:9"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:9","nodeType":"YulFunctionDefinition","src":"211:117:9"},{"body":{"nativeSrc":"378:105:9","nodeType":"YulBlock","src":"378:105:9","statements":[{"nativeSrc":"388:89:9","nodeType":"YulAssignment","src":"388:89:9","value":{"arguments":[{"name":"value","nativeSrc":"403:5:9","nodeType":"YulIdentifier","src":"403:5:9"},{"kind":"number","nativeSrc":"410:66:9","nodeType":"YulLiteral","src":"410:66:9","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:9","nodeType":"YulIdentifier","src":"399:3:9"},"nativeSrc":"399:78:9","nodeType":"YulFunctionCall","src":"399:78:9"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:9","nodeType":"YulIdentifier","src":"388:7:9"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:9","nodeType":"YulTypedName","src":"360:5:9","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:9","nodeType":"YulTypedName","src":"370:7:9","type":""}],"src":"334:149:9"},{"body":{"nativeSrc":"531:78:9","nodeType":"YulBlock","src":"531:78:9","statements":[{"body":{"nativeSrc":"587:16:9","nodeType":"YulBlock","src":"587:16:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:9","nodeType":"YulLiteral","src":"596:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:9","nodeType":"YulLiteral","src":"599:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:9","nodeType":"YulIdentifier","src":"589:6:9"},"nativeSrc":"589:12:9","nodeType":"YulFunctionCall","src":"589:12:9"},"nativeSrc":"589:12:9","nodeType":"YulExpressionStatement","src":"589:12:9"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:9","nodeType":"YulIdentifier","src":"554:5:9"},{"arguments":[{"name":"value","nativeSrc":"578:5:9","nodeType":"YulIdentifier","src":"578:5:9"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:9","nodeType":"YulIdentifier","src":"561:16:9"},"nativeSrc":"561:23:9","nodeType":"YulFunctionCall","src":"561:23:9"}],"functionName":{"name":"eq","nativeSrc":"551:2:9","nodeType":"YulIdentifier","src":"551:2:9"},"nativeSrc":"551:34:9","nodeType":"YulFunctionCall","src":"551:34:9"}],"functionName":{"name":"iszero","nativeSrc":"544:6:9","nodeType":"YulIdentifier","src":"544:6:9"},"nativeSrc":"544:42:9","nodeType":"YulFunctionCall","src":"544:42:9"},"nativeSrc":"541:62:9","nodeType":"YulIf","src":"541:62:9"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:9","nodeType":"YulTypedName","src":"524:5:9","type":""}],"src":"489:120:9"},{"body":{"nativeSrc":"666:86:9","nodeType":"YulBlock","src":"666:86:9","statements":[{"nativeSrc":"676:29:9","nodeType":"YulAssignment","src":"676:29:9","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:9","nodeType":"YulIdentifier","src":"698:6:9"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:9","nodeType":"YulIdentifier","src":"685:12:9"},"nativeSrc":"685:20:9","nodeType":"YulFunctionCall","src":"685:20:9"},"variableNames":[{"name":"value","nativeSrc":"676:5:9","nodeType":"YulIdentifier","src":"676:5:9"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:9","nodeType":"YulIdentifier","src":"740:5:9"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:9","nodeType":"YulIdentifier","src":"714:25:9"},"nativeSrc":"714:32:9","nodeType":"YulFunctionCall","src":"714:32:9"},"nativeSrc":"714:32:9","nodeType":"YulExpressionStatement","src":"714:32:9"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:9","nodeType":"YulTypedName","src":"644:6:9","type":""},{"name":"end","nativeSrc":"652:3:9","nodeType":"YulTypedName","src":"652:3:9","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:9","nodeType":"YulTypedName","src":"660:5:9","type":""}],"src":"615:137:9"},{"body":{"nativeSrc":"823:262:9","nodeType":"YulBlock","src":"823:262:9","statements":[{"body":{"nativeSrc":"869:83:9","nodeType":"YulBlock","src":"869:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:9","nodeType":"YulIdentifier","src":"871:77:9"},"nativeSrc":"871:79:9","nodeType":"YulFunctionCall","src":"871:79:9"},"nativeSrc":"871:79:9","nodeType":"YulExpressionStatement","src":"871:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:9","nodeType":"YulIdentifier","src":"844:7:9"},{"name":"headStart","nativeSrc":"853:9:9","nodeType":"YulIdentifier","src":"853:9:9"}],"functionName":{"name":"sub","nativeSrc":"840:3:9","nodeType":"YulIdentifier","src":"840:3:9"},"nativeSrc":"840:23:9","nodeType":"YulFunctionCall","src":"840:23:9"},{"kind":"number","nativeSrc":"865:2:9","nodeType":"YulLiteral","src":"865:2:9","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:9","nodeType":"YulIdentifier","src":"836:3:9"},"nativeSrc":"836:32:9","nodeType":"YulFunctionCall","src":"836:32:9"},"nativeSrc":"833:119:9","nodeType":"YulIf","src":"833:119:9"},{"nativeSrc":"962:116:9","nodeType":"YulBlock","src":"962:116:9","statements":[{"nativeSrc":"977:15:9","nodeType":"YulVariableDeclaration","src":"977:15:9","value":{"kind":"number","nativeSrc":"991:1:9","nodeType":"YulLiteral","src":"991:1:9","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:9","nodeType":"YulTypedName","src":"981:6:9","type":""}]},{"nativeSrc":"1006:62:9","nodeType":"YulAssignment","src":"1006:62:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:9","nodeType":"YulIdentifier","src":"1040:9:9"},{"name":"offset","nativeSrc":"1051:6:9","nodeType":"YulIdentifier","src":"1051:6:9"}],"functionName":{"name":"add","nativeSrc":"1036:3:9","nodeType":"YulIdentifier","src":"1036:3:9"},"nativeSrc":"1036:22:9","nodeType":"YulFunctionCall","src":"1036:22:9"},{"name":"dataEnd","nativeSrc":"1060:7:9","nodeType":"YulIdentifier","src":"1060:7:9"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:9","nodeType":"YulIdentifier","src":"1016:19:9"},"nativeSrc":"1016:52:9","nodeType":"YulFunctionCall","src":"1016:52:9"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:9","nodeType":"YulIdentifier","src":"1006:6:9"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:9","nodeType":"YulTypedName","src":"793:9:9","type":""},{"name":"dataEnd","nativeSrc":"804:7:9","nodeType":"YulTypedName","src":"804:7:9","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:9","nodeType":"YulTypedName","src":"816:6:9","type":""}],"src":"758:327:9"},{"body":{"nativeSrc":"1133:48:9","nodeType":"YulBlock","src":"1133:48:9","statements":[{"nativeSrc":"1143:32:9","nodeType":"YulAssignment","src":"1143:32:9","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:9","nodeType":"YulIdentifier","src":"1168:5:9"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:9","nodeType":"YulIdentifier","src":"1161:6:9"},"nativeSrc":"1161:13:9","nodeType":"YulFunctionCall","src":"1161:13:9"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:9","nodeType":"YulIdentifier","src":"1154:6:9"},"nativeSrc":"1154:21:9","nodeType":"YulFunctionCall","src":"1154:21:9"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:9","nodeType":"YulIdentifier","src":"1143:7:9"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:9","nodeType":"YulTypedName","src":"1115:5:9","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:9","nodeType":"YulTypedName","src":"1125:7:9","type":""}],"src":"1091:90:9"},{"body":{"nativeSrc":"1246:50:9","nodeType":"YulBlock","src":"1246:50:9","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:9","nodeType":"YulIdentifier","src":"1263:3:9"},{"arguments":[{"name":"value","nativeSrc":"1283:5:9","nodeType":"YulIdentifier","src":"1283:5:9"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:9","nodeType":"YulIdentifier","src":"1268:14:9"},"nativeSrc":"1268:21:9","nodeType":"YulFunctionCall","src":"1268:21:9"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:9","nodeType":"YulIdentifier","src":"1256:6:9"},"nativeSrc":"1256:34:9","nodeType":"YulFunctionCall","src":"1256:34:9"},"nativeSrc":"1256:34:9","nodeType":"YulExpressionStatement","src":"1256:34:9"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:9","nodeType":"YulTypedName","src":"1234:5:9","type":""},{"name":"pos","nativeSrc":"1241:3:9","nodeType":"YulTypedName","src":"1241:3:9","type":""}],"src":"1187:109:9"},{"body":{"nativeSrc":"1394:118:9","nodeType":"YulBlock","src":"1394:118:9","statements":[{"nativeSrc":"1404:26:9","nodeType":"YulAssignment","src":"1404:26:9","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:9","nodeType":"YulIdentifier","src":"1416:9:9"},{"kind":"number","nativeSrc":"1427:2:9","nodeType":"YulLiteral","src":"1427:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:9","nodeType":"YulIdentifier","src":"1412:3:9"},"nativeSrc":"1412:18:9","nodeType":"YulFunctionCall","src":"1412:18:9"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:9","nodeType":"YulIdentifier","src":"1404:4:9"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:9","nodeType":"YulIdentifier","src":"1478:6:9"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:9","nodeType":"YulIdentifier","src":"1491:9:9"},{"kind":"number","nativeSrc":"1502:1:9","nodeType":"YulLiteral","src":"1502:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:9","nodeType":"YulIdentifier","src":"1487:3:9"},"nativeSrc":"1487:17:9","nodeType":"YulFunctionCall","src":"1487:17:9"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:9","nodeType":"YulIdentifier","src":"1440:37:9"},"nativeSrc":"1440:65:9","nodeType":"YulFunctionCall","src":"1440:65:9"},"nativeSrc":"1440:65:9","nodeType":"YulExpressionStatement","src":"1440:65:9"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:9","nodeType":"YulTypedName","src":"1366:9:9","type":""},{"name":"value0","nativeSrc":"1378:6:9","nodeType":"YulTypedName","src":"1378:6:9","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:9","nodeType":"YulTypedName","src":"1389:4:9","type":""}],"src":"1302:210:9"},{"body":{"nativeSrc":"1563:32:9","nodeType":"YulBlock","src":"1563:32:9","statements":[{"nativeSrc":"1573:16:9","nodeType":"YulAssignment","src":"1573:16:9","value":{"name":"value","nativeSrc":"1584:5:9","nodeType":"YulIdentifier","src":"1584:5:9"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:9","nodeType":"YulIdentifier","src":"1573:7:9"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"1518:77:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:9","nodeType":"YulTypedName","src":"1545:5:9","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:9","nodeType":"YulTypedName","src":"1555:7:9","type":""}],"src":"1518:77:9"},{"body":{"nativeSrc":"1644:79:9","nodeType":"YulBlock","src":"1644:79:9","statements":[{"body":{"nativeSrc":"1701:16:9","nodeType":"YulBlock","src":"1701:16:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1710:1:9","nodeType":"YulLiteral","src":"1710:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"1713:1:9","nodeType":"YulLiteral","src":"1713:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1703:6:9","nodeType":"YulIdentifier","src":"1703:6:9"},"nativeSrc":"1703:12:9","nodeType":"YulFunctionCall","src":"1703:12:9"},"nativeSrc":"1703:12:9","nodeType":"YulExpressionStatement","src":"1703:12:9"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1667:5:9","nodeType":"YulIdentifier","src":"1667:5:9"},{"arguments":[{"name":"value","nativeSrc":"1692:5:9","nodeType":"YulIdentifier","src":"1692:5:9"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"1674:17:9","nodeType":"YulIdentifier","src":"1674:17:9"},"nativeSrc":"1674:24:9","nodeType":"YulFunctionCall","src":"1674:24:9"}],"functionName":{"name":"eq","nativeSrc":"1664:2:9","nodeType":"YulIdentifier","src":"1664:2:9"},"nativeSrc":"1664:35:9","nodeType":"YulFunctionCall","src":"1664:35:9"}],"functionName":{"name":"iszero","nativeSrc":"1657:6:9","nodeType":"YulIdentifier","src":"1657:6:9"},"nativeSrc":"1657:43:9","nodeType":"YulFunctionCall","src":"1657:43:9"},"nativeSrc":"1654:63:9","nodeType":"YulIf","src":"1654:63:9"}]},"name":"validator_revert_t_bytes32","nativeSrc":"1601:122:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1637:5:9","nodeType":"YulTypedName","src":"1637:5:9","type":""}],"src":"1601:122:9"},{"body":{"nativeSrc":"1781:87:9","nodeType":"YulBlock","src":"1781:87:9","statements":[{"nativeSrc":"1791:29:9","nodeType":"YulAssignment","src":"1791:29:9","value":{"arguments":[{"name":"offset","nativeSrc":"1813:6:9","nodeType":"YulIdentifier","src":"1813:6:9"}],"functionName":{"name":"calldataload","nativeSrc":"1800:12:9","nodeType":"YulIdentifier","src":"1800:12:9"},"nativeSrc":"1800:20:9","nodeType":"YulFunctionCall","src":"1800:20:9"},"variableNames":[{"name":"value","nativeSrc":"1791:5:9","nodeType":"YulIdentifier","src":"1791:5:9"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1856:5:9","nodeType":"YulIdentifier","src":"1856:5:9"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"1829:26:9","nodeType":"YulIdentifier","src":"1829:26:9"},"nativeSrc":"1829:33:9","nodeType":"YulFunctionCall","src":"1829:33:9"},"nativeSrc":"1829:33:9","nodeType":"YulExpressionStatement","src":"1829:33:9"}]},"name":"abi_decode_t_bytes32","nativeSrc":"1729:139:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1759:6:9","nodeType":"YulTypedName","src":"1759:6:9","type":""},{"name":"end","nativeSrc":"1767:3:9","nodeType":"YulTypedName","src":"1767:3:9","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1775:5:9","nodeType":"YulTypedName","src":"1775:5:9","type":""}],"src":"1729:139:9"},{"body":{"nativeSrc":"1940:263:9","nodeType":"YulBlock","src":"1940:263:9","statements":[{"body":{"nativeSrc":"1986:83:9","nodeType":"YulBlock","src":"1986:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1988:77:9","nodeType":"YulIdentifier","src":"1988:77:9"},"nativeSrc":"1988:79:9","nodeType":"YulFunctionCall","src":"1988:79:9"},"nativeSrc":"1988:79:9","nodeType":"YulExpressionStatement","src":"1988:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1961:7:9","nodeType":"YulIdentifier","src":"1961:7:9"},{"name":"headStart","nativeSrc":"1970:9:9","nodeType":"YulIdentifier","src":"1970:9:9"}],"functionName":{"name":"sub","nativeSrc":"1957:3:9","nodeType":"YulIdentifier","src":"1957:3:9"},"nativeSrc":"1957:23:9","nodeType":"YulFunctionCall","src":"1957:23:9"},{"kind":"number","nativeSrc":"1982:2:9","nodeType":"YulLiteral","src":"1982:2:9","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1953:3:9","nodeType":"YulIdentifier","src":"1953:3:9"},"nativeSrc":"1953:32:9","nodeType":"YulFunctionCall","src":"1953:32:9"},"nativeSrc":"1950:119:9","nodeType":"YulIf","src":"1950:119:9"},{"nativeSrc":"2079:117:9","nodeType":"YulBlock","src":"2079:117:9","statements":[{"nativeSrc":"2094:15:9","nodeType":"YulVariableDeclaration","src":"2094:15:9","value":{"kind":"number","nativeSrc":"2108:1:9","nodeType":"YulLiteral","src":"2108:1:9","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2098:6:9","nodeType":"YulTypedName","src":"2098:6:9","type":""}]},{"nativeSrc":"2123:63:9","nodeType":"YulAssignment","src":"2123:63:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2158:9:9","nodeType":"YulIdentifier","src":"2158:9:9"},{"name":"offset","nativeSrc":"2169:6:9","nodeType":"YulIdentifier","src":"2169:6:9"}],"functionName":{"name":"add","nativeSrc":"2154:3:9","nodeType":"YulIdentifier","src":"2154:3:9"},"nativeSrc":"2154:22:9","nodeType":"YulFunctionCall","src":"2154:22:9"},{"name":"dataEnd","nativeSrc":"2178:7:9","nodeType":"YulIdentifier","src":"2178:7:9"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"2133:20:9","nodeType":"YulIdentifier","src":"2133:20:9"},"nativeSrc":"2133:53:9","nodeType":"YulFunctionCall","src":"2133:53:9"},"variableNames":[{"name":"value0","nativeSrc":"2123:6:9","nodeType":"YulIdentifier","src":"2123:6:9"}]}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"1874:329:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1910:9:9","nodeType":"YulTypedName","src":"1910:9:9","type":""},{"name":"dataEnd","nativeSrc":"1921:7:9","nodeType":"YulTypedName","src":"1921:7:9","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1933:6:9","nodeType":"YulTypedName","src":"1933:6:9","type":""}],"src":"1874:329:9"},{"body":{"nativeSrc":"2274:53:9","nodeType":"YulBlock","src":"2274:53:9","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2291:3:9","nodeType":"YulIdentifier","src":"2291:3:9"},{"arguments":[{"name":"value","nativeSrc":"2314:5:9","nodeType":"YulIdentifier","src":"2314:5:9"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"2296:17:9","nodeType":"YulIdentifier","src":"2296:17:9"},"nativeSrc":"2296:24:9","nodeType":"YulFunctionCall","src":"2296:24:9"}],"functionName":{"name":"mstore","nativeSrc":"2284:6:9","nodeType":"YulIdentifier","src":"2284:6:9"},"nativeSrc":"2284:37:9","nodeType":"YulFunctionCall","src":"2284:37:9"},"nativeSrc":"2284:37:9","nodeType":"YulExpressionStatement","src":"2284:37:9"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"2209:118:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2262:5:9","nodeType":"YulTypedName","src":"2262:5:9","type":""},{"name":"pos","nativeSrc":"2269:3:9","nodeType":"YulTypedName","src":"2269:3:9","type":""}],"src":"2209:118:9"},{"body":{"nativeSrc":"2431:124:9","nodeType":"YulBlock","src":"2431:124:9","statements":[{"nativeSrc":"2441:26:9","nodeType":"YulAssignment","src":"2441:26:9","value":{"arguments":[{"name":"headStart","nativeSrc":"2453:9:9","nodeType":"YulIdentifier","src":"2453:9:9"},{"kind":"number","nativeSrc":"2464:2:9","nodeType":"YulLiteral","src":"2464:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2449:3:9","nodeType":"YulIdentifier","src":"2449:3:9"},"nativeSrc":"2449:18:9","nodeType":"YulFunctionCall","src":"2449:18:9"},"variableNames":[{"name":"tail","nativeSrc":"2441:4:9","nodeType":"YulIdentifier","src":"2441:4:9"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2521:6:9","nodeType":"YulIdentifier","src":"2521:6:9"},{"arguments":[{"name":"headStart","nativeSrc":"2534:9:9","nodeType":"YulIdentifier","src":"2534:9:9"},{"kind":"number","nativeSrc":"2545:1:9","nodeType":"YulLiteral","src":"2545:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2530:3:9","nodeType":"YulIdentifier","src":"2530:3:9"},"nativeSrc":"2530:17:9","nodeType":"YulFunctionCall","src":"2530:17:9"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"2477:43:9","nodeType":"YulIdentifier","src":"2477:43:9"},"nativeSrc":"2477:71:9","nodeType":"YulFunctionCall","src":"2477:71:9"},"nativeSrc":"2477:71:9","nodeType":"YulExpressionStatement","src":"2477:71:9"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"2333:222:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2403:9:9","nodeType":"YulTypedName","src":"2403:9:9","type":""},{"name":"value0","nativeSrc":"2415:6:9","nodeType":"YulTypedName","src":"2415:6:9","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2426:4:9","nodeType":"YulTypedName","src":"2426:4:9","type":""}],"src":"2333:222:9"},{"body":{"nativeSrc":"2650:28:9","nodeType":"YulBlock","src":"2650:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2667:1:9","nodeType":"YulLiteral","src":"2667:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"2670:1:9","nodeType":"YulLiteral","src":"2670:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2660:6:9","nodeType":"YulIdentifier","src":"2660:6:9"},"nativeSrc":"2660:12:9","nodeType":"YulFunctionCall","src":"2660:12:9"},"nativeSrc":"2660:12:9","nodeType":"YulExpressionStatement","src":"2660:12:9"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2561:117:9","nodeType":"YulFunctionDefinition","src":"2561:117:9"},{"body":{"nativeSrc":"2773:28:9","nodeType":"YulBlock","src":"2773:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2790:1:9","nodeType":"YulLiteral","src":"2790:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"2793:1:9","nodeType":"YulLiteral","src":"2793:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2783:6:9","nodeType":"YulIdentifier","src":"2783:6:9"},"nativeSrc":"2783:12:9","nodeType":"YulFunctionCall","src":"2783:12:9"},"nativeSrc":"2783:12:9","nodeType":"YulExpressionStatement","src":"2783:12:9"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2684:117:9","nodeType":"YulFunctionDefinition","src":"2684:117:9"},{"body":{"nativeSrc":"2896:28:9","nodeType":"YulBlock","src":"2896:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2913:1:9","nodeType":"YulLiteral","src":"2913:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"2916:1:9","nodeType":"YulLiteral","src":"2916:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2906:6:9","nodeType":"YulIdentifier","src":"2906:6:9"},"nativeSrc":"2906:12:9","nodeType":"YulFunctionCall","src":"2906:12:9"},"nativeSrc":"2906:12:9","nodeType":"YulExpressionStatement","src":"2906:12:9"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2807:117:9","nodeType":"YulFunctionDefinition","src":"2807:117:9"},{"body":{"nativeSrc":"3019:478:9","nodeType":"YulBlock","src":"3019:478:9","statements":[{"body":{"nativeSrc":"3068:83:9","nodeType":"YulBlock","src":"3068:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3070:77:9","nodeType":"YulIdentifier","src":"3070:77:9"},"nativeSrc":"3070:79:9","nodeType":"YulFunctionCall","src":"3070:79:9"},"nativeSrc":"3070:79:9","nodeType":"YulExpressionStatement","src":"3070:79:9"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3047:6:9","nodeType":"YulIdentifier","src":"3047:6:9"},{"kind":"number","nativeSrc":"3055:4:9","nodeType":"YulLiteral","src":"3055:4:9","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3043:3:9","nodeType":"YulIdentifier","src":"3043:3:9"},"nativeSrc":"3043:17:9","nodeType":"YulFunctionCall","src":"3043:17:9"},{"name":"end","nativeSrc":"3062:3:9","nodeType":"YulIdentifier","src":"3062:3:9"}],"functionName":{"name":"slt","nativeSrc":"3039:3:9","nodeType":"YulIdentifier","src":"3039:3:9"},"nativeSrc":"3039:27:9","nodeType":"YulFunctionCall","src":"3039:27:9"}],"functionName":{"name":"iszero","nativeSrc":"3032:6:9","nodeType":"YulIdentifier","src":"3032:6:9"},"nativeSrc":"3032:35:9","nodeType":"YulFunctionCall","src":"3032:35:9"},"nativeSrc":"3029:122:9","nodeType":"YulIf","src":"3029:122:9"},{"nativeSrc":"3160:30:9","nodeType":"YulAssignment","src":"3160:30:9","value":{"arguments":[{"name":"offset","nativeSrc":"3183:6:9","nodeType":"YulIdentifier","src":"3183:6:9"}],"functionName":{"name":"calldataload","nativeSrc":"3170:12:9","nodeType":"YulIdentifier","src":"3170:12:9"},"nativeSrc":"3170:20:9","nodeType":"YulFunctionCall","src":"3170:20:9"},"variableNames":[{"name":"length","nativeSrc":"3160:6:9","nodeType":"YulIdentifier","src":"3160:6:9"}]},{"body":{"nativeSrc":"3233:83:9","nodeType":"YulBlock","src":"3233:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3235:77:9","nodeType":"YulIdentifier","src":"3235:77:9"},"nativeSrc":"3235:79:9","nodeType":"YulFunctionCall","src":"3235:79:9"},"nativeSrc":"3235:79:9","nodeType":"YulExpressionStatement","src":"3235:79:9"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3205:6:9","nodeType":"YulIdentifier","src":"3205:6:9"},{"kind":"number","nativeSrc":"3213:18:9","nodeType":"YulLiteral","src":"3213:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3202:2:9","nodeType":"YulIdentifier","src":"3202:2:9"},"nativeSrc":"3202:30:9","nodeType":"YulFunctionCall","src":"3202:30:9"},"nativeSrc":"3199:117:9","nodeType":"YulIf","src":"3199:117:9"},{"nativeSrc":"3325:29:9","nodeType":"YulAssignment","src":"3325:29:9","value":{"arguments":[{"name":"offset","nativeSrc":"3341:6:9","nodeType":"YulIdentifier","src":"3341:6:9"},{"kind":"number","nativeSrc":"3349:4:9","nodeType":"YulLiteral","src":"3349:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3337:3:9","nodeType":"YulIdentifier","src":"3337:3:9"},"nativeSrc":"3337:17:9","nodeType":"YulFunctionCall","src":"3337:17:9"},"variableNames":[{"name":"arrayPos","nativeSrc":"3325:8:9","nodeType":"YulIdentifier","src":"3325:8:9"}]},{"body":{"nativeSrc":"3408:83:9","nodeType":"YulBlock","src":"3408:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3410:77:9","nodeType":"YulIdentifier","src":"3410:77:9"},"nativeSrc":"3410:79:9","nodeType":"YulFunctionCall","src":"3410:79:9"},"nativeSrc":"3410:79:9","nodeType":"YulExpressionStatement","src":"3410:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3373:8:9","nodeType":"YulIdentifier","src":"3373:8:9"},{"arguments":[{"name":"length","nativeSrc":"3387:6:9","nodeType":"YulIdentifier","src":"3387:6:9"},{"kind":"number","nativeSrc":"3395:4:9","nodeType":"YulLiteral","src":"3395:4:9","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"3383:3:9","nodeType":"YulIdentifier","src":"3383:3:9"},"nativeSrc":"3383:17:9","nodeType":"YulFunctionCall","src":"3383:17:9"}],"functionName":{"name":"add","nativeSrc":"3369:3:9","nodeType":"YulIdentifier","src":"3369:3:9"},"nativeSrc":"3369:32:9","nodeType":"YulFunctionCall","src":"3369:32:9"},{"name":"end","nativeSrc":"3403:3:9","nodeType":"YulIdentifier","src":"3403:3:9"}],"functionName":{"name":"gt","nativeSrc":"3366:2:9","nodeType":"YulIdentifier","src":"3366:2:9"},"nativeSrc":"3366:41:9","nodeType":"YulFunctionCall","src":"3366:41:9"},"nativeSrc":"3363:128:9","nodeType":"YulIf","src":"3363:128:9"}]},"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"2944:553:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2986:6:9","nodeType":"YulTypedName","src":"2986:6:9","type":""},{"name":"end","nativeSrc":"2994:3:9","nodeType":"YulTypedName","src":"2994:3:9","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"3002:8:9","nodeType":"YulTypedName","src":"3002:8:9","type":""},{"name":"length","nativeSrc":"3012:6:9","nodeType":"YulTypedName","src":"3012:6:9","type":""}],"src":"2944:553:9"},{"body":{"nativeSrc":"3626:751:9","nodeType":"YulBlock","src":"3626:751:9","statements":[{"body":{"nativeSrc":"3672:83:9","nodeType":"YulBlock","src":"3672:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3674:77:9","nodeType":"YulIdentifier","src":"3674:77:9"},"nativeSrc":"3674:79:9","nodeType":"YulFunctionCall","src":"3674:79:9"},"nativeSrc":"3674:79:9","nodeType":"YulExpressionStatement","src":"3674:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3647:7:9","nodeType":"YulIdentifier","src":"3647:7:9"},{"name":"headStart","nativeSrc":"3656:9:9","nodeType":"YulIdentifier","src":"3656:9:9"}],"functionName":{"name":"sub","nativeSrc":"3643:3:9","nodeType":"YulIdentifier","src":"3643:3:9"},"nativeSrc":"3643:23:9","nodeType":"YulFunctionCall","src":"3643:23:9"},{"kind":"number","nativeSrc":"3668:2:9","nodeType":"YulLiteral","src":"3668:2:9","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3639:3:9","nodeType":"YulIdentifier","src":"3639:3:9"},"nativeSrc":"3639:32:9","nodeType":"YulFunctionCall","src":"3639:32:9"},"nativeSrc":"3636:119:9","nodeType":"YulIf","src":"3636:119:9"},{"nativeSrc":"3765:297:9","nodeType":"YulBlock","src":"3765:297:9","statements":[{"nativeSrc":"3780:45:9","nodeType":"YulVariableDeclaration","src":"3780:45:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3811:9:9","nodeType":"YulIdentifier","src":"3811:9:9"},{"kind":"number","nativeSrc":"3822:1:9","nodeType":"YulLiteral","src":"3822:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3807:3:9","nodeType":"YulIdentifier","src":"3807:3:9"},"nativeSrc":"3807:17:9","nodeType":"YulFunctionCall","src":"3807:17:9"}],"functionName":{"name":"calldataload","nativeSrc":"3794:12:9","nodeType":"YulIdentifier","src":"3794:12:9"},"nativeSrc":"3794:31:9","nodeType":"YulFunctionCall","src":"3794:31:9"},"variables":[{"name":"offset","nativeSrc":"3784:6:9","nodeType":"YulTypedName","src":"3784:6:9","type":""}]},{"body":{"nativeSrc":"3872:83:9","nodeType":"YulBlock","src":"3872:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3874:77:9","nodeType":"YulIdentifier","src":"3874:77:9"},"nativeSrc":"3874:79:9","nodeType":"YulFunctionCall","src":"3874:79:9"},"nativeSrc":"3874:79:9","nodeType":"YulExpressionStatement","src":"3874:79:9"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3844:6:9","nodeType":"YulIdentifier","src":"3844:6:9"},{"kind":"number","nativeSrc":"3852:18:9","nodeType":"YulLiteral","src":"3852:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3841:2:9","nodeType":"YulIdentifier","src":"3841:2:9"},"nativeSrc":"3841:30:9","nodeType":"YulFunctionCall","src":"3841:30:9"},"nativeSrc":"3838:117:9","nodeType":"YulIf","src":"3838:117:9"},{"nativeSrc":"3969:83:9","nodeType":"YulAssignment","src":"3969:83:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4024:9:9","nodeType":"YulIdentifier","src":"4024:9:9"},{"name":"offset","nativeSrc":"4035:6:9","nodeType":"YulIdentifier","src":"4035:6:9"}],"functionName":{"name":"add","nativeSrc":"4020:3:9","nodeType":"YulIdentifier","src":"4020:3:9"},"nativeSrc":"4020:22:9","nodeType":"YulFunctionCall","src":"4020:22:9"},{"name":"dataEnd","nativeSrc":"4044:7:9","nodeType":"YulIdentifier","src":"4044:7:9"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"3987:32:9","nodeType":"YulIdentifier","src":"3987:32:9"},"nativeSrc":"3987:65:9","nodeType":"YulFunctionCall","src":"3987:65:9"},"variableNames":[{"name":"value0","nativeSrc":"3969:6:9","nodeType":"YulIdentifier","src":"3969:6:9"},{"name":"value1","nativeSrc":"3977:6:9","nodeType":"YulIdentifier","src":"3977:6:9"}]}]},{"nativeSrc":"4072:298:9","nodeType":"YulBlock","src":"4072:298:9","statements":[{"nativeSrc":"4087:46:9","nodeType":"YulVariableDeclaration","src":"4087:46:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4118:9:9","nodeType":"YulIdentifier","src":"4118:9:9"},{"kind":"number","nativeSrc":"4129:2:9","nodeType":"YulLiteral","src":"4129:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4114:3:9","nodeType":"YulIdentifier","src":"4114:3:9"},"nativeSrc":"4114:18:9","nodeType":"YulFunctionCall","src":"4114:18:9"}],"functionName":{"name":"calldataload","nativeSrc":"4101:12:9","nodeType":"YulIdentifier","src":"4101:12:9"},"nativeSrc":"4101:32:9","nodeType":"YulFunctionCall","src":"4101:32:9"},"variables":[{"name":"offset","nativeSrc":"4091:6:9","nodeType":"YulTypedName","src":"4091:6:9","type":""}]},{"body":{"nativeSrc":"4180:83:9","nodeType":"YulBlock","src":"4180:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4182:77:9","nodeType":"YulIdentifier","src":"4182:77:9"},"nativeSrc":"4182:79:9","nodeType":"YulFunctionCall","src":"4182:79:9"},"nativeSrc":"4182:79:9","nodeType":"YulExpressionStatement","src":"4182:79:9"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4152:6:9","nodeType":"YulIdentifier","src":"4152:6:9"},{"kind":"number","nativeSrc":"4160:18:9","nodeType":"YulLiteral","src":"4160:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4149:2:9","nodeType":"YulIdentifier","src":"4149:2:9"},"nativeSrc":"4149:30:9","nodeType":"YulFunctionCall","src":"4149:30:9"},"nativeSrc":"4146:117:9","nodeType":"YulIf","src":"4146:117:9"},{"nativeSrc":"4277:83:9","nodeType":"YulAssignment","src":"4277:83:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4332:9:9","nodeType":"YulIdentifier","src":"4332:9:9"},{"name":"offset","nativeSrc":"4343:6:9","nodeType":"YulIdentifier","src":"4343:6:9"}],"functionName":{"name":"add","nativeSrc":"4328:3:9","nodeType":"YulIdentifier","src":"4328:3:9"},"nativeSrc":"4328:22:9","nodeType":"YulFunctionCall","src":"4328:22:9"},{"name":"dataEnd","nativeSrc":"4352:7:9","nodeType":"YulIdentifier","src":"4352:7:9"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"4295:32:9","nodeType":"YulIdentifier","src":"4295:32:9"},"nativeSrc":"4295:65:9","nodeType":"YulFunctionCall","src":"4295:65:9"},"variableNames":[{"name":"value2","nativeSrc":"4277:6:9","nodeType":"YulIdentifier","src":"4277:6:9"},{"name":"value3","nativeSrc":"4285:6:9","nodeType":"YulIdentifier","src":"4285:6:9"}]}]}]},"name":"abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptr","nativeSrc":"3503:874:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3572:9:9","nodeType":"YulTypedName","src":"3572:9:9","type":""},{"name":"dataEnd","nativeSrc":"3583:7:9","nodeType":"YulTypedName","src":"3583:7:9","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3595:6:9","nodeType":"YulTypedName","src":"3595:6:9","type":""},{"name":"value1","nativeSrc":"3603:6:9","nodeType":"YulTypedName","src":"3603:6:9","type":""},{"name":"value2","nativeSrc":"3611:6:9","nodeType":"YulTypedName","src":"3611:6:9","type":""},{"name":"value3","nativeSrc":"3619:6:9","nodeType":"YulTypedName","src":"3619:6:9","type":""}],"src":"3503:874:9"},{"body":{"nativeSrc":"4428:81:9","nodeType":"YulBlock","src":"4428:81:9","statements":[{"nativeSrc":"4438:65:9","nodeType":"YulAssignment","src":"4438:65:9","value":{"arguments":[{"name":"value","nativeSrc":"4453:5:9","nodeType":"YulIdentifier","src":"4453:5:9"},{"kind":"number","nativeSrc":"4460:42:9","nodeType":"YulLiteral","src":"4460:42:9","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4449:3:9","nodeType":"YulIdentifier","src":"4449:3:9"},"nativeSrc":"4449:54:9","nodeType":"YulFunctionCall","src":"4449:54:9"},"variableNames":[{"name":"cleaned","nativeSrc":"4438:7:9","nodeType":"YulIdentifier","src":"4438:7:9"}]}]},"name":"cleanup_t_uint160","nativeSrc":"4383:126:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4410:5:9","nodeType":"YulTypedName","src":"4410:5:9","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4420:7:9","nodeType":"YulTypedName","src":"4420:7:9","type":""}],"src":"4383:126:9"},{"body":{"nativeSrc":"4560:51:9","nodeType":"YulBlock","src":"4560:51:9","statements":[{"nativeSrc":"4570:35:9","nodeType":"YulAssignment","src":"4570:35:9","value":{"arguments":[{"name":"value","nativeSrc":"4599:5:9","nodeType":"YulIdentifier","src":"4599:5:9"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4581:17:9","nodeType":"YulIdentifier","src":"4581:17:9"},"nativeSrc":"4581:24:9","nodeType":"YulFunctionCall","src":"4581:24:9"},"variableNames":[{"name":"cleaned","nativeSrc":"4570:7:9","nodeType":"YulIdentifier","src":"4570:7:9"}]}]},"name":"cleanup_t_address","nativeSrc":"4515:96:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4542:5:9","nodeType":"YulTypedName","src":"4542:5:9","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4552:7:9","nodeType":"YulTypedName","src":"4552:7:9","type":""}],"src":"4515:96:9"},{"body":{"nativeSrc":"4660:79:9","nodeType":"YulBlock","src":"4660:79:9","statements":[{"body":{"nativeSrc":"4717:16:9","nodeType":"YulBlock","src":"4717:16:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4726:1:9","nodeType":"YulLiteral","src":"4726:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"4729:1:9","nodeType":"YulLiteral","src":"4729:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4719:6:9","nodeType":"YulIdentifier","src":"4719:6:9"},"nativeSrc":"4719:12:9","nodeType":"YulFunctionCall","src":"4719:12:9"},"nativeSrc":"4719:12:9","nodeType":"YulExpressionStatement","src":"4719:12:9"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4683:5:9","nodeType":"YulIdentifier","src":"4683:5:9"},{"arguments":[{"name":"value","nativeSrc":"4708:5:9","nodeType":"YulIdentifier","src":"4708:5:9"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4690:17:9","nodeType":"YulIdentifier","src":"4690:17:9"},"nativeSrc":"4690:24:9","nodeType":"YulFunctionCall","src":"4690:24:9"}],"functionName":{"name":"eq","nativeSrc":"4680:2:9","nodeType":"YulIdentifier","src":"4680:2:9"},"nativeSrc":"4680:35:9","nodeType":"YulFunctionCall","src":"4680:35:9"}],"functionName":{"name":"iszero","nativeSrc":"4673:6:9","nodeType":"YulIdentifier","src":"4673:6:9"},"nativeSrc":"4673:43:9","nodeType":"YulFunctionCall","src":"4673:43:9"},"nativeSrc":"4670:63:9","nodeType":"YulIf","src":"4670:63:9"}]},"name":"validator_revert_t_address","nativeSrc":"4617:122:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4653:5:9","nodeType":"YulTypedName","src":"4653:5:9","type":""}],"src":"4617:122:9"},{"body":{"nativeSrc":"4797:87:9","nodeType":"YulBlock","src":"4797:87:9","statements":[{"nativeSrc":"4807:29:9","nodeType":"YulAssignment","src":"4807:29:9","value":{"arguments":[{"name":"offset","nativeSrc":"4829:6:9","nodeType":"YulIdentifier","src":"4829:6:9"}],"functionName":{"name":"calldataload","nativeSrc":"4816:12:9","nodeType":"YulIdentifier","src":"4816:12:9"},"nativeSrc":"4816:20:9","nodeType":"YulFunctionCall","src":"4816:20:9"},"variableNames":[{"name":"value","nativeSrc":"4807:5:9","nodeType":"YulIdentifier","src":"4807:5:9"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4872:5:9","nodeType":"YulIdentifier","src":"4872:5:9"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"4845:26:9","nodeType":"YulIdentifier","src":"4845:26:9"},"nativeSrc":"4845:33:9","nodeType":"YulFunctionCall","src":"4845:33:9"},"nativeSrc":"4845:33:9","nodeType":"YulExpressionStatement","src":"4845:33:9"}]},"name":"abi_decode_t_address","nativeSrc":"4745:139:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4775:6:9","nodeType":"YulTypedName","src":"4775:6:9","type":""},{"name":"end","nativeSrc":"4783:3:9","nodeType":"YulTypedName","src":"4783:3:9","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4791:5:9","nodeType":"YulTypedName","src":"4791:5:9","type":""}],"src":"4745:139:9"},{"body":{"nativeSrc":"4973:391:9","nodeType":"YulBlock","src":"4973:391:9","statements":[{"body":{"nativeSrc":"5019:83:9","nodeType":"YulBlock","src":"5019:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5021:77:9","nodeType":"YulIdentifier","src":"5021:77:9"},"nativeSrc":"5021:79:9","nodeType":"YulFunctionCall","src":"5021:79:9"},"nativeSrc":"5021:79:9","nodeType":"YulExpressionStatement","src":"5021:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4994:7:9","nodeType":"YulIdentifier","src":"4994:7:9"},{"name":"headStart","nativeSrc":"5003:9:9","nodeType":"YulIdentifier","src":"5003:9:9"}],"functionName":{"name":"sub","nativeSrc":"4990:3:9","nodeType":"YulIdentifier","src":"4990:3:9"},"nativeSrc":"4990:23:9","nodeType":"YulFunctionCall","src":"4990:23:9"},{"kind":"number","nativeSrc":"5015:2:9","nodeType":"YulLiteral","src":"5015:2:9","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4986:3:9","nodeType":"YulIdentifier","src":"4986:3:9"},"nativeSrc":"4986:32:9","nodeType":"YulFunctionCall","src":"4986:32:9"},"nativeSrc":"4983:119:9","nodeType":"YulIf","src":"4983:119:9"},{"nativeSrc":"5112:117:9","nodeType":"YulBlock","src":"5112:117:9","statements":[{"nativeSrc":"5127:15:9","nodeType":"YulVariableDeclaration","src":"5127:15:9","value":{"kind":"number","nativeSrc":"5141:1:9","nodeType":"YulLiteral","src":"5141:1:9","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5131:6:9","nodeType":"YulTypedName","src":"5131:6:9","type":""}]},{"nativeSrc":"5156:63:9","nodeType":"YulAssignment","src":"5156:63:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5191:9:9","nodeType":"YulIdentifier","src":"5191:9:9"},{"name":"offset","nativeSrc":"5202:6:9","nodeType":"YulIdentifier","src":"5202:6:9"}],"functionName":{"name":"add","nativeSrc":"5187:3:9","nodeType":"YulIdentifier","src":"5187:3:9"},"nativeSrc":"5187:22:9","nodeType":"YulFunctionCall","src":"5187:22:9"},{"name":"dataEnd","nativeSrc":"5211:7:9","nodeType":"YulIdentifier","src":"5211:7:9"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"5166:20:9","nodeType":"YulIdentifier","src":"5166:20:9"},"nativeSrc":"5166:53:9","nodeType":"YulFunctionCall","src":"5166:53:9"},"variableNames":[{"name":"value0","nativeSrc":"5156:6:9","nodeType":"YulIdentifier","src":"5156:6:9"}]}]},{"nativeSrc":"5239:118:9","nodeType":"YulBlock","src":"5239:118:9","statements":[{"nativeSrc":"5254:16:9","nodeType":"YulVariableDeclaration","src":"5254:16:9","value":{"kind":"number","nativeSrc":"5268:2:9","nodeType":"YulLiteral","src":"5268:2:9","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5258:6:9","nodeType":"YulTypedName","src":"5258:6:9","type":""}]},{"nativeSrc":"5284:63:9","nodeType":"YulAssignment","src":"5284:63:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5319:9:9","nodeType":"YulIdentifier","src":"5319:9:9"},{"name":"offset","nativeSrc":"5330:6:9","nodeType":"YulIdentifier","src":"5330:6:9"}],"functionName":{"name":"add","nativeSrc":"5315:3:9","nodeType":"YulIdentifier","src":"5315:3:9"},"nativeSrc":"5315:22:9","nodeType":"YulFunctionCall","src":"5315:22:9"},{"name":"dataEnd","nativeSrc":"5339:7:9","nodeType":"YulIdentifier","src":"5339:7:9"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5294:20:9","nodeType":"YulIdentifier","src":"5294:20:9"},"nativeSrc":"5294:53:9","nodeType":"YulFunctionCall","src":"5294:53:9"},"variableNames":[{"name":"value1","nativeSrc":"5284:6:9","nodeType":"YulIdentifier","src":"5284:6:9"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"4890:474:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4935:9:9","nodeType":"YulTypedName","src":"4935:9:9","type":""},{"name":"dataEnd","nativeSrc":"4946:7:9","nodeType":"YulTypedName","src":"4946:7:9","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4958:6:9","nodeType":"YulTypedName","src":"4958:6:9","type":""},{"name":"value1","nativeSrc":"4966:6:9","nodeType":"YulTypedName","src":"4966:6:9","type":""}],"src":"4890:474:9"},{"body":{"nativeSrc":"5459:28:9","nodeType":"YulBlock","src":"5459:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5476:1:9","nodeType":"YulLiteral","src":"5476:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"5479:1:9","nodeType":"YulLiteral","src":"5479:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5469:6:9","nodeType":"YulIdentifier","src":"5469:6:9"},"nativeSrc":"5469:12:9","nodeType":"YulFunctionCall","src":"5469:12:9"},"nativeSrc":"5469:12:9","nodeType":"YulExpressionStatement","src":"5469:12:9"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"5370:117:9","nodeType":"YulFunctionDefinition","src":"5370:117:9"},{"body":{"nativeSrc":"5541:54:9","nodeType":"YulBlock","src":"5541:54:9","statements":[{"nativeSrc":"5551:38:9","nodeType":"YulAssignment","src":"5551:38:9","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5569:5:9","nodeType":"YulIdentifier","src":"5569:5:9"},{"kind":"number","nativeSrc":"5576:2:9","nodeType":"YulLiteral","src":"5576:2:9","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5565:3:9","nodeType":"YulIdentifier","src":"5565:3:9"},"nativeSrc":"5565:14:9","nodeType":"YulFunctionCall","src":"5565:14:9"},{"arguments":[{"kind":"number","nativeSrc":"5585:2:9","nodeType":"YulLiteral","src":"5585:2:9","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5581:3:9","nodeType":"YulIdentifier","src":"5581:3:9"},"nativeSrc":"5581:7:9","nodeType":"YulFunctionCall","src":"5581:7:9"}],"functionName":{"name":"and","nativeSrc":"5561:3:9","nodeType":"YulIdentifier","src":"5561:3:9"},"nativeSrc":"5561:28:9","nodeType":"YulFunctionCall","src":"5561:28:9"},"variableNames":[{"name":"result","nativeSrc":"5551:6:9","nodeType":"YulIdentifier","src":"5551:6:9"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"5493:102:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5524:5:9","nodeType":"YulTypedName","src":"5524:5:9","type":""}],"returnVariables":[{"name":"result","nativeSrc":"5534:6:9","nodeType":"YulTypedName","src":"5534:6:9","type":""}],"src":"5493:102:9"},{"body":{"nativeSrc":"5629:152:9","nodeType":"YulBlock","src":"5629:152:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5646:1:9","nodeType":"YulLiteral","src":"5646:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"5649:77:9","nodeType":"YulLiteral","src":"5649:77:9","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5639:6:9","nodeType":"YulIdentifier","src":"5639:6:9"},"nativeSrc":"5639:88:9","nodeType":"YulFunctionCall","src":"5639:88:9"},"nativeSrc":"5639:88:9","nodeType":"YulExpressionStatement","src":"5639:88:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5743:1:9","nodeType":"YulLiteral","src":"5743:1:9","type":"","value":"4"},{"kind":"number","nativeSrc":"5746:4:9","nodeType":"YulLiteral","src":"5746:4:9","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"5736:6:9","nodeType":"YulIdentifier","src":"5736:6:9"},"nativeSrc":"5736:15:9","nodeType":"YulFunctionCall","src":"5736:15:9"},"nativeSrc":"5736:15:9","nodeType":"YulExpressionStatement","src":"5736:15:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5767:1:9","nodeType":"YulLiteral","src":"5767:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"5770:4:9","nodeType":"YulLiteral","src":"5770:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5760:6:9","nodeType":"YulIdentifier","src":"5760:6:9"},"nativeSrc":"5760:15:9","nodeType":"YulFunctionCall","src":"5760:15:9"},"nativeSrc":"5760:15:9","nodeType":"YulExpressionStatement","src":"5760:15:9"}]},"name":"panic_error_0x41","nativeSrc":"5601:180:9","nodeType":"YulFunctionDefinition","src":"5601:180:9"},{"body":{"nativeSrc":"5830:238:9","nodeType":"YulBlock","src":"5830:238:9","statements":[{"nativeSrc":"5840:58:9","nodeType":"YulVariableDeclaration","src":"5840:58:9","value":{"arguments":[{"name":"memPtr","nativeSrc":"5862:6:9","nodeType":"YulIdentifier","src":"5862:6:9"},{"arguments":[{"name":"size","nativeSrc":"5892:4:9","nodeType":"YulIdentifier","src":"5892:4:9"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5870:21:9","nodeType":"YulIdentifier","src":"5870:21:9"},"nativeSrc":"5870:27:9","nodeType":"YulFunctionCall","src":"5870:27:9"}],"functionName":{"name":"add","nativeSrc":"5858:3:9","nodeType":"YulIdentifier","src":"5858:3:9"},"nativeSrc":"5858:40:9","nodeType":"YulFunctionCall","src":"5858:40:9"},"variables":[{"name":"newFreePtr","nativeSrc":"5844:10:9","nodeType":"YulTypedName","src":"5844:10:9","type":""}]},{"body":{"nativeSrc":"6009:22:9","nodeType":"YulBlock","src":"6009:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6011:16:9","nodeType":"YulIdentifier","src":"6011:16:9"},"nativeSrc":"6011:18:9","nodeType":"YulFunctionCall","src":"6011:18:9"},"nativeSrc":"6011:18:9","nodeType":"YulExpressionStatement","src":"6011:18:9"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5952:10:9","nodeType":"YulIdentifier","src":"5952:10:9"},{"kind":"number","nativeSrc":"5964:18:9","nodeType":"YulLiteral","src":"5964:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5949:2:9","nodeType":"YulIdentifier","src":"5949:2:9"},"nativeSrc":"5949:34:9","nodeType":"YulFunctionCall","src":"5949:34:9"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5988:10:9","nodeType":"YulIdentifier","src":"5988:10:9"},{"name":"memPtr","nativeSrc":"6000:6:9","nodeType":"YulIdentifier","src":"6000:6:9"}],"functionName":{"name":"lt","nativeSrc":"5985:2:9","nodeType":"YulIdentifier","src":"5985:2:9"},"nativeSrc":"5985:22:9","nodeType":"YulFunctionCall","src":"5985:22:9"}],"functionName":{"name":"or","nativeSrc":"5946:2:9","nodeType":"YulIdentifier","src":"5946:2:9"},"nativeSrc":"5946:62:9","nodeType":"YulFunctionCall","src":"5946:62:9"},"nativeSrc":"5943:88:9","nodeType":"YulIf","src":"5943:88:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6047:2:9","nodeType":"YulLiteral","src":"6047:2:9","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"6051:10:9","nodeType":"YulIdentifier","src":"6051:10:9"}],"functionName":{"name":"mstore","nativeSrc":"6040:6:9","nodeType":"YulIdentifier","src":"6040:6:9"},"nativeSrc":"6040:22:9","nodeType":"YulFunctionCall","src":"6040:22:9"},"nativeSrc":"6040:22:9","nodeType":"YulExpressionStatement","src":"6040:22:9"}]},"name":"finalize_allocation","nativeSrc":"5787:281:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5816:6:9","nodeType":"YulTypedName","src":"5816:6:9","type":""},{"name":"size","nativeSrc":"5824:4:9","nodeType":"YulTypedName","src":"5824:4:9","type":""}],"src":"5787:281:9"},{"body":{"nativeSrc":"6115:88:9","nodeType":"YulBlock","src":"6115:88:9","statements":[{"nativeSrc":"6125:30:9","nodeType":"YulAssignment","src":"6125:30:9","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"6135:18:9","nodeType":"YulIdentifier","src":"6135:18:9"},"nativeSrc":"6135:20:9","nodeType":"YulFunctionCall","src":"6135:20:9"},"variableNames":[{"name":"memPtr","nativeSrc":"6125:6:9","nodeType":"YulIdentifier","src":"6125:6:9"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"6184:6:9","nodeType":"YulIdentifier","src":"6184:6:9"},{"name":"size","nativeSrc":"6192:4:9","nodeType":"YulIdentifier","src":"6192:4:9"}],"functionName":{"name":"finalize_allocation","nativeSrc":"6164:19:9","nodeType":"YulIdentifier","src":"6164:19:9"},"nativeSrc":"6164:33:9","nodeType":"YulFunctionCall","src":"6164:33:9"},"nativeSrc":"6164:33:9","nodeType":"YulExpressionStatement","src":"6164:33:9"}]},"name":"allocate_memory","nativeSrc":"6074:129:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"6099:4:9","nodeType":"YulTypedName","src":"6099:4:9","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"6108:6:9","nodeType":"YulTypedName","src":"6108:6:9","type":""}],"src":"6074:129:9"},{"body":{"nativeSrc":"6276:241:9","nodeType":"YulBlock","src":"6276:241:9","statements":[{"body":{"nativeSrc":"6381:22:9","nodeType":"YulBlock","src":"6381:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6383:16:9","nodeType":"YulIdentifier","src":"6383:16:9"},"nativeSrc":"6383:18:9","nodeType":"YulFunctionCall","src":"6383:18:9"},"nativeSrc":"6383:18:9","nodeType":"YulExpressionStatement","src":"6383:18:9"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"6353:6:9","nodeType":"YulIdentifier","src":"6353:6:9"},{"kind":"number","nativeSrc":"6361:18:9","nodeType":"YulLiteral","src":"6361:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6350:2:9","nodeType":"YulIdentifier","src":"6350:2:9"},"nativeSrc":"6350:30:9","nodeType":"YulFunctionCall","src":"6350:30:9"},"nativeSrc":"6347:56:9","nodeType":"YulIf","src":"6347:56:9"},{"nativeSrc":"6413:37:9","nodeType":"YulAssignment","src":"6413:37:9","value":{"arguments":[{"name":"length","nativeSrc":"6443:6:9","nodeType":"YulIdentifier","src":"6443:6:9"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"6421:21:9","nodeType":"YulIdentifier","src":"6421:21:9"},"nativeSrc":"6421:29:9","nodeType":"YulFunctionCall","src":"6421:29:9"},"variableNames":[{"name":"size","nativeSrc":"6413:4:9","nodeType":"YulIdentifier","src":"6413:4:9"}]},{"nativeSrc":"6487:23:9","nodeType":"YulAssignment","src":"6487:23:9","value":{"arguments":[{"name":"size","nativeSrc":"6499:4:9","nodeType":"YulIdentifier","src":"6499:4:9"},{"kind":"number","nativeSrc":"6505:4:9","nodeType":"YulLiteral","src":"6505:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6495:3:9","nodeType":"YulIdentifier","src":"6495:3:9"},"nativeSrc":"6495:15:9","nodeType":"YulFunctionCall","src":"6495:15:9"},"variableNames":[{"name":"size","nativeSrc":"6487:4:9","nodeType":"YulIdentifier","src":"6487:4:9"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"6209:308:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"6260:6:9","nodeType":"YulTypedName","src":"6260:6:9","type":""}],"returnVariables":[{"name":"size","nativeSrc":"6271:4:9","nodeType":"YulTypedName","src":"6271:4:9","type":""}],"src":"6209:308:9"},{"body":{"nativeSrc":"6587:82:9","nodeType":"YulBlock","src":"6587:82:9","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"6610:3:9","nodeType":"YulIdentifier","src":"6610:3:9"},{"name":"src","nativeSrc":"6615:3:9","nodeType":"YulIdentifier","src":"6615:3:9"},{"name":"length","nativeSrc":"6620:6:9","nodeType":"YulIdentifier","src":"6620:6:9"}],"functionName":{"name":"calldatacopy","nativeSrc":"6597:12:9","nodeType":"YulIdentifier","src":"6597:12:9"},"nativeSrc":"6597:30:9","nodeType":"YulFunctionCall","src":"6597:30:9"},"nativeSrc":"6597:30:9","nodeType":"YulExpressionStatement","src":"6597:30:9"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"6647:3:9","nodeType":"YulIdentifier","src":"6647:3:9"},{"name":"length","nativeSrc":"6652:6:9","nodeType":"YulIdentifier","src":"6652:6:9"}],"functionName":{"name":"add","nativeSrc":"6643:3:9","nodeType":"YulIdentifier","src":"6643:3:9"},"nativeSrc":"6643:16:9","nodeType":"YulFunctionCall","src":"6643:16:9"},{"kind":"number","nativeSrc":"6661:1:9","nodeType":"YulLiteral","src":"6661:1:9","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6636:6:9","nodeType":"YulIdentifier","src":"6636:6:9"},"nativeSrc":"6636:27:9","nodeType":"YulFunctionCall","src":"6636:27:9"},"nativeSrc":"6636:27:9","nodeType":"YulExpressionStatement","src":"6636:27:9"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"6523:146:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"6569:3:9","nodeType":"YulTypedName","src":"6569:3:9","type":""},{"name":"dst","nativeSrc":"6574:3:9","nodeType":"YulTypedName","src":"6574:3:9","type":""},{"name":"length","nativeSrc":"6579:6:9","nodeType":"YulTypedName","src":"6579:6:9","type":""}],"src":"6523:146:9"},{"body":{"nativeSrc":"6759:341:9","nodeType":"YulBlock","src":"6759:341:9","statements":[{"nativeSrc":"6769:75:9","nodeType":"YulAssignment","src":"6769:75:9","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6836:6:9","nodeType":"YulIdentifier","src":"6836:6:9"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"6794:41:9","nodeType":"YulIdentifier","src":"6794:41:9"},"nativeSrc":"6794:49:9","nodeType":"YulFunctionCall","src":"6794:49:9"}],"functionName":{"name":"allocate_memory","nativeSrc":"6778:15:9","nodeType":"YulIdentifier","src":"6778:15:9"},"nativeSrc":"6778:66:9","nodeType":"YulFunctionCall","src":"6778:66:9"},"variableNames":[{"name":"array","nativeSrc":"6769:5:9","nodeType":"YulIdentifier","src":"6769:5:9"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"6860:5:9","nodeType":"YulIdentifier","src":"6860:5:9"},{"name":"length","nativeSrc":"6867:6:9","nodeType":"YulIdentifier","src":"6867:6:9"}],"functionName":{"name":"mstore","nativeSrc":"6853:6:9","nodeType":"YulIdentifier","src":"6853:6:9"},"nativeSrc":"6853:21:9","nodeType":"YulFunctionCall","src":"6853:21:9"},"nativeSrc":"6853:21:9","nodeType":"YulExpressionStatement","src":"6853:21:9"},{"nativeSrc":"6883:27:9","nodeType":"YulVariableDeclaration","src":"6883:27:9","value":{"arguments":[{"name":"array","nativeSrc":"6898:5:9","nodeType":"YulIdentifier","src":"6898:5:9"},{"kind":"number","nativeSrc":"6905:4:9","nodeType":"YulLiteral","src":"6905:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6894:3:9","nodeType":"YulIdentifier","src":"6894:3:9"},"nativeSrc":"6894:16:9","nodeType":"YulFunctionCall","src":"6894:16:9"},"variables":[{"name":"dst","nativeSrc":"6887:3:9","nodeType":"YulTypedName","src":"6887:3:9","type":""}]},{"body":{"nativeSrc":"6948:83:9","nodeType":"YulBlock","src":"6948:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"6950:77:9","nodeType":"YulIdentifier","src":"6950:77:9"},"nativeSrc":"6950:79:9","nodeType":"YulFunctionCall","src":"6950:79:9"},"nativeSrc":"6950:79:9","nodeType":"YulExpressionStatement","src":"6950:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"6929:3:9","nodeType":"YulIdentifier","src":"6929:3:9"},{"name":"length","nativeSrc":"6934:6:9","nodeType":"YulIdentifier","src":"6934:6:9"}],"functionName":{"name":"add","nativeSrc":"6925:3:9","nodeType":"YulIdentifier","src":"6925:3:9"},"nativeSrc":"6925:16:9","nodeType":"YulFunctionCall","src":"6925:16:9"},{"name":"end","nativeSrc":"6943:3:9","nodeType":"YulIdentifier","src":"6943:3:9"}],"functionName":{"name":"gt","nativeSrc":"6922:2:9","nodeType":"YulIdentifier","src":"6922:2:9"},"nativeSrc":"6922:25:9","nodeType":"YulFunctionCall","src":"6922:25:9"},"nativeSrc":"6919:112:9","nodeType":"YulIf","src":"6919:112:9"},{"expression":{"arguments":[{"name":"src","nativeSrc":"7077:3:9","nodeType":"YulIdentifier","src":"7077:3:9"},{"name":"dst","nativeSrc":"7082:3:9","nodeType":"YulIdentifier","src":"7082:3:9"},{"name":"length","nativeSrc":"7087:6:9","nodeType":"YulIdentifier","src":"7087:6:9"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"7040:36:9","nodeType":"YulIdentifier","src":"7040:36:9"},"nativeSrc":"7040:54:9","nodeType":"YulFunctionCall","src":"7040:54:9"},"nativeSrc":"7040:54:9","nodeType":"YulExpressionStatement","src":"7040:54:9"}]},"name":"abi_decode_available_length_t_string_memory_ptr","nativeSrc":"6675:425:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"6732:3:9","nodeType":"YulTypedName","src":"6732:3:9","type":""},{"name":"length","nativeSrc":"6737:6:9","nodeType":"YulTypedName","src":"6737:6:9","type":""},{"name":"end","nativeSrc":"6745:3:9","nodeType":"YulTypedName","src":"6745:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"6753:5:9","nodeType":"YulTypedName","src":"6753:5:9","type":""}],"src":"6675:425:9"},{"body":{"nativeSrc":"7182:278:9","nodeType":"YulBlock","src":"7182:278:9","statements":[{"body":{"nativeSrc":"7231:83:9","nodeType":"YulBlock","src":"7231:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7233:77:9","nodeType":"YulIdentifier","src":"7233:77:9"},"nativeSrc":"7233:79:9","nodeType":"YulFunctionCall","src":"7233:79:9"},"nativeSrc":"7233:79:9","nodeType":"YulExpressionStatement","src":"7233:79:9"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7210:6:9","nodeType":"YulIdentifier","src":"7210:6:9"},{"kind":"number","nativeSrc":"7218:4:9","nodeType":"YulLiteral","src":"7218:4:9","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7206:3:9","nodeType":"YulIdentifier","src":"7206:3:9"},"nativeSrc":"7206:17:9","nodeType":"YulFunctionCall","src":"7206:17:9"},{"name":"end","nativeSrc":"7225:3:9","nodeType":"YulIdentifier","src":"7225:3:9"}],"functionName":{"name":"slt","nativeSrc":"7202:3:9","nodeType":"YulIdentifier","src":"7202:3:9"},"nativeSrc":"7202:27:9","nodeType":"YulFunctionCall","src":"7202:27:9"}],"functionName":{"name":"iszero","nativeSrc":"7195:6:9","nodeType":"YulIdentifier","src":"7195:6:9"},"nativeSrc":"7195:35:9","nodeType":"YulFunctionCall","src":"7195:35:9"},"nativeSrc":"7192:122:9","nodeType":"YulIf","src":"7192:122:9"},{"nativeSrc":"7323:34:9","nodeType":"YulVariableDeclaration","src":"7323:34:9","value":{"arguments":[{"name":"offset","nativeSrc":"7350:6:9","nodeType":"YulIdentifier","src":"7350:6:9"}],"functionName":{"name":"calldataload","nativeSrc":"7337:12:9","nodeType":"YulIdentifier","src":"7337:12:9"},"nativeSrc":"7337:20:9","nodeType":"YulFunctionCall","src":"7337:20:9"},"variables":[{"name":"length","nativeSrc":"7327:6:9","nodeType":"YulTypedName","src":"7327:6:9","type":""}]},{"nativeSrc":"7366:88:9","nodeType":"YulAssignment","src":"7366:88:9","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7427:6:9","nodeType":"YulIdentifier","src":"7427:6:9"},{"kind":"number","nativeSrc":"7435:4:9","nodeType":"YulLiteral","src":"7435:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7423:3:9","nodeType":"YulIdentifier","src":"7423:3:9"},"nativeSrc":"7423:17:9","nodeType":"YulFunctionCall","src":"7423:17:9"},{"name":"length","nativeSrc":"7442:6:9","nodeType":"YulIdentifier","src":"7442:6:9"},{"name":"end","nativeSrc":"7450:3:9","nodeType":"YulIdentifier","src":"7450:3:9"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr","nativeSrc":"7375:47:9","nodeType":"YulIdentifier","src":"7375:47:9"},"nativeSrc":"7375:79:9","nodeType":"YulFunctionCall","src":"7375:79:9"},"variableNames":[{"name":"array","nativeSrc":"7366:5:9","nodeType":"YulIdentifier","src":"7366:5:9"}]}]},"name":"abi_decode_t_string_memory_ptr","nativeSrc":"7120:340:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7160:6:9","nodeType":"YulTypedName","src":"7160:6:9","type":""},{"name":"end","nativeSrc":"7168:3:9","nodeType":"YulTypedName","src":"7168:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"7176:5:9","nodeType":"YulTypedName","src":"7176:5:9","type":""}],"src":"7120:340:9"},{"body":{"nativeSrc":"7542:433:9","nodeType":"YulBlock","src":"7542:433:9","statements":[{"body":{"nativeSrc":"7588:83:9","nodeType":"YulBlock","src":"7588:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7590:77:9","nodeType":"YulIdentifier","src":"7590:77:9"},"nativeSrc":"7590:79:9","nodeType":"YulFunctionCall","src":"7590:79:9"},"nativeSrc":"7590:79:9","nodeType":"YulExpressionStatement","src":"7590:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7563:7:9","nodeType":"YulIdentifier","src":"7563:7:9"},{"name":"headStart","nativeSrc":"7572:9:9","nodeType":"YulIdentifier","src":"7572:9:9"}],"functionName":{"name":"sub","nativeSrc":"7559:3:9","nodeType":"YulIdentifier","src":"7559:3:9"},"nativeSrc":"7559:23:9","nodeType":"YulFunctionCall","src":"7559:23:9"},{"kind":"number","nativeSrc":"7584:2:9","nodeType":"YulLiteral","src":"7584:2:9","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7555:3:9","nodeType":"YulIdentifier","src":"7555:3:9"},"nativeSrc":"7555:32:9","nodeType":"YulFunctionCall","src":"7555:32:9"},"nativeSrc":"7552:119:9","nodeType":"YulIf","src":"7552:119:9"},{"nativeSrc":"7681:287:9","nodeType":"YulBlock","src":"7681:287:9","statements":[{"nativeSrc":"7696:45:9","nodeType":"YulVariableDeclaration","src":"7696:45:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7727:9:9","nodeType":"YulIdentifier","src":"7727:9:9"},{"kind":"number","nativeSrc":"7738:1:9","nodeType":"YulLiteral","src":"7738:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7723:3:9","nodeType":"YulIdentifier","src":"7723:3:9"},"nativeSrc":"7723:17:9","nodeType":"YulFunctionCall","src":"7723:17:9"}],"functionName":{"name":"calldataload","nativeSrc":"7710:12:9","nodeType":"YulIdentifier","src":"7710:12:9"},"nativeSrc":"7710:31:9","nodeType":"YulFunctionCall","src":"7710:31:9"},"variables":[{"name":"offset","nativeSrc":"7700:6:9","nodeType":"YulTypedName","src":"7700:6:9","type":""}]},{"body":{"nativeSrc":"7788:83:9","nodeType":"YulBlock","src":"7788:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"7790:77:9","nodeType":"YulIdentifier","src":"7790:77:9"},"nativeSrc":"7790:79:9","nodeType":"YulFunctionCall","src":"7790:79:9"},"nativeSrc":"7790:79:9","nodeType":"YulExpressionStatement","src":"7790:79:9"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7760:6:9","nodeType":"YulIdentifier","src":"7760:6:9"},{"kind":"number","nativeSrc":"7768:18:9","nodeType":"YulLiteral","src":"7768:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7757:2:9","nodeType":"YulIdentifier","src":"7757:2:9"},"nativeSrc":"7757:30:9","nodeType":"YulFunctionCall","src":"7757:30:9"},"nativeSrc":"7754:117:9","nodeType":"YulIf","src":"7754:117:9"},{"nativeSrc":"7885:73:9","nodeType":"YulAssignment","src":"7885:73:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7930:9:9","nodeType":"YulIdentifier","src":"7930:9:9"},{"name":"offset","nativeSrc":"7941:6:9","nodeType":"YulIdentifier","src":"7941:6:9"}],"functionName":{"name":"add","nativeSrc":"7926:3:9","nodeType":"YulIdentifier","src":"7926:3:9"},"nativeSrc":"7926:22:9","nodeType":"YulFunctionCall","src":"7926:22:9"},{"name":"dataEnd","nativeSrc":"7950:7:9","nodeType":"YulIdentifier","src":"7950:7:9"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"7895:30:9","nodeType":"YulIdentifier","src":"7895:30:9"},"nativeSrc":"7895:63:9","nodeType":"YulFunctionCall","src":"7895:63:9"},"variableNames":[{"name":"value0","nativeSrc":"7885:6:9","nodeType":"YulIdentifier","src":"7885:6:9"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nativeSrc":"7466:509:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7512:9:9","nodeType":"YulTypedName","src":"7512:9:9","type":""},{"name":"dataEnd","nativeSrc":"7523:7:9","nodeType":"YulTypedName","src":"7523:7:9","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7535:6:9","nodeType":"YulTypedName","src":"7535:6:9","type":""}],"src":"7466:509:9"},{"body":{"nativeSrc":"8040:40:9","nodeType":"YulBlock","src":"8040:40:9","statements":[{"nativeSrc":"8051:22:9","nodeType":"YulAssignment","src":"8051:22:9","value":{"arguments":[{"name":"value","nativeSrc":"8067:5:9","nodeType":"YulIdentifier","src":"8067:5:9"}],"functionName":{"name":"mload","nativeSrc":"8061:5:9","nodeType":"YulIdentifier","src":"8061:5:9"},"nativeSrc":"8061:12:9","nodeType":"YulFunctionCall","src":"8061:12:9"},"variableNames":[{"name":"length","nativeSrc":"8051:6:9","nodeType":"YulIdentifier","src":"8051:6:9"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7981:99:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8023:5:9","nodeType":"YulTypedName","src":"8023:5:9","type":""}],"returnVariables":[{"name":"length","nativeSrc":"8033:6:9","nodeType":"YulTypedName","src":"8033:6:9","type":""}],"src":"7981:99:9"},{"body":{"nativeSrc":"8182:73:9","nodeType":"YulBlock","src":"8182:73:9","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8199:3:9","nodeType":"YulIdentifier","src":"8199:3:9"},{"name":"length","nativeSrc":"8204:6:9","nodeType":"YulIdentifier","src":"8204:6:9"}],"functionName":{"name":"mstore","nativeSrc":"8192:6:9","nodeType":"YulIdentifier","src":"8192:6:9"},"nativeSrc":"8192:19:9","nodeType":"YulFunctionCall","src":"8192:19:9"},"nativeSrc":"8192:19:9","nodeType":"YulExpressionStatement","src":"8192:19:9"},{"nativeSrc":"8220:29:9","nodeType":"YulAssignment","src":"8220:29:9","value":{"arguments":[{"name":"pos","nativeSrc":"8239:3:9","nodeType":"YulIdentifier","src":"8239:3:9"},{"kind":"number","nativeSrc":"8244:4:9","nodeType":"YulLiteral","src":"8244:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8235:3:9","nodeType":"YulIdentifier","src":"8235:3:9"},"nativeSrc":"8235:14:9","nodeType":"YulFunctionCall","src":"8235:14:9"},"variableNames":[{"name":"updated_pos","nativeSrc":"8220:11:9","nodeType":"YulIdentifier","src":"8220:11:9"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8086:169:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8154:3:9","nodeType":"YulTypedName","src":"8154:3:9","type":""},{"name":"length","nativeSrc":"8159:6:9","nodeType":"YulTypedName","src":"8159:6:9","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"8170:11:9","nodeType":"YulTypedName","src":"8170:11:9","type":""}],"src":"8086:169:9"},{"body":{"nativeSrc":"8323:184:9","nodeType":"YulBlock","src":"8323:184:9","statements":[{"nativeSrc":"8333:10:9","nodeType":"YulVariableDeclaration","src":"8333:10:9","value":{"kind":"number","nativeSrc":"8342:1:9","nodeType":"YulLiteral","src":"8342:1:9","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8337:1:9","nodeType":"YulTypedName","src":"8337:1:9","type":""}]},{"body":{"nativeSrc":"8402:63:9","nodeType":"YulBlock","src":"8402:63:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"8427:3:9","nodeType":"YulIdentifier","src":"8427:3:9"},{"name":"i","nativeSrc":"8432:1:9","nodeType":"YulIdentifier","src":"8432:1:9"}],"functionName":{"name":"add","nativeSrc":"8423:3:9","nodeType":"YulIdentifier","src":"8423:3:9"},"nativeSrc":"8423:11:9","nodeType":"YulFunctionCall","src":"8423:11:9"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8446:3:9","nodeType":"YulIdentifier","src":"8446:3:9"},{"name":"i","nativeSrc":"8451:1:9","nodeType":"YulIdentifier","src":"8451:1:9"}],"functionName":{"name":"add","nativeSrc":"8442:3:9","nodeType":"YulIdentifier","src":"8442:3:9"},"nativeSrc":"8442:11:9","nodeType":"YulFunctionCall","src":"8442:11:9"}],"functionName":{"name":"mload","nativeSrc":"8436:5:9","nodeType":"YulIdentifier","src":"8436:5:9"},"nativeSrc":"8436:18:9","nodeType":"YulFunctionCall","src":"8436:18:9"}],"functionName":{"name":"mstore","nativeSrc":"8416:6:9","nodeType":"YulIdentifier","src":"8416:6:9"},"nativeSrc":"8416:39:9","nodeType":"YulFunctionCall","src":"8416:39:9"},"nativeSrc":"8416:39:9","nodeType":"YulExpressionStatement","src":"8416:39:9"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8363:1:9","nodeType":"YulIdentifier","src":"8363:1:9"},{"name":"length","nativeSrc":"8366:6:9","nodeType":"YulIdentifier","src":"8366:6:9"}],"functionName":{"name":"lt","nativeSrc":"8360:2:9","nodeType":"YulIdentifier","src":"8360:2:9"},"nativeSrc":"8360:13:9","nodeType":"YulFunctionCall","src":"8360:13:9"},"nativeSrc":"8352:113:9","nodeType":"YulForLoop","post":{"nativeSrc":"8374:19:9","nodeType":"YulBlock","src":"8374:19:9","statements":[{"nativeSrc":"8376:15:9","nodeType":"YulAssignment","src":"8376:15:9","value":{"arguments":[{"name":"i","nativeSrc":"8385:1:9","nodeType":"YulIdentifier","src":"8385:1:9"},{"kind":"number","nativeSrc":"8388:2:9","nodeType":"YulLiteral","src":"8388:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8381:3:9","nodeType":"YulIdentifier","src":"8381:3:9"},"nativeSrc":"8381:10:9","nodeType":"YulFunctionCall","src":"8381:10:9"},"variableNames":[{"name":"i","nativeSrc":"8376:1:9","nodeType":"YulIdentifier","src":"8376:1:9"}]}]},"pre":{"nativeSrc":"8356:3:9","nodeType":"YulBlock","src":"8356:3:9","statements":[]},"src":"8352:113:9"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"8485:3:9","nodeType":"YulIdentifier","src":"8485:3:9"},{"name":"length","nativeSrc":"8490:6:9","nodeType":"YulIdentifier","src":"8490:6:9"}],"functionName":{"name":"add","nativeSrc":"8481:3:9","nodeType":"YulIdentifier","src":"8481:3:9"},"nativeSrc":"8481:16:9","nodeType":"YulFunctionCall","src":"8481:16:9"},{"kind":"number","nativeSrc":"8499:1:9","nodeType":"YulLiteral","src":"8499:1:9","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8474:6:9","nodeType":"YulIdentifier","src":"8474:6:9"},"nativeSrc":"8474:27:9","nodeType":"YulFunctionCall","src":"8474:27:9"},"nativeSrc":"8474:27:9","nodeType":"YulExpressionStatement","src":"8474:27:9"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8261:246:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"8305:3:9","nodeType":"YulTypedName","src":"8305:3:9","type":""},{"name":"dst","nativeSrc":"8310:3:9","nodeType":"YulTypedName","src":"8310:3:9","type":""},{"name":"length","nativeSrc":"8315:6:9","nodeType":"YulTypedName","src":"8315:6:9","type":""}],"src":"8261:246:9"},{"body":{"nativeSrc":"8605:285:9","nodeType":"YulBlock","src":"8605:285:9","statements":[{"nativeSrc":"8615:53:9","nodeType":"YulVariableDeclaration","src":"8615:53:9","value":{"arguments":[{"name":"value","nativeSrc":"8662:5:9","nodeType":"YulIdentifier","src":"8662:5:9"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"8629:32:9","nodeType":"YulIdentifier","src":"8629:32:9"},"nativeSrc":"8629:39:9","nodeType":"YulFunctionCall","src":"8629:39:9"},"variables":[{"name":"length","nativeSrc":"8619:6:9","nodeType":"YulTypedName","src":"8619:6:9","type":""}]},{"nativeSrc":"8677:78:9","nodeType":"YulAssignment","src":"8677:78:9","value":{"arguments":[{"name":"pos","nativeSrc":"8743:3:9","nodeType":"YulIdentifier","src":"8743:3:9"},{"name":"length","nativeSrc":"8748:6:9","nodeType":"YulIdentifier","src":"8748:6:9"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8684:58:9","nodeType":"YulIdentifier","src":"8684:58:9"},"nativeSrc":"8684:71:9","nodeType":"YulFunctionCall","src":"8684:71:9"},"variableNames":[{"name":"pos","nativeSrc":"8677:3:9","nodeType":"YulIdentifier","src":"8677:3:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8803:5:9","nodeType":"YulIdentifier","src":"8803:5:9"},{"kind":"number","nativeSrc":"8810:4:9","nodeType":"YulLiteral","src":"8810:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8799:3:9","nodeType":"YulIdentifier","src":"8799:3:9"},"nativeSrc":"8799:16:9","nodeType":"YulFunctionCall","src":"8799:16:9"},{"name":"pos","nativeSrc":"8817:3:9","nodeType":"YulIdentifier","src":"8817:3:9"},{"name":"length","nativeSrc":"8822:6:9","nodeType":"YulIdentifier","src":"8822:6:9"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8764:34:9","nodeType":"YulIdentifier","src":"8764:34:9"},"nativeSrc":"8764:65:9","nodeType":"YulFunctionCall","src":"8764:65:9"},"nativeSrc":"8764:65:9","nodeType":"YulExpressionStatement","src":"8764:65:9"},{"nativeSrc":"8838:46:9","nodeType":"YulAssignment","src":"8838:46:9","value":{"arguments":[{"name":"pos","nativeSrc":"8849:3:9","nodeType":"YulIdentifier","src":"8849:3:9"},{"arguments":[{"name":"length","nativeSrc":"8876:6:9","nodeType":"YulIdentifier","src":"8876:6:9"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8854:21:9","nodeType":"YulIdentifier","src":"8854:21:9"},"nativeSrc":"8854:29:9","nodeType":"YulFunctionCall","src":"8854:29:9"}],"functionName":{"name":"add","nativeSrc":"8845:3:9","nodeType":"YulIdentifier","src":"8845:3:9"},"nativeSrc":"8845:39:9","nodeType":"YulFunctionCall","src":"8845:39:9"},"variableNames":[{"name":"end","nativeSrc":"8838:3:9","nodeType":"YulIdentifier","src":"8838:3:9"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"8513:377:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8586:5:9","nodeType":"YulTypedName","src":"8586:5:9","type":""},{"name":"pos","nativeSrc":"8593:3:9","nodeType":"YulTypedName","src":"8593:3:9","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8601:3:9","nodeType":"YulTypedName","src":"8601:3:9","type":""}],"src":"8513:377:9"},{"body":{"nativeSrc":"9014:195:9","nodeType":"YulBlock","src":"9014:195:9","statements":[{"nativeSrc":"9024:26:9","nodeType":"YulAssignment","src":"9024:26:9","value":{"arguments":[{"name":"headStart","nativeSrc":"9036:9:9","nodeType":"YulIdentifier","src":"9036:9:9"},{"kind":"number","nativeSrc":"9047:2:9","nodeType":"YulLiteral","src":"9047:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9032:3:9","nodeType":"YulIdentifier","src":"9032:3:9"},"nativeSrc":"9032:18:9","nodeType":"YulFunctionCall","src":"9032:18:9"},"variableNames":[{"name":"tail","nativeSrc":"9024:4:9","nodeType":"YulIdentifier","src":"9024:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9071:9:9","nodeType":"YulIdentifier","src":"9071:9:9"},{"kind":"number","nativeSrc":"9082:1:9","nodeType":"YulLiteral","src":"9082:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9067:3:9","nodeType":"YulIdentifier","src":"9067:3:9"},"nativeSrc":"9067:17:9","nodeType":"YulFunctionCall","src":"9067:17:9"},{"arguments":[{"name":"tail","nativeSrc":"9090:4:9","nodeType":"YulIdentifier","src":"9090:4:9"},{"name":"headStart","nativeSrc":"9096:9:9","nodeType":"YulIdentifier","src":"9096:9:9"}],"functionName":{"name":"sub","nativeSrc":"9086:3:9","nodeType":"YulIdentifier","src":"9086:3:9"},"nativeSrc":"9086:20:9","nodeType":"YulFunctionCall","src":"9086:20:9"}],"functionName":{"name":"mstore","nativeSrc":"9060:6:9","nodeType":"YulIdentifier","src":"9060:6:9"},"nativeSrc":"9060:47:9","nodeType":"YulFunctionCall","src":"9060:47:9"},"nativeSrc":"9060:47:9","nodeType":"YulExpressionStatement","src":"9060:47:9"},{"nativeSrc":"9116:86:9","nodeType":"YulAssignment","src":"9116:86:9","value":{"arguments":[{"name":"value0","nativeSrc":"9188:6:9","nodeType":"YulIdentifier","src":"9188:6:9"},{"name":"tail","nativeSrc":"9197:4:9","nodeType":"YulIdentifier","src":"9197:4:9"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"9124:63:9","nodeType":"YulIdentifier","src":"9124:63:9"},"nativeSrc":"9124:78:9","nodeType":"YulFunctionCall","src":"9124:78:9"},"variableNames":[{"name":"tail","nativeSrc":"9116:4:9","nodeType":"YulIdentifier","src":"9116:4:9"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8896:313:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8986:9:9","nodeType":"YulTypedName","src":"8986:9:9","type":""},{"name":"value0","nativeSrc":"8998:6:9","nodeType":"YulTypedName","src":"8998:6:9","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9009:4:9","nodeType":"YulTypedName","src":"9009:4:9","type":""}],"src":"8896:313:9"},{"body":{"nativeSrc":"9301:443:9","nodeType":"YulBlock","src":"9301:443:9","statements":[{"body":{"nativeSrc":"9347:83:9","nodeType":"YulBlock","src":"9347:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9349:77:9","nodeType":"YulIdentifier","src":"9349:77:9"},"nativeSrc":"9349:79:9","nodeType":"YulFunctionCall","src":"9349:79:9"},"nativeSrc":"9349:79:9","nodeType":"YulExpressionStatement","src":"9349:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9322:7:9","nodeType":"YulIdentifier","src":"9322:7:9"},{"name":"headStart","nativeSrc":"9331:9:9","nodeType":"YulIdentifier","src":"9331:9:9"}],"functionName":{"name":"sub","nativeSrc":"9318:3:9","nodeType":"YulIdentifier","src":"9318:3:9"},"nativeSrc":"9318:23:9","nodeType":"YulFunctionCall","src":"9318:23:9"},{"kind":"number","nativeSrc":"9343:2:9","nodeType":"YulLiteral","src":"9343:2:9","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9314:3:9","nodeType":"YulIdentifier","src":"9314:3:9"},"nativeSrc":"9314:32:9","nodeType":"YulFunctionCall","src":"9314:32:9"},"nativeSrc":"9311:119:9","nodeType":"YulIf","src":"9311:119:9"},{"nativeSrc":"9440:297:9","nodeType":"YulBlock","src":"9440:297:9","statements":[{"nativeSrc":"9455:45:9","nodeType":"YulVariableDeclaration","src":"9455:45:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9486:9:9","nodeType":"YulIdentifier","src":"9486:9:9"},{"kind":"number","nativeSrc":"9497:1:9","nodeType":"YulLiteral","src":"9497:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9482:3:9","nodeType":"YulIdentifier","src":"9482:3:9"},"nativeSrc":"9482:17:9","nodeType":"YulFunctionCall","src":"9482:17:9"}],"functionName":{"name":"calldataload","nativeSrc":"9469:12:9","nodeType":"YulIdentifier","src":"9469:12:9"},"nativeSrc":"9469:31:9","nodeType":"YulFunctionCall","src":"9469:31:9"},"variables":[{"name":"offset","nativeSrc":"9459:6:9","nodeType":"YulTypedName","src":"9459:6:9","type":""}]},{"body":{"nativeSrc":"9547:83:9","nodeType":"YulBlock","src":"9547:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"9549:77:9","nodeType":"YulIdentifier","src":"9549:77:9"},"nativeSrc":"9549:79:9","nodeType":"YulFunctionCall","src":"9549:79:9"},"nativeSrc":"9549:79:9","nodeType":"YulExpressionStatement","src":"9549:79:9"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9519:6:9","nodeType":"YulIdentifier","src":"9519:6:9"},{"kind":"number","nativeSrc":"9527:18:9","nodeType":"YulLiteral","src":"9527:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9516:2:9","nodeType":"YulIdentifier","src":"9516:2:9"},"nativeSrc":"9516:30:9","nodeType":"YulFunctionCall","src":"9516:30:9"},"nativeSrc":"9513:117:9","nodeType":"YulIf","src":"9513:117:9"},{"nativeSrc":"9644:83:9","nodeType":"YulAssignment","src":"9644:83:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9699:9:9","nodeType":"YulIdentifier","src":"9699:9:9"},{"name":"offset","nativeSrc":"9710:6:9","nodeType":"YulIdentifier","src":"9710:6:9"}],"functionName":{"name":"add","nativeSrc":"9695:3:9","nodeType":"YulIdentifier","src":"9695:3:9"},"nativeSrc":"9695:22:9","nodeType":"YulFunctionCall","src":"9695:22:9"},{"name":"dataEnd","nativeSrc":"9719:7:9","nodeType":"YulIdentifier","src":"9719:7:9"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"9662:32:9","nodeType":"YulIdentifier","src":"9662:32:9"},"nativeSrc":"9662:65:9","nodeType":"YulFunctionCall","src":"9662:65:9"},"variableNames":[{"name":"value0","nativeSrc":"9644:6:9","nodeType":"YulIdentifier","src":"9644:6:9"},{"name":"value1","nativeSrc":"9652:6:9","nodeType":"YulIdentifier","src":"9652:6:9"}]}]}]},"name":"abi_decode_tuple_t_string_calldata_ptr","nativeSrc":"9215:529:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9263:9:9","nodeType":"YulTypedName","src":"9263:9:9","type":""},{"name":"dataEnd","nativeSrc":"9274:7:9","nodeType":"YulTypedName","src":"9274:7:9","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9286:6:9","nodeType":"YulTypedName","src":"9286:6:9","type":""},{"name":"value1","nativeSrc":"9294:6:9","nodeType":"YulTypedName","src":"9294:6:9","type":""}],"src":"9215:529:9"},{"body":{"nativeSrc":"9856:114:9","nodeType":"YulBlock","src":"9856:114:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9878:6:9","nodeType":"YulIdentifier","src":"9878:6:9"},{"kind":"number","nativeSrc":"9886:1:9","nodeType":"YulLiteral","src":"9886:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9874:3:9","nodeType":"YulIdentifier","src":"9874:3:9"},"nativeSrc":"9874:14:9","nodeType":"YulFunctionCall","src":"9874:14:9"},{"hexValue":"4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f","kind":"string","nativeSrc":"9890:34:9","nodeType":"YulLiteral","src":"9890:34:9","type":"","value":"Only admin can call this functio"}],"functionName":{"name":"mstore","nativeSrc":"9867:6:9","nodeType":"YulIdentifier","src":"9867:6:9"},"nativeSrc":"9867:58:9","nodeType":"YulFunctionCall","src":"9867:58:9"},"nativeSrc":"9867:58:9","nodeType":"YulExpressionStatement","src":"9867:58:9"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9946:6:9","nodeType":"YulIdentifier","src":"9946:6:9"},{"kind":"number","nativeSrc":"9954:2:9","nodeType":"YulLiteral","src":"9954:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9942:3:9","nodeType":"YulIdentifier","src":"9942:3:9"},"nativeSrc":"9942:15:9","nodeType":"YulFunctionCall","src":"9942:15:9"},{"hexValue":"6e","kind":"string","nativeSrc":"9959:3:9","nodeType":"YulLiteral","src":"9959:3:9","type":"","value":"n"}],"functionName":{"name":"mstore","nativeSrc":"9935:6:9","nodeType":"YulIdentifier","src":"9935:6:9"},"nativeSrc":"9935:28:9","nodeType":"YulFunctionCall","src":"9935:28:9"},"nativeSrc":"9935:28:9","nodeType":"YulExpressionStatement","src":"9935:28:9"}]},"name":"store_literal_in_memory_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b","nativeSrc":"9750:220:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9848:6:9","nodeType":"YulTypedName","src":"9848:6:9","type":""}],"src":"9750:220:9"},{"body":{"nativeSrc":"10122:220:9","nodeType":"YulBlock","src":"10122:220:9","statements":[{"nativeSrc":"10132:74:9","nodeType":"YulAssignment","src":"10132:74:9","value":{"arguments":[{"name":"pos","nativeSrc":"10198:3:9","nodeType":"YulIdentifier","src":"10198:3:9"},{"kind":"number","nativeSrc":"10203:2:9","nodeType":"YulLiteral","src":"10203:2:9","type":"","value":"33"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10139:58:9","nodeType":"YulIdentifier","src":"10139:58:9"},"nativeSrc":"10139:67:9","nodeType":"YulFunctionCall","src":"10139:67:9"},"variableNames":[{"name":"pos","nativeSrc":"10132:3:9","nodeType":"YulIdentifier","src":"10132:3:9"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10304:3:9","nodeType":"YulIdentifier","src":"10304:3:9"}],"functionName":{"name":"store_literal_in_memory_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b","nativeSrc":"10215:88:9","nodeType":"YulIdentifier","src":"10215:88:9"},"nativeSrc":"10215:93:9","nodeType":"YulFunctionCall","src":"10215:93:9"},"nativeSrc":"10215:93:9","nodeType":"YulExpressionStatement","src":"10215:93:9"},{"nativeSrc":"10317:19:9","nodeType":"YulAssignment","src":"10317:19:9","value":{"arguments":[{"name":"pos","nativeSrc":"10328:3:9","nodeType":"YulIdentifier","src":"10328:3:9"},{"kind":"number","nativeSrc":"10333:2:9","nodeType":"YulLiteral","src":"10333:2:9","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10324:3:9","nodeType":"YulIdentifier","src":"10324:3:9"},"nativeSrc":"10324:12:9","nodeType":"YulFunctionCall","src":"10324:12:9"},"variableNames":[{"name":"end","nativeSrc":"10317:3:9","nodeType":"YulIdentifier","src":"10317:3:9"}]}]},"name":"abi_encode_t_stringliteral_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b_to_t_string_memory_ptr_fromStack","nativeSrc":"9976:366:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10110:3:9","nodeType":"YulTypedName","src":"10110:3:9","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10118:3:9","nodeType":"YulTypedName","src":"10118:3:9","type":""}],"src":"9976:366:9"},{"body":{"nativeSrc":"10519:248:9","nodeType":"YulBlock","src":"10519:248:9","statements":[{"nativeSrc":"10529:26:9","nodeType":"YulAssignment","src":"10529:26:9","value":{"arguments":[{"name":"headStart","nativeSrc":"10541:9:9","nodeType":"YulIdentifier","src":"10541:9:9"},{"kind":"number","nativeSrc":"10552:2:9","nodeType":"YulLiteral","src":"10552:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10537:3:9","nodeType":"YulIdentifier","src":"10537:3:9"},"nativeSrc":"10537:18:9","nodeType":"YulFunctionCall","src":"10537:18:9"},"variableNames":[{"name":"tail","nativeSrc":"10529:4:9","nodeType":"YulIdentifier","src":"10529:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10576:9:9","nodeType":"YulIdentifier","src":"10576:9:9"},{"kind":"number","nativeSrc":"10587:1:9","nodeType":"YulLiteral","src":"10587:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10572:3:9","nodeType":"YulIdentifier","src":"10572:3:9"},"nativeSrc":"10572:17:9","nodeType":"YulFunctionCall","src":"10572:17:9"},{"arguments":[{"name":"tail","nativeSrc":"10595:4:9","nodeType":"YulIdentifier","src":"10595:4:9"},{"name":"headStart","nativeSrc":"10601:9:9","nodeType":"YulIdentifier","src":"10601:9:9"}],"functionName":{"name":"sub","nativeSrc":"10591:3:9","nodeType":"YulIdentifier","src":"10591:3:9"},"nativeSrc":"10591:20:9","nodeType":"YulFunctionCall","src":"10591:20:9"}],"functionName":{"name":"mstore","nativeSrc":"10565:6:9","nodeType":"YulIdentifier","src":"10565:6:9"},"nativeSrc":"10565:47:9","nodeType":"YulFunctionCall","src":"10565:47:9"},"nativeSrc":"10565:47:9","nodeType":"YulExpressionStatement","src":"10565:47:9"},{"nativeSrc":"10621:139:9","nodeType":"YulAssignment","src":"10621:139:9","value":{"arguments":[{"name":"tail","nativeSrc":"10755:4:9","nodeType":"YulIdentifier","src":"10755:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b_to_t_string_memory_ptr_fromStack","nativeSrc":"10629:124:9","nodeType":"YulIdentifier","src":"10629:124:9"},"nativeSrc":"10629:131:9","nodeType":"YulFunctionCall","src":"10629:131:9"},"variableNames":[{"name":"tail","nativeSrc":"10621:4:9","nodeType":"YulIdentifier","src":"10621:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10348:419:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10499:9:9","nodeType":"YulTypedName","src":"10499:9:9","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10514:4:9","nodeType":"YulTypedName","src":"10514:4:9","type":""}],"src":"10348:419:9"},{"body":{"nativeSrc":"10879:71:9","nodeType":"YulBlock","src":"10879:71:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10901:6:9","nodeType":"YulIdentifier","src":"10901:6:9"},{"kind":"number","nativeSrc":"10909:1:9","nodeType":"YulLiteral","src":"10909:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10897:3:9","nodeType":"YulIdentifier","src":"10897:3:9"},"nativeSrc":"10897:14:9","nodeType":"YulFunctionCall","src":"10897:14:9"},{"hexValue":"576f726b67726f757049642063616e6e6f7420626520656d707479","kind":"string","nativeSrc":"10913:29:9","nodeType":"YulLiteral","src":"10913:29:9","type":"","value":"WorkgroupId cannot be empty"}],"functionName":{"name":"mstore","nativeSrc":"10890:6:9","nodeType":"YulIdentifier","src":"10890:6:9"},"nativeSrc":"10890:53:9","nodeType":"YulFunctionCall","src":"10890:53:9"},"nativeSrc":"10890:53:9","nodeType":"YulExpressionStatement","src":"10890:53:9"}]},"name":"store_literal_in_memory_78c1e73fefe3f4316304254051aea4b3cd1dff7c956954d148b846fe8ffe2a0a","nativeSrc":"10773:177:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10871:6:9","nodeType":"YulTypedName","src":"10871:6:9","type":""}],"src":"10773:177:9"},{"body":{"nativeSrc":"11102:220:9","nodeType":"YulBlock","src":"11102:220:9","statements":[{"nativeSrc":"11112:74:9","nodeType":"YulAssignment","src":"11112:74:9","value":{"arguments":[{"name":"pos","nativeSrc":"11178:3:9","nodeType":"YulIdentifier","src":"11178:3:9"},{"kind":"number","nativeSrc":"11183:2:9","nodeType":"YulLiteral","src":"11183:2:9","type":"","value":"27"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11119:58:9","nodeType":"YulIdentifier","src":"11119:58:9"},"nativeSrc":"11119:67:9","nodeType":"YulFunctionCall","src":"11119:67:9"},"variableNames":[{"name":"pos","nativeSrc":"11112:3:9","nodeType":"YulIdentifier","src":"11112:3:9"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11284:3:9","nodeType":"YulIdentifier","src":"11284:3:9"}],"functionName":{"name":"store_literal_in_memory_78c1e73fefe3f4316304254051aea4b3cd1dff7c956954d148b846fe8ffe2a0a","nativeSrc":"11195:88:9","nodeType":"YulIdentifier","src":"11195:88:9"},"nativeSrc":"11195:93:9","nodeType":"YulFunctionCall","src":"11195:93:9"},"nativeSrc":"11195:93:9","nodeType":"YulExpressionStatement","src":"11195:93:9"},{"nativeSrc":"11297:19:9","nodeType":"YulAssignment","src":"11297:19:9","value":{"arguments":[{"name":"pos","nativeSrc":"11308:3:9","nodeType":"YulIdentifier","src":"11308:3:9"},{"kind":"number","nativeSrc":"11313:2:9","nodeType":"YulLiteral","src":"11313:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11304:3:9","nodeType":"YulIdentifier","src":"11304:3:9"},"nativeSrc":"11304:12:9","nodeType":"YulFunctionCall","src":"11304:12:9"},"variableNames":[{"name":"end","nativeSrc":"11297:3:9","nodeType":"YulIdentifier","src":"11297:3:9"}]}]},"name":"abi_encode_t_stringliteral_78c1e73fefe3f4316304254051aea4b3cd1dff7c956954d148b846fe8ffe2a0a_to_t_string_memory_ptr_fromStack","nativeSrc":"10956:366:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11090:3:9","nodeType":"YulTypedName","src":"11090:3:9","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11098:3:9","nodeType":"YulTypedName","src":"11098:3:9","type":""}],"src":"10956:366:9"},{"body":{"nativeSrc":"11499:248:9","nodeType":"YulBlock","src":"11499:248:9","statements":[{"nativeSrc":"11509:26:9","nodeType":"YulAssignment","src":"11509:26:9","value":{"arguments":[{"name":"headStart","nativeSrc":"11521:9:9","nodeType":"YulIdentifier","src":"11521:9:9"},{"kind":"number","nativeSrc":"11532:2:9","nodeType":"YulLiteral","src":"11532:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11517:3:9","nodeType":"YulIdentifier","src":"11517:3:9"},"nativeSrc":"11517:18:9","nodeType":"YulFunctionCall","src":"11517:18:9"},"variableNames":[{"name":"tail","nativeSrc":"11509:4:9","nodeType":"YulIdentifier","src":"11509:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11556:9:9","nodeType":"YulIdentifier","src":"11556:9:9"},{"kind":"number","nativeSrc":"11567:1:9","nodeType":"YulLiteral","src":"11567:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11552:3:9","nodeType":"YulIdentifier","src":"11552:3:9"},"nativeSrc":"11552:17:9","nodeType":"YulFunctionCall","src":"11552:17:9"},{"arguments":[{"name":"tail","nativeSrc":"11575:4:9","nodeType":"YulIdentifier","src":"11575:4:9"},{"name":"headStart","nativeSrc":"11581:9:9","nodeType":"YulIdentifier","src":"11581:9:9"}],"functionName":{"name":"sub","nativeSrc":"11571:3:9","nodeType":"YulIdentifier","src":"11571:3:9"},"nativeSrc":"11571:20:9","nodeType":"YulFunctionCall","src":"11571:20:9"}],"functionName":{"name":"mstore","nativeSrc":"11545:6:9","nodeType":"YulIdentifier","src":"11545:6:9"},"nativeSrc":"11545:47:9","nodeType":"YulFunctionCall","src":"11545:47:9"},"nativeSrc":"11545:47:9","nodeType":"YulExpressionStatement","src":"11545:47:9"},{"nativeSrc":"11601:139:9","nodeType":"YulAssignment","src":"11601:139:9","value":{"arguments":[{"name":"tail","nativeSrc":"11735:4:9","nodeType":"YulIdentifier","src":"11735:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_78c1e73fefe3f4316304254051aea4b3cd1dff7c956954d148b846fe8ffe2a0a_to_t_string_memory_ptr_fromStack","nativeSrc":"11609:124:9","nodeType":"YulIdentifier","src":"11609:124:9"},"nativeSrc":"11609:131:9","nodeType":"YulFunctionCall","src":"11609:131:9"},"variableNames":[{"name":"tail","nativeSrc":"11601:4:9","nodeType":"YulIdentifier","src":"11601:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_78c1e73fefe3f4316304254051aea4b3cd1dff7c956954d148b846fe8ffe2a0a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11328:419:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11479:9:9","nodeType":"YulTypedName","src":"11479:9:9","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11494:4:9","nodeType":"YulTypedName","src":"11494:4:9","type":""}],"src":"11328:419:9"},{"body":{"nativeSrc":"11859:115:9","nodeType":"YulBlock","src":"11859:115:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11881:6:9","nodeType":"YulIdentifier","src":"11881:6:9"},{"kind":"number","nativeSrc":"11889:1:9","nodeType":"YulLiteral","src":"11889:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11877:3:9","nodeType":"YulIdentifier","src":"11877:3:9"},"nativeSrc":"11877:14:9","nodeType":"YulFunctionCall","src":"11877:14:9"},{"hexValue":"576f726b67726f757049642063616e6e6f742065786365656420333620627974","kind":"string","nativeSrc":"11893:34:9","nodeType":"YulLiteral","src":"11893:34:9","type":"","value":"WorkgroupId cannot exceed 36 byt"}],"functionName":{"name":"mstore","nativeSrc":"11870:6:9","nodeType":"YulIdentifier","src":"11870:6:9"},"nativeSrc":"11870:58:9","nodeType":"YulFunctionCall","src":"11870:58:9"},"nativeSrc":"11870:58:9","nodeType":"YulExpressionStatement","src":"11870:58:9"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11949:6:9","nodeType":"YulIdentifier","src":"11949:6:9"},{"kind":"number","nativeSrc":"11957:2:9","nodeType":"YulLiteral","src":"11957:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11945:3:9","nodeType":"YulIdentifier","src":"11945:3:9"},"nativeSrc":"11945:15:9","nodeType":"YulFunctionCall","src":"11945:15:9"},{"hexValue":"6573","kind":"string","nativeSrc":"11962:4:9","nodeType":"YulLiteral","src":"11962:4:9","type":"","value":"es"}],"functionName":{"name":"mstore","nativeSrc":"11938:6:9","nodeType":"YulIdentifier","src":"11938:6:9"},"nativeSrc":"11938:29:9","nodeType":"YulFunctionCall","src":"11938:29:9"},"nativeSrc":"11938:29:9","nodeType":"YulExpressionStatement","src":"11938:29:9"}]},"name":"store_literal_in_memory_580a2190317e559c7d04a8b4ee7133ca2ccde26681dd0e5271b6f32aec444efa","nativeSrc":"11753:221:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11851:6:9","nodeType":"YulTypedName","src":"11851:6:9","type":""}],"src":"11753:221:9"},{"body":{"nativeSrc":"12126:220:9","nodeType":"YulBlock","src":"12126:220:9","statements":[{"nativeSrc":"12136:74:9","nodeType":"YulAssignment","src":"12136:74:9","value":{"arguments":[{"name":"pos","nativeSrc":"12202:3:9","nodeType":"YulIdentifier","src":"12202:3:9"},{"kind":"number","nativeSrc":"12207:2:9","nodeType":"YulLiteral","src":"12207:2:9","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12143:58:9","nodeType":"YulIdentifier","src":"12143:58:9"},"nativeSrc":"12143:67:9","nodeType":"YulFunctionCall","src":"12143:67:9"},"variableNames":[{"name":"pos","nativeSrc":"12136:3:9","nodeType":"YulIdentifier","src":"12136:3:9"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12308:3:9","nodeType":"YulIdentifier","src":"12308:3:9"}],"functionName":{"name":"store_literal_in_memory_580a2190317e559c7d04a8b4ee7133ca2ccde26681dd0e5271b6f32aec444efa","nativeSrc":"12219:88:9","nodeType":"YulIdentifier","src":"12219:88:9"},"nativeSrc":"12219:93:9","nodeType":"YulFunctionCall","src":"12219:93:9"},"nativeSrc":"12219:93:9","nodeType":"YulExpressionStatement","src":"12219:93:9"},{"nativeSrc":"12321:19:9","nodeType":"YulAssignment","src":"12321:19:9","value":{"arguments":[{"name":"pos","nativeSrc":"12332:3:9","nodeType":"YulIdentifier","src":"12332:3:9"},{"kind":"number","nativeSrc":"12337:2:9","nodeType":"YulLiteral","src":"12337:2:9","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12328:3:9","nodeType":"YulIdentifier","src":"12328:3:9"},"nativeSrc":"12328:12:9","nodeType":"YulFunctionCall","src":"12328:12:9"},"variableNames":[{"name":"end","nativeSrc":"12321:3:9","nodeType":"YulIdentifier","src":"12321:3:9"}]}]},"name":"abi_encode_t_stringliteral_580a2190317e559c7d04a8b4ee7133ca2ccde26681dd0e5271b6f32aec444efa_to_t_string_memory_ptr_fromStack","nativeSrc":"11980:366:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12114:3:9","nodeType":"YulTypedName","src":"12114:3:9","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12122:3:9","nodeType":"YulTypedName","src":"12122:3:9","type":""}],"src":"11980:366:9"},{"body":{"nativeSrc":"12523:248:9","nodeType":"YulBlock","src":"12523:248:9","statements":[{"nativeSrc":"12533:26:9","nodeType":"YulAssignment","src":"12533:26:9","value":{"arguments":[{"name":"headStart","nativeSrc":"12545:9:9","nodeType":"YulIdentifier","src":"12545:9:9"},{"kind":"number","nativeSrc":"12556:2:9","nodeType":"YulLiteral","src":"12556:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12541:3:9","nodeType":"YulIdentifier","src":"12541:3:9"},"nativeSrc":"12541:18:9","nodeType":"YulFunctionCall","src":"12541:18:9"},"variableNames":[{"name":"tail","nativeSrc":"12533:4:9","nodeType":"YulIdentifier","src":"12533:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12580:9:9","nodeType":"YulIdentifier","src":"12580:9:9"},{"kind":"number","nativeSrc":"12591:1:9","nodeType":"YulLiteral","src":"12591:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12576:3:9","nodeType":"YulIdentifier","src":"12576:3:9"},"nativeSrc":"12576:17:9","nodeType":"YulFunctionCall","src":"12576:17:9"},{"arguments":[{"name":"tail","nativeSrc":"12599:4:9","nodeType":"YulIdentifier","src":"12599:4:9"},{"name":"headStart","nativeSrc":"12605:9:9","nodeType":"YulIdentifier","src":"12605:9:9"}],"functionName":{"name":"sub","nativeSrc":"12595:3:9","nodeType":"YulIdentifier","src":"12595:3:9"},"nativeSrc":"12595:20:9","nodeType":"YulFunctionCall","src":"12595:20:9"}],"functionName":{"name":"mstore","nativeSrc":"12569:6:9","nodeType":"YulIdentifier","src":"12569:6:9"},"nativeSrc":"12569:47:9","nodeType":"YulFunctionCall","src":"12569:47:9"},"nativeSrc":"12569:47:9","nodeType":"YulExpressionStatement","src":"12569:47:9"},{"nativeSrc":"12625:139:9","nodeType":"YulAssignment","src":"12625:139:9","value":{"arguments":[{"name":"tail","nativeSrc":"12759:4:9","nodeType":"YulIdentifier","src":"12759:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_580a2190317e559c7d04a8b4ee7133ca2ccde26681dd0e5271b6f32aec444efa_to_t_string_memory_ptr_fromStack","nativeSrc":"12633:124:9","nodeType":"YulIdentifier","src":"12633:124:9"},"nativeSrc":"12633:131:9","nodeType":"YulFunctionCall","src":"12633:131:9"},"variableNames":[{"name":"tail","nativeSrc":"12625:4:9","nodeType":"YulIdentifier","src":"12625:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_580a2190317e559c7d04a8b4ee7133ca2ccde26681dd0e5271b6f32aec444efa__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12352:419:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12503:9:9","nodeType":"YulTypedName","src":"12503:9:9","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12518:4:9","nodeType":"YulTypedName","src":"12518:4:9","type":""}],"src":"12352:419:9"},{"body":{"nativeSrc":"12883:70:9","nodeType":"YulBlock","src":"12883:70:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12905:6:9","nodeType":"YulIdentifier","src":"12905:6:9"},{"kind":"number","nativeSrc":"12913:1:9","nodeType":"YulLiteral","src":"12913:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12901:3:9","nodeType":"YulIdentifier","src":"12901:3:9"},"nativeSrc":"12901:14:9","nodeType":"YulFunctionCall","src":"12901:14:9"},{"hexValue":"416e63686f72486173682063616e6e6f7420626520656d707479","kind":"string","nativeSrc":"12917:28:9","nodeType":"YulLiteral","src":"12917:28:9","type":"","value":"AnchorHash cannot be empty"}],"functionName":{"name":"mstore","nativeSrc":"12894:6:9","nodeType":"YulIdentifier","src":"12894:6:9"},"nativeSrc":"12894:52:9","nodeType":"YulFunctionCall","src":"12894:52:9"},"nativeSrc":"12894:52:9","nodeType":"YulExpressionStatement","src":"12894:52:9"}]},"name":"store_literal_in_memory_a3a00e5cebac6883c44ba7b7b2dc537ce06da1609d1fbae9a9e21d5fd543a3ca","nativeSrc":"12777:176:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12875:6:9","nodeType":"YulTypedName","src":"12875:6:9","type":""}],"src":"12777:176:9"},{"body":{"nativeSrc":"13105:220:9","nodeType":"YulBlock","src":"13105:220:9","statements":[{"nativeSrc":"13115:74:9","nodeType":"YulAssignment","src":"13115:74:9","value":{"arguments":[{"name":"pos","nativeSrc":"13181:3:9","nodeType":"YulIdentifier","src":"13181:3:9"},{"kind":"number","nativeSrc":"13186:2:9","nodeType":"YulLiteral","src":"13186:2:9","type":"","value":"26"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13122:58:9","nodeType":"YulIdentifier","src":"13122:58:9"},"nativeSrc":"13122:67:9","nodeType":"YulFunctionCall","src":"13122:67:9"},"variableNames":[{"name":"pos","nativeSrc":"13115:3:9","nodeType":"YulIdentifier","src":"13115:3:9"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13287:3:9","nodeType":"YulIdentifier","src":"13287:3:9"}],"functionName":{"name":"store_literal_in_memory_a3a00e5cebac6883c44ba7b7b2dc537ce06da1609d1fbae9a9e21d5fd543a3ca","nativeSrc":"13198:88:9","nodeType":"YulIdentifier","src":"13198:88:9"},"nativeSrc":"13198:93:9","nodeType":"YulFunctionCall","src":"13198:93:9"},"nativeSrc":"13198:93:9","nodeType":"YulExpressionStatement","src":"13198:93:9"},{"nativeSrc":"13300:19:9","nodeType":"YulAssignment","src":"13300:19:9","value":{"arguments":[{"name":"pos","nativeSrc":"13311:3:9","nodeType":"YulIdentifier","src":"13311:3:9"},{"kind":"number","nativeSrc":"13316:2:9","nodeType":"YulLiteral","src":"13316:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13307:3:9","nodeType":"YulIdentifier","src":"13307:3:9"},"nativeSrc":"13307:12:9","nodeType":"YulFunctionCall","src":"13307:12:9"},"variableNames":[{"name":"end","nativeSrc":"13300:3:9","nodeType":"YulIdentifier","src":"13300:3:9"}]}]},"name":"abi_encode_t_stringliteral_a3a00e5cebac6883c44ba7b7b2dc537ce06da1609d1fbae9a9e21d5fd543a3ca_to_t_string_memory_ptr_fromStack","nativeSrc":"12959:366:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13093:3:9","nodeType":"YulTypedName","src":"13093:3:9","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13101:3:9","nodeType":"YulTypedName","src":"13101:3:9","type":""}],"src":"12959:366:9"},{"body":{"nativeSrc":"13502:248:9","nodeType":"YulBlock","src":"13502:248:9","statements":[{"nativeSrc":"13512:26:9","nodeType":"YulAssignment","src":"13512:26:9","value":{"arguments":[{"name":"headStart","nativeSrc":"13524:9:9","nodeType":"YulIdentifier","src":"13524:9:9"},{"kind":"number","nativeSrc":"13535:2:9","nodeType":"YulLiteral","src":"13535:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13520:3:9","nodeType":"YulIdentifier","src":"13520:3:9"},"nativeSrc":"13520:18:9","nodeType":"YulFunctionCall","src":"13520:18:9"},"variableNames":[{"name":"tail","nativeSrc":"13512:4:9","nodeType":"YulIdentifier","src":"13512:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13559:9:9","nodeType":"YulIdentifier","src":"13559:9:9"},{"kind":"number","nativeSrc":"13570:1:9","nodeType":"YulLiteral","src":"13570:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13555:3:9","nodeType":"YulIdentifier","src":"13555:3:9"},"nativeSrc":"13555:17:9","nodeType":"YulFunctionCall","src":"13555:17:9"},{"arguments":[{"name":"tail","nativeSrc":"13578:4:9","nodeType":"YulIdentifier","src":"13578:4:9"},{"name":"headStart","nativeSrc":"13584:9:9","nodeType":"YulIdentifier","src":"13584:9:9"}],"functionName":{"name":"sub","nativeSrc":"13574:3:9","nodeType":"YulIdentifier","src":"13574:3:9"},"nativeSrc":"13574:20:9","nodeType":"YulFunctionCall","src":"13574:20:9"}],"functionName":{"name":"mstore","nativeSrc":"13548:6:9","nodeType":"YulIdentifier","src":"13548:6:9"},"nativeSrc":"13548:47:9","nodeType":"YulFunctionCall","src":"13548:47:9"},"nativeSrc":"13548:47:9","nodeType":"YulExpressionStatement","src":"13548:47:9"},{"nativeSrc":"13604:139:9","nodeType":"YulAssignment","src":"13604:139:9","value":{"arguments":[{"name":"tail","nativeSrc":"13738:4:9","nodeType":"YulIdentifier","src":"13738:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_a3a00e5cebac6883c44ba7b7b2dc537ce06da1609d1fbae9a9e21d5fd543a3ca_to_t_string_memory_ptr_fromStack","nativeSrc":"13612:124:9","nodeType":"YulIdentifier","src":"13612:124:9"},"nativeSrc":"13612:131:9","nodeType":"YulFunctionCall","src":"13612:131:9"},"variableNames":[{"name":"tail","nativeSrc":"13604:4:9","nodeType":"YulIdentifier","src":"13604:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_a3a00e5cebac6883c44ba7b7b2dc537ce06da1609d1fbae9a9e21d5fd543a3ca__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13331:419:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13482:9:9","nodeType":"YulTypedName","src":"13482:9:9","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13497:4:9","nodeType":"YulTypedName","src":"13497:4:9","type":""}],"src":"13331:419:9"},{"body":{"nativeSrc":"13862:115:9","nodeType":"YulBlock","src":"13862:115:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13884:6:9","nodeType":"YulIdentifier","src":"13884:6:9"},{"kind":"number","nativeSrc":"13892:1:9","nodeType":"YulLiteral","src":"13892:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13880:3:9","nodeType":"YulIdentifier","src":"13880:3:9"},"nativeSrc":"13880:14:9","nodeType":"YulFunctionCall","src":"13880:14:9"},{"hexValue":"416e63686f72486173682063616e6e6f74206578636565642032353620627974","kind":"string","nativeSrc":"13896:34:9","nodeType":"YulLiteral","src":"13896:34:9","type":"","value":"AnchorHash cannot exceed 256 byt"}],"functionName":{"name":"mstore","nativeSrc":"13873:6:9","nodeType":"YulIdentifier","src":"13873:6:9"},"nativeSrc":"13873:58:9","nodeType":"YulFunctionCall","src":"13873:58:9"},"nativeSrc":"13873:58:9","nodeType":"YulExpressionStatement","src":"13873:58:9"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13952:6:9","nodeType":"YulIdentifier","src":"13952:6:9"},{"kind":"number","nativeSrc":"13960:2:9","nodeType":"YulLiteral","src":"13960:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13948:3:9","nodeType":"YulIdentifier","src":"13948:3:9"},"nativeSrc":"13948:15:9","nodeType":"YulFunctionCall","src":"13948:15:9"},{"hexValue":"6573","kind":"string","nativeSrc":"13965:4:9","nodeType":"YulLiteral","src":"13965:4:9","type":"","value":"es"}],"functionName":{"name":"mstore","nativeSrc":"13941:6:9","nodeType":"YulIdentifier","src":"13941:6:9"},"nativeSrc":"13941:29:9","nodeType":"YulFunctionCall","src":"13941:29:9"},"nativeSrc":"13941:29:9","nodeType":"YulExpressionStatement","src":"13941:29:9"}]},"name":"store_literal_in_memory_917787271d803f79cf82ae633fa9817a11c907186eb4e8b04a4a8343d3facc8b","nativeSrc":"13756:221:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13854:6:9","nodeType":"YulTypedName","src":"13854:6:9","type":""}],"src":"13756:221:9"},{"body":{"nativeSrc":"14129:220:9","nodeType":"YulBlock","src":"14129:220:9","statements":[{"nativeSrc":"14139:74:9","nodeType":"YulAssignment","src":"14139:74:9","value":{"arguments":[{"name":"pos","nativeSrc":"14205:3:9","nodeType":"YulIdentifier","src":"14205:3:9"},{"kind":"number","nativeSrc":"14210:2:9","nodeType":"YulLiteral","src":"14210:2:9","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"14146:58:9","nodeType":"YulIdentifier","src":"14146:58:9"},"nativeSrc":"14146:67:9","nodeType":"YulFunctionCall","src":"14146:67:9"},"variableNames":[{"name":"pos","nativeSrc":"14139:3:9","nodeType":"YulIdentifier","src":"14139:3:9"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14311:3:9","nodeType":"YulIdentifier","src":"14311:3:9"}],"functionName":{"name":"store_literal_in_memory_917787271d803f79cf82ae633fa9817a11c907186eb4e8b04a4a8343d3facc8b","nativeSrc":"14222:88:9","nodeType":"YulIdentifier","src":"14222:88:9"},"nativeSrc":"14222:93:9","nodeType":"YulFunctionCall","src":"14222:93:9"},"nativeSrc":"14222:93:9","nodeType":"YulExpressionStatement","src":"14222:93:9"},{"nativeSrc":"14324:19:9","nodeType":"YulAssignment","src":"14324:19:9","value":{"arguments":[{"name":"pos","nativeSrc":"14335:3:9","nodeType":"YulIdentifier","src":"14335:3:9"},{"kind":"number","nativeSrc":"14340:2:9","nodeType":"YulLiteral","src":"14340:2:9","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14331:3:9","nodeType":"YulIdentifier","src":"14331:3:9"},"nativeSrc":"14331:12:9","nodeType":"YulFunctionCall","src":"14331:12:9"},"variableNames":[{"name":"end","nativeSrc":"14324:3:9","nodeType":"YulIdentifier","src":"14324:3:9"}]}]},"name":"abi_encode_t_stringliteral_917787271d803f79cf82ae633fa9817a11c907186eb4e8b04a4a8343d3facc8b_to_t_string_memory_ptr_fromStack","nativeSrc":"13983:366:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14117:3:9","nodeType":"YulTypedName","src":"14117:3:9","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14125:3:9","nodeType":"YulTypedName","src":"14125:3:9","type":""}],"src":"13983:366:9"},{"body":{"nativeSrc":"14526:248:9","nodeType":"YulBlock","src":"14526:248:9","statements":[{"nativeSrc":"14536:26:9","nodeType":"YulAssignment","src":"14536:26:9","value":{"arguments":[{"name":"headStart","nativeSrc":"14548:9:9","nodeType":"YulIdentifier","src":"14548:9:9"},{"kind":"number","nativeSrc":"14559:2:9","nodeType":"YulLiteral","src":"14559:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14544:3:9","nodeType":"YulIdentifier","src":"14544:3:9"},"nativeSrc":"14544:18:9","nodeType":"YulFunctionCall","src":"14544:18:9"},"variableNames":[{"name":"tail","nativeSrc":"14536:4:9","nodeType":"YulIdentifier","src":"14536:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14583:9:9","nodeType":"YulIdentifier","src":"14583:9:9"},{"kind":"number","nativeSrc":"14594:1:9","nodeType":"YulLiteral","src":"14594:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14579:3:9","nodeType":"YulIdentifier","src":"14579:3:9"},"nativeSrc":"14579:17:9","nodeType":"YulFunctionCall","src":"14579:17:9"},{"arguments":[{"name":"tail","nativeSrc":"14602:4:9","nodeType":"YulIdentifier","src":"14602:4:9"},{"name":"headStart","nativeSrc":"14608:9:9","nodeType":"YulIdentifier","src":"14608:9:9"}],"functionName":{"name":"sub","nativeSrc":"14598:3:9","nodeType":"YulIdentifier","src":"14598:3:9"},"nativeSrc":"14598:20:9","nodeType":"YulFunctionCall","src":"14598:20:9"}],"functionName":{"name":"mstore","nativeSrc":"14572:6:9","nodeType":"YulIdentifier","src":"14572:6:9"},"nativeSrc":"14572:47:9","nodeType":"YulFunctionCall","src":"14572:47:9"},"nativeSrc":"14572:47:9","nodeType":"YulExpressionStatement","src":"14572:47:9"},{"nativeSrc":"14628:139:9","nodeType":"YulAssignment","src":"14628:139:9","value":{"arguments":[{"name":"tail","nativeSrc":"14762:4:9","nodeType":"YulIdentifier","src":"14762:4:9"}],"functionName":{"name":"abi_encode_t_stringliteral_917787271d803f79cf82ae633fa9817a11c907186eb4e8b04a4a8343d3facc8b_to_t_string_memory_ptr_fromStack","nativeSrc":"14636:124:9","nodeType":"YulIdentifier","src":"14636:124:9"},"nativeSrc":"14636:131:9","nodeType":"YulFunctionCall","src":"14636:131:9"},"variableNames":[{"name":"tail","nativeSrc":"14628:4:9","nodeType":"YulIdentifier","src":"14628:4:9"}]}]},"name":"abi_encode_tuple_t_stringliteral_917787271d803f79cf82ae633fa9817a11c907186eb4e8b04a4a8343d3facc8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14355:419:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14506:9:9","nodeType":"YulTypedName","src":"14506:9:9","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14521:4:9","nodeType":"YulTypedName","src":"14521:4:9","type":""}],"src":"14355:419:9"},{"body":{"nativeSrc":"14894:34:9","nodeType":"YulBlock","src":"14894:34:9","statements":[{"nativeSrc":"14904:18:9","nodeType":"YulAssignment","src":"14904:18:9","value":{"name":"pos","nativeSrc":"14919:3:9","nodeType":"YulIdentifier","src":"14919:3:9"},"variableNames":[{"name":"updated_pos","nativeSrc":"14904:11:9","nodeType":"YulIdentifier","src":"14904:11:9"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"14780:148:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14866:3:9","nodeType":"YulTypedName","src":"14866:3:9","type":""},{"name":"length","nativeSrc":"14871:6:9","nodeType":"YulTypedName","src":"14871:6:9","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"14882:11:9","nodeType":"YulTypedName","src":"14882:11:9","type":""}],"src":"14780:148:9"},{"body":{"nativeSrc":"15078:210:9","nodeType":"YulBlock","src":"15078:210:9","statements":[{"nativeSrc":"15088:96:9","nodeType":"YulAssignment","src":"15088:96:9","value":{"arguments":[{"name":"pos","nativeSrc":"15172:3:9","nodeType":"YulIdentifier","src":"15172:3:9"},{"name":"length","nativeSrc":"15177:6:9","nodeType":"YulIdentifier","src":"15177:6:9"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"15095:76:9","nodeType":"YulIdentifier","src":"15095:76:9"},"nativeSrc":"15095:89:9","nodeType":"YulFunctionCall","src":"15095:89:9"},"variableNames":[{"name":"pos","nativeSrc":"15088:3:9","nodeType":"YulIdentifier","src":"15088:3:9"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"15231:5:9","nodeType":"YulIdentifier","src":"15231:5:9"},{"name":"pos","nativeSrc":"15238:3:9","nodeType":"YulIdentifier","src":"15238:3:9"},{"name":"length","nativeSrc":"15243:6:9","nodeType":"YulIdentifier","src":"15243:6:9"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"15194:36:9","nodeType":"YulIdentifier","src":"15194:36:9"},"nativeSrc":"15194:56:9","nodeType":"YulFunctionCall","src":"15194:56:9"},"nativeSrc":"15194:56:9","nodeType":"YulExpressionStatement","src":"15194:56:9"},{"nativeSrc":"15259:23:9","nodeType":"YulAssignment","src":"15259:23:9","value":{"arguments":[{"name":"pos","nativeSrc":"15270:3:9","nodeType":"YulIdentifier","src":"15270:3:9"},{"name":"length","nativeSrc":"15275:6:9","nodeType":"YulIdentifier","src":"15275:6:9"}],"functionName":{"name":"add","nativeSrc":"15266:3:9","nodeType":"YulIdentifier","src":"15266:3:9"},"nativeSrc":"15266:16:9","nodeType":"YulFunctionCall","src":"15266:16:9"},"variableNames":[{"name":"end","nativeSrc":"15259:3:9","nodeType":"YulIdentifier","src":"15259:3:9"}]}]},"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"14958:330:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"15051:5:9","nodeType":"YulTypedName","src":"15051:5:9","type":""},{"name":"length","nativeSrc":"15058:6:9","nodeType":"YulTypedName","src":"15058:6:9","type":""},{"name":"pos","nativeSrc":"15066:3:9","nodeType":"YulTypedName","src":"15066:3:9","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15074:3:9","nodeType":"YulTypedName","src":"15074:3:9","type":""}],"src":"14958:330:9"},{"body":{"nativeSrc":"15440:149:9","nodeType":"YulBlock","src":"15440:149:9","statements":[{"nativeSrc":"15451:112:9","nodeType":"YulAssignment","src":"15451:112:9","value":{"arguments":[{"name":"value0","nativeSrc":"15542:6:9","nodeType":"YulIdentifier","src":"15542:6:9"},{"name":"value1","nativeSrc":"15550:6:9","nodeType":"YulIdentifier","src":"15550:6:9"},{"name":"pos","nativeSrc":"15559:3:9","nodeType":"YulIdentifier","src":"15559:3:9"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"15458:83:9","nodeType":"YulIdentifier","src":"15458:83:9"},"nativeSrc":"15458:105:9","nodeType":"YulFunctionCall","src":"15458:105:9"},"variableNames":[{"name":"pos","nativeSrc":"15451:3:9","nodeType":"YulIdentifier","src":"15451:3:9"}]},{"nativeSrc":"15573:10:9","nodeType":"YulAssignment","src":"15573:10:9","value":{"name":"pos","nativeSrc":"15580:3:9","nodeType":"YulIdentifier","src":"15580:3:9"},"variableNames":[{"name":"end","nativeSrc":"15573:3:9","nodeType":"YulIdentifier","src":"15573:3:9"}]}]},"name":"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"15294:295:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15411:3:9","nodeType":"YulTypedName","src":"15411:3:9","type":""},{"name":"value1","nativeSrc":"15417:6:9","nodeType":"YulTypedName","src":"15417:6:9","type":""},{"name":"value0","nativeSrc":"15425:6:9","nodeType":"YulTypedName","src":"15425:6:9","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15436:3:9","nodeType":"YulTypedName","src":"15436:3:9","type":""}],"src":"15294:295:9"},{"body":{"nativeSrc":"15661:31:9","nodeType":"YulBlock","src":"15661:31:9","statements":[{"nativeSrc":"15672:13:9","nodeType":"YulAssignment","src":"15672:13:9","value":{"name":"len","nativeSrc":"15682:3:9","nodeType":"YulIdentifier","src":"15682:3:9"},"variableNames":[{"name":"length","nativeSrc":"15672:6:9","nodeType":"YulIdentifier","src":"15672:6:9"}]}]},"name":"array_length_t_string_calldata_ptr","nativeSrc":"15595:97:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15639:5:9","nodeType":"YulTypedName","src":"15639:5:9","type":""},{"name":"len","nativeSrc":"15646:3:9","nodeType":"YulTypedName","src":"15646:3:9","type":""}],"returnVariables":[{"name":"length","nativeSrc":"15654:6:9","nodeType":"YulTypedName","src":"15654:6:9","type":""}],"src":"15595:97:9"},{"body":{"nativeSrc":"15726:152:9","nodeType":"YulBlock","src":"15726:152:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15743:1:9","nodeType":"YulLiteral","src":"15743:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"15746:77:9","nodeType":"YulLiteral","src":"15746:77:9","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"15736:6:9","nodeType":"YulIdentifier","src":"15736:6:9"},"nativeSrc":"15736:88:9","nodeType":"YulFunctionCall","src":"15736:88:9"},"nativeSrc":"15736:88:9","nodeType":"YulExpressionStatement","src":"15736:88:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15840:1:9","nodeType":"YulLiteral","src":"15840:1:9","type":"","value":"4"},{"kind":"number","nativeSrc":"15843:4:9","nodeType":"YulLiteral","src":"15843:4:9","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"15833:6:9","nodeType":"YulIdentifier","src":"15833:6:9"},"nativeSrc":"15833:15:9","nodeType":"YulFunctionCall","src":"15833:15:9"},"nativeSrc":"15833:15:9","nodeType":"YulExpressionStatement","src":"15833:15:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15864:1:9","nodeType":"YulLiteral","src":"15864:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"15867:4:9","nodeType":"YulLiteral","src":"15867:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15857:6:9","nodeType":"YulIdentifier","src":"15857:6:9"},"nativeSrc":"15857:15:9","nodeType":"YulFunctionCall","src":"15857:15:9"},"nativeSrc":"15857:15:9","nodeType":"YulExpressionStatement","src":"15857:15:9"}]},"name":"panic_error_0x22","nativeSrc":"15698:180:9","nodeType":"YulFunctionDefinition","src":"15698:180:9"},{"body":{"nativeSrc":"15935:269:9","nodeType":"YulBlock","src":"15935:269:9","statements":[{"nativeSrc":"15945:22:9","nodeType":"YulAssignment","src":"15945:22:9","value":{"arguments":[{"name":"data","nativeSrc":"15959:4:9","nodeType":"YulIdentifier","src":"15959:4:9"},{"kind":"number","nativeSrc":"15965:1:9","nodeType":"YulLiteral","src":"15965:1:9","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"15955:3:9","nodeType":"YulIdentifier","src":"15955:3:9"},"nativeSrc":"15955:12:9","nodeType":"YulFunctionCall","src":"15955:12:9"},"variableNames":[{"name":"length","nativeSrc":"15945:6:9","nodeType":"YulIdentifier","src":"15945:6:9"}]},{"nativeSrc":"15976:38:9","nodeType":"YulVariableDeclaration","src":"15976:38:9","value":{"arguments":[{"name":"data","nativeSrc":"16006:4:9","nodeType":"YulIdentifier","src":"16006:4:9"},{"kind":"number","nativeSrc":"16012:1:9","nodeType":"YulLiteral","src":"16012:1:9","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"16002:3:9","nodeType":"YulIdentifier","src":"16002:3:9"},"nativeSrc":"16002:12:9","nodeType":"YulFunctionCall","src":"16002:12:9"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"15980:18:9","nodeType":"YulTypedName","src":"15980:18:9","type":""}]},{"body":{"nativeSrc":"16053:51:9","nodeType":"YulBlock","src":"16053:51:9","statements":[{"nativeSrc":"16067:27:9","nodeType":"YulAssignment","src":"16067:27:9","value":{"arguments":[{"name":"length","nativeSrc":"16081:6:9","nodeType":"YulIdentifier","src":"16081:6:9"},{"kind":"number","nativeSrc":"16089:4:9","nodeType":"YulLiteral","src":"16089:4:9","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"16077:3:9","nodeType":"YulIdentifier","src":"16077:3:9"},"nativeSrc":"16077:17:9","nodeType":"YulFunctionCall","src":"16077:17:9"},"variableNames":[{"name":"length","nativeSrc":"16067:6:9","nodeType":"YulIdentifier","src":"16067:6:9"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"16033:18:9","nodeType":"YulIdentifier","src":"16033:18:9"}],"functionName":{"name":"iszero","nativeSrc":"16026:6:9","nodeType":"YulIdentifier","src":"16026:6:9"},"nativeSrc":"16026:26:9","nodeType":"YulFunctionCall","src":"16026:26:9"},"nativeSrc":"16023:81:9","nodeType":"YulIf","src":"16023:81:9"},{"body":{"nativeSrc":"16156:42:9","nodeType":"YulBlock","src":"16156:42:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"16170:16:9","nodeType":"YulIdentifier","src":"16170:16:9"},"nativeSrc":"16170:18:9","nodeType":"YulFunctionCall","src":"16170:18:9"},"nativeSrc":"16170:18:9","nodeType":"YulExpressionStatement","src":"16170:18:9"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"16120:18:9","nodeType":"YulIdentifier","src":"16120:18:9"},{"arguments":[{"name":"length","nativeSrc":"16143:6:9","nodeType":"YulIdentifier","src":"16143:6:9"},{"kind":"number","nativeSrc":"16151:2:9","nodeType":"YulLiteral","src":"16151:2:9","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"16140:2:9","nodeType":"YulIdentifier","src":"16140:2:9"},"nativeSrc":"16140:14:9","nodeType":"YulFunctionCall","src":"16140:14:9"}],"functionName":{"name":"eq","nativeSrc":"16117:2:9","nodeType":"YulIdentifier","src":"16117:2:9"},"nativeSrc":"16117:38:9","nodeType":"YulFunctionCall","src":"16117:38:9"},"nativeSrc":"16114:84:9","nodeType":"YulIf","src":"16114:84:9"}]},"name":"extract_byte_array_length","nativeSrc":"15884:320:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"15919:4:9","nodeType":"YulTypedName","src":"15919:4:9","type":""}],"returnVariables":[{"name":"length","nativeSrc":"15928:6:9","nodeType":"YulTypedName","src":"15928:6:9","type":""}],"src":"15884:320:9"},{"body":{"nativeSrc":"16264:87:9","nodeType":"YulBlock","src":"16264:87:9","statements":[{"nativeSrc":"16274:11:9","nodeType":"YulAssignment","src":"16274:11:9","value":{"name":"ptr","nativeSrc":"16282:3:9","nodeType":"YulIdentifier","src":"16282:3:9"},"variableNames":[{"name":"data","nativeSrc":"16274:4:9","nodeType":"YulIdentifier","src":"16274:4:9"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16302:1:9","nodeType":"YulLiteral","src":"16302:1:9","type":"","value":"0"},{"name":"ptr","nativeSrc":"16305:3:9","nodeType":"YulIdentifier","src":"16305:3:9"}],"functionName":{"name":"mstore","nativeSrc":"16295:6:9","nodeType":"YulIdentifier","src":"16295:6:9"},"nativeSrc":"16295:14:9","nodeType":"YulFunctionCall","src":"16295:14:9"},"nativeSrc":"16295:14:9","nodeType":"YulExpressionStatement","src":"16295:14:9"},{"nativeSrc":"16318:26:9","nodeType":"YulAssignment","src":"16318:26:9","value":{"arguments":[{"kind":"number","nativeSrc":"16336:1:9","nodeType":"YulLiteral","src":"16336:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"16339:4:9","nodeType":"YulLiteral","src":"16339:4:9","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"16326:9:9","nodeType":"YulIdentifier","src":"16326:9:9"},"nativeSrc":"16326:18:9","nodeType":"YulFunctionCall","src":"16326:18:9"},"variableNames":[{"name":"data","nativeSrc":"16318:4:9","nodeType":"YulIdentifier","src":"16318:4:9"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"16210:141:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"16251:3:9","nodeType":"YulTypedName","src":"16251:3:9","type":""}],"returnVariables":[{"name":"data","nativeSrc":"16259:4:9","nodeType":"YulTypedName","src":"16259:4:9","type":""}],"src":"16210:141:9"},{"body":{"nativeSrc":"16401:49:9","nodeType":"YulBlock","src":"16401:49:9","statements":[{"nativeSrc":"16411:33:9","nodeType":"YulAssignment","src":"16411:33:9","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16429:5:9","nodeType":"YulIdentifier","src":"16429:5:9"},{"kind":"number","nativeSrc":"16436:2:9","nodeType":"YulLiteral","src":"16436:2:9","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"16425:3:9","nodeType":"YulIdentifier","src":"16425:3:9"},"nativeSrc":"16425:14:9","nodeType":"YulFunctionCall","src":"16425:14:9"},{"kind":"number","nativeSrc":"16441:2:9","nodeType":"YulLiteral","src":"16441:2:9","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"16421:3:9","nodeType":"YulIdentifier","src":"16421:3:9"},"nativeSrc":"16421:23:9","nodeType":"YulFunctionCall","src":"16421:23:9"},"variableNames":[{"name":"result","nativeSrc":"16411:6:9","nodeType":"YulIdentifier","src":"16411:6:9"}]}]},"name":"divide_by_32_ceil","nativeSrc":"16357:93:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16384:5:9","nodeType":"YulTypedName","src":"16384:5:9","type":""}],"returnVariables":[{"name":"result","nativeSrc":"16394:6:9","nodeType":"YulTypedName","src":"16394:6:9","type":""}],"src":"16357:93:9"},{"body":{"nativeSrc":"16509:54:9","nodeType":"YulBlock","src":"16509:54:9","statements":[{"nativeSrc":"16519:37:9","nodeType":"YulAssignment","src":"16519:37:9","value":{"arguments":[{"name":"bits","nativeSrc":"16544:4:9","nodeType":"YulIdentifier","src":"16544:4:9"},{"name":"value","nativeSrc":"16550:5:9","nodeType":"YulIdentifier","src":"16550:5:9"}],"functionName":{"name":"shl","nativeSrc":"16540:3:9","nodeType":"YulIdentifier","src":"16540:3:9"},"nativeSrc":"16540:16:9","nodeType":"YulFunctionCall","src":"16540:16:9"},"variableNames":[{"name":"newValue","nativeSrc":"16519:8:9","nodeType":"YulIdentifier","src":"16519:8:9"}]}]},"name":"shift_left_dynamic","nativeSrc":"16456:107:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"16484:4:9","nodeType":"YulTypedName","src":"16484:4:9","type":""},{"name":"value","nativeSrc":"16490:5:9","nodeType":"YulTypedName","src":"16490:5:9","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"16500:8:9","nodeType":"YulTypedName","src":"16500:8:9","type":""}],"src":"16456:107:9"},{"body":{"nativeSrc":"16645:317:9","nodeType":"YulBlock","src":"16645:317:9","statements":[{"nativeSrc":"16655:35:9","nodeType":"YulVariableDeclaration","src":"16655:35:9","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"16676:10:9","nodeType":"YulIdentifier","src":"16676:10:9"},{"kind":"number","nativeSrc":"16688:1:9","nodeType":"YulLiteral","src":"16688:1:9","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"16672:3:9","nodeType":"YulIdentifier","src":"16672:3:9"},"nativeSrc":"16672:18:9","nodeType":"YulFunctionCall","src":"16672:18:9"},"variables":[{"name":"shiftBits","nativeSrc":"16659:9:9","nodeType":"YulTypedName","src":"16659:9:9","type":""}]},{"nativeSrc":"16699:109:9","nodeType":"YulVariableDeclaration","src":"16699:109:9","value":{"arguments":[{"name":"shiftBits","nativeSrc":"16730:9:9","nodeType":"YulIdentifier","src":"16730:9:9"},{"kind":"number","nativeSrc":"16741:66:9","nodeType":"YulLiteral","src":"16741:66:9","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"16711:18:9","nodeType":"YulIdentifier","src":"16711:18:9"},"nativeSrc":"16711:97:9","nodeType":"YulFunctionCall","src":"16711:97:9"},"variables":[{"name":"mask","nativeSrc":"16703:4:9","nodeType":"YulTypedName","src":"16703:4:9","type":""}]},{"nativeSrc":"16817:51:9","nodeType":"YulAssignment","src":"16817:51:9","value":{"arguments":[{"name":"shiftBits","nativeSrc":"16848:9:9","nodeType":"YulIdentifier","src":"16848:9:9"},{"name":"toInsert","nativeSrc":"16859:8:9","nodeType":"YulIdentifier","src":"16859:8:9"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"16829:18:9","nodeType":"YulIdentifier","src":"16829:18:9"},"nativeSrc":"16829:39:9","nodeType":"YulFunctionCall","src":"16829:39:9"},"variableNames":[{"name":"toInsert","nativeSrc":"16817:8:9","nodeType":"YulIdentifier","src":"16817:8:9"}]},{"nativeSrc":"16877:30:9","nodeType":"YulAssignment","src":"16877:30:9","value":{"arguments":[{"name":"value","nativeSrc":"16890:5:9","nodeType":"YulIdentifier","src":"16890:5:9"},{"arguments":[{"name":"mask","nativeSrc":"16901:4:9","nodeType":"YulIdentifier","src":"16901:4:9"}],"functionName":{"name":"not","nativeSrc":"16897:3:9","nodeType":"YulIdentifier","src":"16897:3:9"},"nativeSrc":"16897:9:9","nodeType":"YulFunctionCall","src":"16897:9:9"}],"functionName":{"name":"and","nativeSrc":"16886:3:9","nodeType":"YulIdentifier","src":"16886:3:9"},"nativeSrc":"16886:21:9","nodeType":"YulFunctionCall","src":"16886:21:9"},"variableNames":[{"name":"value","nativeSrc":"16877:5:9","nodeType":"YulIdentifier","src":"16877:5:9"}]},{"nativeSrc":"16916:40:9","nodeType":"YulAssignment","src":"16916:40:9","value":{"arguments":[{"name":"value","nativeSrc":"16929:5:9","nodeType":"YulIdentifier","src":"16929:5:9"},{"arguments":[{"name":"toInsert","nativeSrc":"16940:8:9","nodeType":"YulIdentifier","src":"16940:8:9"},{"name":"mask","nativeSrc":"16950:4:9","nodeType":"YulIdentifier","src":"16950:4:9"}],"functionName":{"name":"and","nativeSrc":"16936:3:9","nodeType":"YulIdentifier","src":"16936:3:9"},"nativeSrc":"16936:19:9","nodeType":"YulFunctionCall","src":"16936:19:9"}],"functionName":{"name":"or","nativeSrc":"16926:2:9","nodeType":"YulIdentifier","src":"16926:2:9"},"nativeSrc":"16926:30:9","nodeType":"YulFunctionCall","src":"16926:30:9"},"variableNames":[{"name":"result","nativeSrc":"16916:6:9","nodeType":"YulIdentifier","src":"16916:6:9"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"16569:393:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16606:5:9","nodeType":"YulTypedName","src":"16606:5:9","type":""},{"name":"shiftBytes","nativeSrc":"16613:10:9","nodeType":"YulTypedName","src":"16613:10:9","type":""},{"name":"toInsert","nativeSrc":"16625:8:9","nodeType":"YulTypedName","src":"16625:8:9","type":""}],"returnVariables":[{"name":"result","nativeSrc":"16638:6:9","nodeType":"YulTypedName","src":"16638:6:9","type":""}],"src":"16569:393:9"},{"body":{"nativeSrc":"17013:32:9","nodeType":"YulBlock","src":"17013:32:9","statements":[{"nativeSrc":"17023:16:9","nodeType":"YulAssignment","src":"17023:16:9","value":{"name":"value","nativeSrc":"17034:5:9","nodeType":"YulIdentifier","src":"17034:5:9"},"variableNames":[{"name":"cleaned","nativeSrc":"17023:7:9","nodeType":"YulIdentifier","src":"17023:7:9"}]}]},"name":"cleanup_t_uint256","nativeSrc":"16968:77:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16995:5:9","nodeType":"YulTypedName","src":"16995:5:9","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"17005:7:9","nodeType":"YulTypedName","src":"17005:7:9","type":""}],"src":"16968:77:9"},{"body":{"nativeSrc":"17083:28:9","nodeType":"YulBlock","src":"17083:28:9","statements":[{"nativeSrc":"17093:12:9","nodeType":"YulAssignment","src":"17093:12:9","value":{"name":"value","nativeSrc":"17100:5:9","nodeType":"YulIdentifier","src":"17100:5:9"},"variableNames":[{"name":"ret","nativeSrc":"17093:3:9","nodeType":"YulIdentifier","src":"17093:3:9"}]}]},"name":"identity","nativeSrc":"17051:60:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17069:5:9","nodeType":"YulTypedName","src":"17069:5:9","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"17079:3:9","nodeType":"YulTypedName","src":"17079:3:9","type":""}],"src":"17051:60:9"},{"body":{"nativeSrc":"17177:82:9","nodeType":"YulBlock","src":"17177:82:9","statements":[{"nativeSrc":"17187:66:9","nodeType":"YulAssignment","src":"17187:66:9","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17245:5:9","nodeType":"YulIdentifier","src":"17245:5:9"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"17227:17:9","nodeType":"YulIdentifier","src":"17227:17:9"},"nativeSrc":"17227:24:9","nodeType":"YulFunctionCall","src":"17227:24:9"}],"functionName":{"name":"identity","nativeSrc":"17218:8:9","nodeType":"YulIdentifier","src":"17218:8:9"},"nativeSrc":"17218:34:9","nodeType":"YulFunctionCall","src":"17218:34:9"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"17200:17:9","nodeType":"YulIdentifier","src":"17200:17:9"},"nativeSrc":"17200:53:9","nodeType":"YulFunctionCall","src":"17200:53:9"},"variableNames":[{"name":"converted","nativeSrc":"17187:9:9","nodeType":"YulIdentifier","src":"17187:9:9"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"17117:142:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17157:5:9","nodeType":"YulTypedName","src":"17157:5:9","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"17167:9:9","nodeType":"YulTypedName","src":"17167:9:9","type":""}],"src":"17117:142:9"},{"body":{"nativeSrc":"17312:28:9","nodeType":"YulBlock","src":"17312:28:9","statements":[{"nativeSrc":"17322:12:9","nodeType":"YulAssignment","src":"17322:12:9","value":{"name":"value","nativeSrc":"17329:5:9","nodeType":"YulIdentifier","src":"17329:5:9"},"variableNames":[{"name":"ret","nativeSrc":"17322:3:9","nodeType":"YulIdentifier","src":"17322:3:9"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"17265:75:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17298:5:9","nodeType":"YulTypedName","src":"17298:5:9","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"17308:3:9","nodeType":"YulTypedName","src":"17308:3:9","type":""}],"src":"17265:75:9"},{"body":{"nativeSrc":"17422:193:9","nodeType":"YulBlock","src":"17422:193:9","statements":[{"nativeSrc":"17432:63:9","nodeType":"YulVariableDeclaration","src":"17432:63:9","value":{"arguments":[{"name":"value_0","nativeSrc":"17487:7:9","nodeType":"YulIdentifier","src":"17487:7:9"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"17456:30:9","nodeType":"YulIdentifier","src":"17456:30:9"},"nativeSrc":"17456:39:9","nodeType":"YulFunctionCall","src":"17456:39:9"},"variables":[{"name":"convertedValue_0","nativeSrc":"17436:16:9","nodeType":"YulTypedName","src":"17436:16:9","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"17511:4:9","nodeType":"YulIdentifier","src":"17511:4:9"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"17551:4:9","nodeType":"YulIdentifier","src":"17551:4:9"}],"functionName":{"name":"sload","nativeSrc":"17545:5:9","nodeType":"YulIdentifier","src":"17545:5:9"},"nativeSrc":"17545:11:9","nodeType":"YulFunctionCall","src":"17545:11:9"},{"name":"offset","nativeSrc":"17558:6:9","nodeType":"YulIdentifier","src":"17558:6:9"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"17590:16:9","nodeType":"YulIdentifier","src":"17590:16:9"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"17566:23:9","nodeType":"YulIdentifier","src":"17566:23:9"},"nativeSrc":"17566:41:9","nodeType":"YulFunctionCall","src":"17566:41:9"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"17517:27:9","nodeType":"YulIdentifier","src":"17517:27:9"},"nativeSrc":"17517:91:9","nodeType":"YulFunctionCall","src":"17517:91:9"}],"functionName":{"name":"sstore","nativeSrc":"17504:6:9","nodeType":"YulIdentifier","src":"17504:6:9"},"nativeSrc":"17504:105:9","nodeType":"YulFunctionCall","src":"17504:105:9"},"nativeSrc":"17504:105:9","nodeType":"YulExpressionStatement","src":"17504:105:9"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"17346:269:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"17399:4:9","nodeType":"YulTypedName","src":"17399:4:9","type":""},{"name":"offset","nativeSrc":"17405:6:9","nodeType":"YulTypedName","src":"17405:6:9","type":""},{"name":"value_0","nativeSrc":"17413:7:9","nodeType":"YulTypedName","src":"17413:7:9","type":""}],"src":"17346:269:9"},{"body":{"nativeSrc":"17670:24:9","nodeType":"YulBlock","src":"17670:24:9","statements":[{"nativeSrc":"17680:8:9","nodeType":"YulAssignment","src":"17680:8:9","value":{"kind":"number","nativeSrc":"17687:1:9","nodeType":"YulLiteral","src":"17687:1:9","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"17680:3:9","nodeType":"YulIdentifier","src":"17680:3:9"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"17621:73:9","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"17666:3:9","nodeType":"YulTypedName","src":"17666:3:9","type":""}],"src":"17621:73:9"},{"body":{"nativeSrc":"17753:136:9","nodeType":"YulBlock","src":"17753:136:9","statements":[{"nativeSrc":"17763:46:9","nodeType":"YulVariableDeclaration","src":"17763:46:9","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"17777:30:9","nodeType":"YulIdentifier","src":"17777:30:9"},"nativeSrc":"17777:32:9","nodeType":"YulFunctionCall","src":"17777:32:9"},"variables":[{"name":"zero_0","nativeSrc":"17767:6:9","nodeType":"YulTypedName","src":"17767:6:9","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"17862:4:9","nodeType":"YulIdentifier","src":"17862:4:9"},{"name":"offset","nativeSrc":"17868:6:9","nodeType":"YulIdentifier","src":"17868:6:9"},{"name":"zero_0","nativeSrc":"17876:6:9","nodeType":"YulIdentifier","src":"17876:6:9"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"17818:43:9","nodeType":"YulIdentifier","src":"17818:43:9"},"nativeSrc":"17818:65:9","nodeType":"YulFunctionCall","src":"17818:65:9"},"nativeSrc":"17818:65:9","nodeType":"YulExpressionStatement","src":"17818:65:9"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"17700:189:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"17739:4:9","nodeType":"YulTypedName","src":"17739:4:9","type":""},{"name":"offset","nativeSrc":"17745:6:9","nodeType":"YulTypedName","src":"17745:6:9","type":""}],"src":"17700:189:9"},{"body":{"nativeSrc":"17945:136:9","nodeType":"YulBlock","src":"17945:136:9","statements":[{"body":{"nativeSrc":"18012:63:9","nodeType":"YulBlock","src":"18012:63:9","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"18056:5:9","nodeType":"YulIdentifier","src":"18056:5:9"},{"kind":"number","nativeSrc":"18063:1:9","nodeType":"YulLiteral","src":"18063:1:9","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"18026:29:9","nodeType":"YulIdentifier","src":"18026:29:9"},"nativeSrc":"18026:39:9","nodeType":"YulFunctionCall","src":"18026:39:9"},"nativeSrc":"18026:39:9","nodeType":"YulExpressionStatement","src":"18026:39:9"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"17965:5:9","nodeType":"YulIdentifier","src":"17965:5:9"},{"name":"end","nativeSrc":"17972:3:9","nodeType":"YulIdentifier","src":"17972:3:9"}],"functionName":{"name":"lt","nativeSrc":"17962:2:9","nodeType":"YulIdentifier","src":"17962:2:9"},"nativeSrc":"17962:14:9","nodeType":"YulFunctionCall","src":"17962:14:9"},"nativeSrc":"17955:120:9","nodeType":"YulForLoop","post":{"nativeSrc":"17977:26:9","nodeType":"YulBlock","src":"17977:26:9","statements":[{"nativeSrc":"17979:22:9","nodeType":"YulAssignment","src":"17979:22:9","value":{"arguments":[{"name":"start","nativeSrc":"17992:5:9","nodeType":"YulIdentifier","src":"17992:5:9"},{"kind":"number","nativeSrc":"17999:1:9","nodeType":"YulLiteral","src":"17999:1:9","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"17988:3:9","nodeType":"YulIdentifier","src":"17988:3:9"},"nativeSrc":"17988:13:9","nodeType":"YulFunctionCall","src":"17988:13:9"},"variableNames":[{"name":"start","nativeSrc":"17979:5:9","nodeType":"YulIdentifier","src":"17979:5:9"}]}]},"pre":{"nativeSrc":"17959:2:9","nodeType":"YulBlock","src":"17959:2:9","statements":[]},"src":"17955:120:9"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"17895:186:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"17933:5:9","nodeType":"YulTypedName","src":"17933:5:9","type":""},{"name":"end","nativeSrc":"17940:3:9","nodeType":"YulTypedName","src":"17940:3:9","type":""}],"src":"17895:186:9"},{"body":{"nativeSrc":"18166:464:9","nodeType":"YulBlock","src":"18166:464:9","statements":[{"body":{"nativeSrc":"18192:431:9","nodeType":"YulBlock","src":"18192:431:9","statements":[{"nativeSrc":"18206:54:9","nodeType":"YulVariableDeclaration","src":"18206:54:9","value":{"arguments":[{"name":"array","nativeSrc":"18254:5:9","nodeType":"YulIdentifier","src":"18254:5:9"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"18222:31:9","nodeType":"YulIdentifier","src":"18222:31:9"},"nativeSrc":"18222:38:9","nodeType":"YulFunctionCall","src":"18222:38:9"},"variables":[{"name":"dataArea","nativeSrc":"18210:8:9","nodeType":"YulTypedName","src":"18210:8:9","type":""}]},{"nativeSrc":"18273:63:9","nodeType":"YulVariableDeclaration","src":"18273:63:9","value":{"arguments":[{"name":"dataArea","nativeSrc":"18296:8:9","nodeType":"YulIdentifier","src":"18296:8:9"},{"arguments":[{"name":"startIndex","nativeSrc":"18324:10:9","nodeType":"YulIdentifier","src":"18324:10:9"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"18306:17:9","nodeType":"YulIdentifier","src":"18306:17:9"},"nativeSrc":"18306:29:9","nodeType":"YulFunctionCall","src":"18306:29:9"}],"functionName":{"name":"add","nativeSrc":"18292:3:9","nodeType":"YulIdentifier","src":"18292:3:9"},"nativeSrc":"18292:44:9","nodeType":"YulFunctionCall","src":"18292:44:9"},"variables":[{"name":"deleteStart","nativeSrc":"18277:11:9","nodeType":"YulTypedName","src":"18277:11:9","type":""}]},{"body":{"nativeSrc":"18493:27:9","nodeType":"YulBlock","src":"18493:27:9","statements":[{"nativeSrc":"18495:23:9","nodeType":"YulAssignment","src":"18495:23:9","value":{"name":"dataArea","nativeSrc":"18510:8:9","nodeType":"YulIdentifier","src":"18510:8:9"},"variableNames":[{"name":"deleteStart","nativeSrc":"18495:11:9","nodeType":"YulIdentifier","src":"18495:11:9"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"18477:10:9","nodeType":"YulIdentifier","src":"18477:10:9"},{"kind":"number","nativeSrc":"18489:2:9","nodeType":"YulLiteral","src":"18489:2:9","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"18474:2:9","nodeType":"YulIdentifier","src":"18474:2:9"},"nativeSrc":"18474:18:9","nodeType":"YulFunctionCall","src":"18474:18:9"},"nativeSrc":"18471:49:9","nodeType":"YulIf","src":"18471:49:9"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"18562:11:9","nodeType":"YulIdentifier","src":"18562:11:9"},{"arguments":[{"name":"dataArea","nativeSrc":"18579:8:9","nodeType":"YulIdentifier","src":"18579:8:9"},{"arguments":[{"name":"len","nativeSrc":"18607:3:9","nodeType":"YulIdentifier","src":"18607:3:9"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"18589:17:9","nodeType":"YulIdentifier","src":"18589:17:9"},"nativeSrc":"18589:22:9","nodeType":"YulFunctionCall","src":"18589:22:9"}],"functionName":{"name":"add","nativeSrc":"18575:3:9","nodeType":"YulIdentifier","src":"18575:3:9"},"nativeSrc":"18575:37:9","nodeType":"YulFunctionCall","src":"18575:37:9"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"18533:28:9","nodeType":"YulIdentifier","src":"18533:28:9"},"nativeSrc":"18533:80:9","nodeType":"YulFunctionCall","src":"18533:80:9"},"nativeSrc":"18533:80:9","nodeType":"YulExpressionStatement","src":"18533:80:9"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"18183:3:9","nodeType":"YulIdentifier","src":"18183:3:9"},{"kind":"number","nativeSrc":"18188:2:9","nodeType":"YulLiteral","src":"18188:2:9","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"18180:2:9","nodeType":"YulIdentifier","src":"18180:2:9"},"nativeSrc":"18180:11:9","nodeType":"YulFunctionCall","src":"18180:11:9"},"nativeSrc":"18177:446:9","nodeType":"YulIf","src":"18177:446:9"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"18087:543:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"18142:5:9","nodeType":"YulTypedName","src":"18142:5:9","type":""},{"name":"len","nativeSrc":"18149:3:9","nodeType":"YulTypedName","src":"18149:3:9","type":""},{"name":"startIndex","nativeSrc":"18154:10:9","nodeType":"YulTypedName","src":"18154:10:9","type":""}],"src":"18087:543:9"},{"body":{"nativeSrc":"18699:54:9","nodeType":"YulBlock","src":"18699:54:9","statements":[{"nativeSrc":"18709:37:9","nodeType":"YulAssignment","src":"18709:37:9","value":{"arguments":[{"name":"bits","nativeSrc":"18734:4:9","nodeType":"YulIdentifier","src":"18734:4:9"},{"name":"value","nativeSrc":"18740:5:9","nodeType":"YulIdentifier","src":"18740:5:9"}],"functionName":{"name":"shr","nativeSrc":"18730:3:9","nodeType":"YulIdentifier","src":"18730:3:9"},"nativeSrc":"18730:16:9","nodeType":"YulFunctionCall","src":"18730:16:9"},"variableNames":[{"name":"newValue","nativeSrc":"18709:8:9","nodeType":"YulIdentifier","src":"18709:8:9"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"18636:117:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"18674:4:9","nodeType":"YulTypedName","src":"18674:4:9","type":""},{"name":"value","nativeSrc":"18680:5:9","nodeType":"YulTypedName","src":"18680:5:9","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"18690:8:9","nodeType":"YulTypedName","src":"18690:8:9","type":""}],"src":"18636:117:9"},{"body":{"nativeSrc":"18810:118:9","nodeType":"YulBlock","src":"18810:118:9","statements":[{"nativeSrc":"18820:68:9","nodeType":"YulVariableDeclaration","src":"18820:68:9","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18869:1:9","nodeType":"YulLiteral","src":"18869:1:9","type":"","value":"8"},{"name":"bytes","nativeSrc":"18872:5:9","nodeType":"YulIdentifier","src":"18872:5:9"}],"functionName":{"name":"mul","nativeSrc":"18865:3:9","nodeType":"YulIdentifier","src":"18865:3:9"},"nativeSrc":"18865:13:9","nodeType":"YulFunctionCall","src":"18865:13:9"},{"arguments":[{"kind":"number","nativeSrc":"18884:1:9","nodeType":"YulLiteral","src":"18884:1:9","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"18880:3:9","nodeType":"YulIdentifier","src":"18880:3:9"},"nativeSrc":"18880:6:9","nodeType":"YulFunctionCall","src":"18880:6:9"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"18836:28:9","nodeType":"YulIdentifier","src":"18836:28:9"},"nativeSrc":"18836:51:9","nodeType":"YulFunctionCall","src":"18836:51:9"}],"functionName":{"name":"not","nativeSrc":"18832:3:9","nodeType":"YulIdentifier","src":"18832:3:9"},"nativeSrc":"18832:56:9","nodeType":"YulFunctionCall","src":"18832:56:9"},"variables":[{"name":"mask","nativeSrc":"18824:4:9","nodeType":"YulTypedName","src":"18824:4:9","type":""}]},{"nativeSrc":"18897:25:9","nodeType":"YulAssignment","src":"18897:25:9","value":{"arguments":[{"name":"data","nativeSrc":"18911:4:9","nodeType":"YulIdentifier","src":"18911:4:9"},{"name":"mask","nativeSrc":"18917:4:9","nodeType":"YulIdentifier","src":"18917:4:9"}],"functionName":{"name":"and","nativeSrc":"18907:3:9","nodeType":"YulIdentifier","src":"18907:3:9"},"nativeSrc":"18907:15:9","nodeType":"YulFunctionCall","src":"18907:15:9"},"variableNames":[{"name":"result","nativeSrc":"18897:6:9","nodeType":"YulIdentifier","src":"18897:6:9"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"18759:169:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"18787:4:9","nodeType":"YulTypedName","src":"18787:4:9","type":""},{"name":"bytes","nativeSrc":"18793:5:9","nodeType":"YulTypedName","src":"18793:5:9","type":""}],"returnVariables":[{"name":"result","nativeSrc":"18803:6:9","nodeType":"YulTypedName","src":"18803:6:9","type":""}],"src":"18759:169:9"},{"body":{"nativeSrc":"19014:214:9","nodeType":"YulBlock","src":"19014:214:9","statements":[{"nativeSrc":"19147:37:9","nodeType":"YulAssignment","src":"19147:37:9","value":{"arguments":[{"name":"data","nativeSrc":"19174:4:9","nodeType":"YulIdentifier","src":"19174:4:9"},{"name":"len","nativeSrc":"19180:3:9","nodeType":"YulIdentifier","src":"19180:3:9"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"19155:18:9","nodeType":"YulIdentifier","src":"19155:18:9"},"nativeSrc":"19155:29:9","nodeType":"YulFunctionCall","src":"19155:29:9"},"variableNames":[{"name":"data","nativeSrc":"19147:4:9","nodeType":"YulIdentifier","src":"19147:4:9"}]},{"nativeSrc":"19193:29:9","nodeType":"YulAssignment","src":"19193:29:9","value":{"arguments":[{"name":"data","nativeSrc":"19204:4:9","nodeType":"YulIdentifier","src":"19204:4:9"},{"arguments":[{"kind":"number","nativeSrc":"19214:1:9","nodeType":"YulLiteral","src":"19214:1:9","type":"","value":"2"},{"name":"len","nativeSrc":"19217:3:9","nodeType":"YulIdentifier","src":"19217:3:9"}],"functionName":{"name":"mul","nativeSrc":"19210:3:9","nodeType":"YulIdentifier","src":"19210:3:9"},"nativeSrc":"19210:11:9","nodeType":"YulFunctionCall","src":"19210:11:9"}],"functionName":{"name":"or","nativeSrc":"19201:2:9","nodeType":"YulIdentifier","src":"19201:2:9"},"nativeSrc":"19201:21:9","nodeType":"YulFunctionCall","src":"19201:21:9"},"variableNames":[{"name":"used","nativeSrc":"19193:4:9","nodeType":"YulIdentifier","src":"19193:4:9"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"18933:295:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"18995:4:9","nodeType":"YulTypedName","src":"18995:4:9","type":""},{"name":"len","nativeSrc":"19001:3:9","nodeType":"YulTypedName","src":"19001:3:9","type":""}],"returnVariables":[{"name":"used","nativeSrc":"19009:4:9","nodeType":"YulTypedName","src":"19009:4:9","type":""}],"src":"18933:295:9"},{"body":{"nativeSrc":"19332:1304:9","nodeType":"YulBlock","src":"19332:1304:9","statements":[{"nativeSrc":"19343:58:9","nodeType":"YulVariableDeclaration","src":"19343:58:9","value":{"arguments":[{"name":"src","nativeSrc":"19392:3:9","nodeType":"YulIdentifier","src":"19392:3:9"},{"name":"len","nativeSrc":"19397:3:9","nodeType":"YulIdentifier","src":"19397:3:9"}],"functionName":{"name":"array_length_t_string_calldata_ptr","nativeSrc":"19357:34:9","nodeType":"YulIdentifier","src":"19357:34:9"},"nativeSrc":"19357:44:9","nodeType":"YulFunctionCall","src":"19357:44:9"},"variables":[{"name":"newLen","nativeSrc":"19347:6:9","nodeType":"YulTypedName","src":"19347:6:9","type":""}]},{"body":{"nativeSrc":"19486:22:9","nodeType":"YulBlock","src":"19486:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"19488:16:9","nodeType":"YulIdentifier","src":"19488:16:9"},"nativeSrc":"19488:18:9","nodeType":"YulFunctionCall","src":"19488:18:9"},"nativeSrc":"19488:18:9","nodeType":"YulExpressionStatement","src":"19488:18:9"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"19458:6:9","nodeType":"YulIdentifier","src":"19458:6:9"},{"kind":"number","nativeSrc":"19466:18:9","nodeType":"YulLiteral","src":"19466:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19455:2:9","nodeType":"YulIdentifier","src":"19455:2:9"},"nativeSrc":"19455:30:9","nodeType":"YulFunctionCall","src":"19455:30:9"},"nativeSrc":"19452:56:9","nodeType":"YulIf","src":"19452:56:9"},{"nativeSrc":"19518:52:9","nodeType":"YulVariableDeclaration","src":"19518:52:9","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"19564:4:9","nodeType":"YulIdentifier","src":"19564:4:9"}],"functionName":{"name":"sload","nativeSrc":"19558:5:9","nodeType":"YulIdentifier","src":"19558:5:9"},"nativeSrc":"19558:11:9","nodeType":"YulFunctionCall","src":"19558:11:9"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"19532:25:9","nodeType":"YulIdentifier","src":"19532:25:9"},"nativeSrc":"19532:38:9","nodeType":"YulFunctionCall","src":"19532:38:9"},"variables":[{"name":"oldLen","nativeSrc":"19522:6:9","nodeType":"YulTypedName","src":"19522:6:9","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"19663:4:9","nodeType":"YulIdentifier","src":"19663:4:9"},{"name":"oldLen","nativeSrc":"19669:6:9","nodeType":"YulIdentifier","src":"19669:6:9"},{"name":"newLen","nativeSrc":"19677:6:9","nodeType":"YulIdentifier","src":"19677:6:9"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"19617:45:9","nodeType":"YulIdentifier","src":"19617:45:9"},"nativeSrc":"19617:67:9","nodeType":"YulFunctionCall","src":"19617:67:9"},"nativeSrc":"19617:67:9","nodeType":"YulExpressionStatement","src":"19617:67:9"},{"nativeSrc":"19694:18:9","nodeType":"YulVariableDeclaration","src":"19694:18:9","value":{"kind":"number","nativeSrc":"19711:1:9","nodeType":"YulLiteral","src":"19711:1:9","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"19698:9:9","nodeType":"YulTypedName","src":"19698:9:9","type":""}]},{"cases":[{"body":{"nativeSrc":"19759:625:9","nodeType":"YulBlock","src":"19759:625:9","statements":[{"nativeSrc":"19773:37:9","nodeType":"YulVariableDeclaration","src":"19773:37:9","value":{"arguments":[{"name":"newLen","nativeSrc":"19792:6:9","nodeType":"YulIdentifier","src":"19792:6:9"},{"arguments":[{"kind":"number","nativeSrc":"19804:4:9","nodeType":"YulLiteral","src":"19804:4:9","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"19800:3:9","nodeType":"YulIdentifier","src":"19800:3:9"},"nativeSrc":"19800:9:9","nodeType":"YulFunctionCall","src":"19800:9:9"}],"functionName":{"name":"and","nativeSrc":"19788:3:9","nodeType":"YulIdentifier","src":"19788:3:9"},"nativeSrc":"19788:22:9","nodeType":"YulFunctionCall","src":"19788:22:9"},"variables":[{"name":"loopEnd","nativeSrc":"19777:7:9","nodeType":"YulTypedName","src":"19777:7:9","type":""}]},{"nativeSrc":"19824:51:9","nodeType":"YulVariableDeclaration","src":"19824:51:9","value":{"arguments":[{"name":"slot","nativeSrc":"19870:4:9","nodeType":"YulIdentifier","src":"19870:4:9"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"19838:31:9","nodeType":"YulIdentifier","src":"19838:31:9"},"nativeSrc":"19838:37:9","nodeType":"YulFunctionCall","src":"19838:37:9"},"variables":[{"name":"dstPtr","nativeSrc":"19828:6:9","nodeType":"YulTypedName","src":"19828:6:9","type":""}]},{"nativeSrc":"19888:10:9","nodeType":"YulVariableDeclaration","src":"19888:10:9","value":{"kind":"number","nativeSrc":"19897:1:9","nodeType":"YulLiteral","src":"19897:1:9","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"19892:1:9","nodeType":"YulTypedName","src":"19892:1:9","type":""}]},{"body":{"nativeSrc":"19956:170:9","nodeType":"YulBlock","src":"19956:170:9","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"19981:6:9","nodeType":"YulIdentifier","src":"19981:6:9"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20006:3:9","nodeType":"YulIdentifier","src":"20006:3:9"},{"name":"srcOffset","nativeSrc":"20011:9:9","nodeType":"YulIdentifier","src":"20011:9:9"}],"functionName":{"name":"add","nativeSrc":"20002:3:9","nodeType":"YulIdentifier","src":"20002:3:9"},"nativeSrc":"20002:19:9","nodeType":"YulFunctionCall","src":"20002:19:9"}],"functionName":{"name":"calldataload","nativeSrc":"19989:12:9","nodeType":"YulIdentifier","src":"19989:12:9"},"nativeSrc":"19989:33:9","nodeType":"YulFunctionCall","src":"19989:33:9"}],"functionName":{"name":"sstore","nativeSrc":"19974:6:9","nodeType":"YulIdentifier","src":"19974:6:9"},"nativeSrc":"19974:49:9","nodeType":"YulFunctionCall","src":"19974:49:9"},"nativeSrc":"19974:49:9","nodeType":"YulExpressionStatement","src":"19974:49:9"},{"nativeSrc":"20040:24:9","nodeType":"YulAssignment","src":"20040:24:9","value":{"arguments":[{"name":"dstPtr","nativeSrc":"20054:6:9","nodeType":"YulIdentifier","src":"20054:6:9"},{"kind":"number","nativeSrc":"20062:1:9","nodeType":"YulLiteral","src":"20062:1:9","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20050:3:9","nodeType":"YulIdentifier","src":"20050:3:9"},"nativeSrc":"20050:14:9","nodeType":"YulFunctionCall","src":"20050:14:9"},"variableNames":[{"name":"dstPtr","nativeSrc":"20040:6:9","nodeType":"YulIdentifier","src":"20040:6:9"}]},{"nativeSrc":"20081:31:9","nodeType":"YulAssignment","src":"20081:31:9","value":{"arguments":[{"name":"srcOffset","nativeSrc":"20098:9:9","nodeType":"YulIdentifier","src":"20098:9:9"},{"kind":"number","nativeSrc":"20109:2:9","nodeType":"YulLiteral","src":"20109:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20094:3:9","nodeType":"YulIdentifier","src":"20094:3:9"},"nativeSrc":"20094:18:9","nodeType":"YulFunctionCall","src":"20094:18:9"},"variableNames":[{"name":"srcOffset","nativeSrc":"20081:9:9","nodeType":"YulIdentifier","src":"20081:9:9"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"19922:1:9","nodeType":"YulIdentifier","src":"19922:1:9"},{"name":"loopEnd","nativeSrc":"19925:7:9","nodeType":"YulIdentifier","src":"19925:7:9"}],"functionName":{"name":"lt","nativeSrc":"19919:2:9","nodeType":"YulIdentifier","src":"19919:2:9"},"nativeSrc":"19919:14:9","nodeType":"YulFunctionCall","src":"19919:14:9"},"nativeSrc":"19911:215:9","nodeType":"YulForLoop","post":{"nativeSrc":"19934:21:9","nodeType":"YulBlock","src":"19934:21:9","statements":[{"nativeSrc":"19936:17:9","nodeType":"YulAssignment","src":"19936:17:9","value":{"arguments":[{"name":"i","nativeSrc":"19945:1:9","nodeType":"YulIdentifier","src":"19945:1:9"},{"kind":"number","nativeSrc":"19948:4:9","nodeType":"YulLiteral","src":"19948:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19941:3:9","nodeType":"YulIdentifier","src":"19941:3:9"},"nativeSrc":"19941:12:9","nodeType":"YulFunctionCall","src":"19941:12:9"},"variableNames":[{"name":"i","nativeSrc":"19936:1:9","nodeType":"YulIdentifier","src":"19936:1:9"}]}]},"pre":{"nativeSrc":"19915:3:9","nodeType":"YulBlock","src":"19915:3:9","statements":[]},"src":"19911:215:9"},{"body":{"nativeSrc":"20162:163:9","nodeType":"YulBlock","src":"20162:163:9","statements":[{"nativeSrc":"20180:50:9","nodeType":"YulVariableDeclaration","src":"20180:50:9","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20214:3:9","nodeType":"YulIdentifier","src":"20214:3:9"},{"name":"srcOffset","nativeSrc":"20219:9:9","nodeType":"YulIdentifier","src":"20219:9:9"}],"functionName":{"name":"add","nativeSrc":"20210:3:9","nodeType":"YulIdentifier","src":"20210:3:9"},"nativeSrc":"20210:19:9","nodeType":"YulFunctionCall","src":"20210:19:9"}],"functionName":{"name":"calldataload","nativeSrc":"20197:12:9","nodeType":"YulIdentifier","src":"20197:12:9"},"nativeSrc":"20197:33:9","nodeType":"YulFunctionCall","src":"20197:33:9"},"variables":[{"name":"lastValue","nativeSrc":"20184:9:9","nodeType":"YulTypedName","src":"20184:9:9","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"20254:6:9","nodeType":"YulIdentifier","src":"20254:6:9"},{"arguments":[{"name":"lastValue","nativeSrc":"20281:9:9","nodeType":"YulIdentifier","src":"20281:9:9"},{"arguments":[{"name":"newLen","nativeSrc":"20296:6:9","nodeType":"YulIdentifier","src":"20296:6:9"},{"kind":"number","nativeSrc":"20304:4:9","nodeType":"YulLiteral","src":"20304:4:9","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"20292:3:9","nodeType":"YulIdentifier","src":"20292:3:9"},"nativeSrc":"20292:17:9","nodeType":"YulFunctionCall","src":"20292:17:9"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"20262:18:9","nodeType":"YulIdentifier","src":"20262:18:9"},"nativeSrc":"20262:48:9","nodeType":"YulFunctionCall","src":"20262:48:9"}],"functionName":{"name":"sstore","nativeSrc":"20247:6:9","nodeType":"YulIdentifier","src":"20247:6:9"},"nativeSrc":"20247:64:9","nodeType":"YulFunctionCall","src":"20247:64:9"},"nativeSrc":"20247:64:9","nodeType":"YulExpressionStatement","src":"20247:64:9"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"20145:7:9","nodeType":"YulIdentifier","src":"20145:7:9"},{"name":"newLen","nativeSrc":"20154:6:9","nodeType":"YulIdentifier","src":"20154:6:9"}],"functionName":{"name":"lt","nativeSrc":"20142:2:9","nodeType":"YulIdentifier","src":"20142:2:9"},"nativeSrc":"20142:19:9","nodeType":"YulFunctionCall","src":"20142:19:9"},"nativeSrc":"20139:186:9","nodeType":"YulIf","src":"20139:186:9"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"20345:4:9","nodeType":"YulIdentifier","src":"20345:4:9"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"20359:6:9","nodeType":"YulIdentifier","src":"20359:6:9"},{"kind":"number","nativeSrc":"20367:1:9","nodeType":"YulLiteral","src":"20367:1:9","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"20355:3:9","nodeType":"YulIdentifier","src":"20355:3:9"},"nativeSrc":"20355:14:9","nodeType":"YulFunctionCall","src":"20355:14:9"},{"kind":"number","nativeSrc":"20371:1:9","nodeType":"YulLiteral","src":"20371:1:9","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20351:3:9","nodeType":"YulIdentifier","src":"20351:3:9"},"nativeSrc":"20351:22:9","nodeType":"YulFunctionCall","src":"20351:22:9"}],"functionName":{"name":"sstore","nativeSrc":"20338:6:9","nodeType":"YulIdentifier","src":"20338:6:9"},"nativeSrc":"20338:36:9","nodeType":"YulFunctionCall","src":"20338:36:9"},"nativeSrc":"20338:36:9","nodeType":"YulExpressionStatement","src":"20338:36:9"}]},"nativeSrc":"19752:632:9","nodeType":"YulCase","src":"19752:632:9","value":{"kind":"number","nativeSrc":"19757:1:9","nodeType":"YulLiteral","src":"19757:1:9","type":"","value":"1"}},{"body":{"nativeSrc":"20401:229:9","nodeType":"YulBlock","src":"20401:229:9","statements":[{"nativeSrc":"20415:14:9","nodeType":"YulVariableDeclaration","src":"20415:14:9","value":{"kind":"number","nativeSrc":"20428:1:9","nodeType":"YulLiteral","src":"20428:1:9","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"20419:5:9","nodeType":"YulTypedName","src":"20419:5:9","type":""}]},{"body":{"nativeSrc":"20452:74:9","nodeType":"YulBlock","src":"20452:74:9","statements":[{"nativeSrc":"20470:42:9","nodeType":"YulAssignment","src":"20470:42:9","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20496:3:9","nodeType":"YulIdentifier","src":"20496:3:9"},{"name":"srcOffset","nativeSrc":"20501:9:9","nodeType":"YulIdentifier","src":"20501:9:9"}],"functionName":{"name":"add","nativeSrc":"20492:3:9","nodeType":"YulIdentifier","src":"20492:3:9"},"nativeSrc":"20492:19:9","nodeType":"YulFunctionCall","src":"20492:19:9"}],"functionName":{"name":"calldataload","nativeSrc":"20479:12:9","nodeType":"YulIdentifier","src":"20479:12:9"},"nativeSrc":"20479:33:9","nodeType":"YulFunctionCall","src":"20479:33:9"},"variableNames":[{"name":"value","nativeSrc":"20470:5:9","nodeType":"YulIdentifier","src":"20470:5:9"}]}]},"condition":{"name":"newLen","nativeSrc":"20445:6:9","nodeType":"YulIdentifier","src":"20445:6:9"},"nativeSrc":"20442:84:9","nodeType":"YulIf","src":"20442:84:9"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"20546:4:9","nodeType":"YulIdentifier","src":"20546:4:9"},{"arguments":[{"name":"value","nativeSrc":"20605:5:9","nodeType":"YulIdentifier","src":"20605:5:9"},{"name":"newLen","nativeSrc":"20612:6:9","nodeType":"YulIdentifier","src":"20612:6:9"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"20552:52:9","nodeType":"YulIdentifier","src":"20552:52:9"},"nativeSrc":"20552:67:9","nodeType":"YulFunctionCall","src":"20552:67:9"}],"functionName":{"name":"sstore","nativeSrc":"20539:6:9","nodeType":"YulIdentifier","src":"20539:6:9"},"nativeSrc":"20539:81:9","nodeType":"YulFunctionCall","src":"20539:81:9"},"nativeSrc":"20539:81:9","nodeType":"YulExpressionStatement","src":"20539:81:9"}]},"nativeSrc":"20393:237:9","nodeType":"YulCase","src":"20393:237:9","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"19732:6:9","nodeType":"YulIdentifier","src":"19732:6:9"},{"kind":"number","nativeSrc":"19740:2:9","nodeType":"YulLiteral","src":"19740:2:9","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"19729:2:9","nodeType":"YulIdentifier","src":"19729:2:9"},"nativeSrc":"19729:14:9","nodeType":"YulFunctionCall","src":"19729:14:9"},"nativeSrc":"19722:908:9","nodeType":"YulSwitch","src":"19722:908:9"}]},"name":"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage","nativeSrc":"19233:1403:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"19316:4:9","nodeType":"YulTypedName","src":"19316:4:9","type":""},{"name":"src","nativeSrc":"19322:3:9","nodeType":"YulTypedName","src":"19322:3:9","type":""},{"name":"len","nativeSrc":"19327:3:9","nodeType":"YulTypedName","src":"19327:3:9","type":""}],"src":"19233:1403:9"},{"body":{"nativeSrc":"20768:215:9","nodeType":"YulBlock","src":"20768:215:9","statements":[{"nativeSrc":"20778:78:9","nodeType":"YulAssignment","src":"20778:78:9","value":{"arguments":[{"name":"pos","nativeSrc":"20844:3:9","nodeType":"YulIdentifier","src":"20844:3:9"},{"name":"length","nativeSrc":"20849:6:9","nodeType":"YulIdentifier","src":"20849:6:9"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"20785:58:9","nodeType":"YulIdentifier","src":"20785:58:9"},"nativeSrc":"20785:71:9","nodeType":"YulFunctionCall","src":"20785:71:9"},"variableNames":[{"name":"pos","nativeSrc":"20778:3:9","nodeType":"YulIdentifier","src":"20778:3:9"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"20903:5:9","nodeType":"YulIdentifier","src":"20903:5:9"},{"name":"pos","nativeSrc":"20910:3:9","nodeType":"YulIdentifier","src":"20910:3:9"},{"name":"length","nativeSrc":"20915:6:9","nodeType":"YulIdentifier","src":"20915:6:9"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"20866:36:9","nodeType":"YulIdentifier","src":"20866:36:9"},"nativeSrc":"20866:56:9","nodeType":"YulFunctionCall","src":"20866:56:9"},"nativeSrc":"20866:56:9","nodeType":"YulExpressionStatement","src":"20866:56:9"},{"nativeSrc":"20931:46:9","nodeType":"YulAssignment","src":"20931:46:9","value":{"arguments":[{"name":"pos","nativeSrc":"20942:3:9","nodeType":"YulIdentifier","src":"20942:3:9"},{"arguments":[{"name":"length","nativeSrc":"20969:6:9","nodeType":"YulIdentifier","src":"20969:6:9"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"20947:21:9","nodeType":"YulIdentifier","src":"20947:21:9"},"nativeSrc":"20947:29:9","nodeType":"YulFunctionCall","src":"20947:29:9"}],"functionName":{"name":"add","nativeSrc":"20938:3:9","nodeType":"YulIdentifier","src":"20938:3:9"},"nativeSrc":"20938:39:9","nodeType":"YulFunctionCall","src":"20938:39:9"},"variableNames":[{"name":"end","nativeSrc":"20931:3:9","nodeType":"YulIdentifier","src":"20931:3:9"}]}]},"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"20666:317:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"20741:5:9","nodeType":"YulTypedName","src":"20741:5:9","type":""},{"name":"length","nativeSrc":"20748:6:9","nodeType":"YulTypedName","src":"20748:6:9","type":""},{"name":"pos","nativeSrc":"20756:3:9","nodeType":"YulTypedName","src":"20756:3:9","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20764:3:9","nodeType":"YulTypedName","src":"20764:3:9","type":""}],"src":"20666:317:9"},{"body":{"nativeSrc":"21117:205:9","nodeType":"YulBlock","src":"21117:205:9","statements":[{"nativeSrc":"21127:26:9","nodeType":"YulAssignment","src":"21127:26:9","value":{"arguments":[{"name":"headStart","nativeSrc":"21139:9:9","nodeType":"YulIdentifier","src":"21139:9:9"},{"kind":"number","nativeSrc":"21150:2:9","nodeType":"YulLiteral","src":"21150:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21135:3:9","nodeType":"YulIdentifier","src":"21135:3:9"},"nativeSrc":"21135:18:9","nodeType":"YulFunctionCall","src":"21135:18:9"},"variableNames":[{"name":"tail","nativeSrc":"21127:4:9","nodeType":"YulIdentifier","src":"21127:4:9"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21174:9:9","nodeType":"YulIdentifier","src":"21174:9:9"},{"kind":"number","nativeSrc":"21185:1:9","nodeType":"YulLiteral","src":"21185:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21170:3:9","nodeType":"YulIdentifier","src":"21170:3:9"},"nativeSrc":"21170:17:9","nodeType":"YulFunctionCall","src":"21170:17:9"},{"arguments":[{"name":"tail","nativeSrc":"21193:4:9","nodeType":"YulIdentifier","src":"21193:4:9"},{"name":"headStart","nativeSrc":"21199:9:9","nodeType":"YulIdentifier","src":"21199:9:9"}],"functionName":{"name":"sub","nativeSrc":"21189:3:9","nodeType":"YulIdentifier","src":"21189:3:9"},"nativeSrc":"21189:20:9","nodeType":"YulFunctionCall","src":"21189:20:9"}],"functionName":{"name":"mstore","nativeSrc":"21163:6:9","nodeType":"YulIdentifier","src":"21163:6:9"},"nativeSrc":"21163:47:9","nodeType":"YulFunctionCall","src":"21163:47:9"},"nativeSrc":"21163:47:9","nodeType":"YulExpressionStatement","src":"21163:47:9"},{"nativeSrc":"21219:96:9","nodeType":"YulAssignment","src":"21219:96:9","value":{"arguments":[{"name":"value0","nativeSrc":"21293:6:9","nodeType":"YulIdentifier","src":"21293:6:9"},{"name":"value1","nativeSrc":"21301:6:9","nodeType":"YulIdentifier","src":"21301:6:9"},{"name":"tail","nativeSrc":"21310:4:9","nodeType":"YulIdentifier","src":"21310:4:9"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"21227:65:9","nodeType":"YulIdentifier","src":"21227:65:9"},"nativeSrc":"21227:88:9","nodeType":"YulFunctionCall","src":"21227:88:9"},"variableNames":[{"name":"tail","nativeSrc":"21219:4:9","nodeType":"YulIdentifier","src":"21219:4:9"}]}]},"name":"abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20989:333:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21081:9:9","nodeType":"YulTypedName","src":"21081:9:9","type":""},{"name":"value1","nativeSrc":"21093:6:9","nodeType":"YulTypedName","src":"21093:6:9","type":""},{"name":"value0","nativeSrc":"21101:6:9","nodeType":"YulTypedName","src":"21101:6:9","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21112:4:9","nodeType":"YulTypedName","src":"21112:4:9","type":""}],"src":"20989:333:9"},{"body":{"nativeSrc":"21393:53:9","nodeType":"YulBlock","src":"21393:53:9","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"21410:3:9","nodeType":"YulIdentifier","src":"21410:3:9"},{"arguments":[{"name":"value","nativeSrc":"21433:5:9","nodeType":"YulIdentifier","src":"21433:5:9"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"21415:17:9","nodeType":"YulIdentifier","src":"21415:17:9"},"nativeSrc":"21415:24:9","nodeType":"YulFunctionCall","src":"21415:24:9"}],"functionName":{"name":"mstore","nativeSrc":"21403:6:9","nodeType":"YulIdentifier","src":"21403:6:9"},"nativeSrc":"21403:37:9","nodeType":"YulFunctionCall","src":"21403:37:9"},"nativeSrc":"21403:37:9","nodeType":"YulExpressionStatement","src":"21403:37:9"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21328:118:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21381:5:9","nodeType":"YulTypedName","src":"21381:5:9","type":""},{"name":"pos","nativeSrc":"21388:3:9","nodeType":"YulTypedName","src":"21388:3:9","type":""}],"src":"21328:118:9"},{"body":{"nativeSrc":"21578:206:9","nodeType":"YulBlock","src":"21578:206:9","statements":[{"nativeSrc":"21588:26:9","nodeType":"YulAssignment","src":"21588:26:9","value":{"arguments":[{"name":"headStart","nativeSrc":"21600:9:9","nodeType":"YulIdentifier","src":"21600:9:9"},{"kind":"number","nativeSrc":"21611:2:9","nodeType":"YulLiteral","src":"21611:2:9","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21596:3:9","nodeType":"YulIdentifier","src":"21596:3:9"},"nativeSrc":"21596:18:9","nodeType":"YulFunctionCall","src":"21596:18:9"},"variableNames":[{"name":"tail","nativeSrc":"21588:4:9","nodeType":"YulIdentifier","src":"21588:4:9"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21668:6:9","nodeType":"YulIdentifier","src":"21668:6:9"},{"arguments":[{"name":"headStart","nativeSrc":"21681:9:9","nodeType":"YulIdentifier","src":"21681:9:9"},{"kind":"number","nativeSrc":"21692:1:9","nodeType":"YulLiteral","src":"21692:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21677:3:9","nodeType":"YulIdentifier","src":"21677:3:9"},"nativeSrc":"21677:17:9","nodeType":"YulFunctionCall","src":"21677:17:9"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21624:43:9","nodeType":"YulIdentifier","src":"21624:43:9"},"nativeSrc":"21624:71:9","nodeType":"YulFunctionCall","src":"21624:71:9"},"nativeSrc":"21624:71:9","nodeType":"YulExpressionStatement","src":"21624:71:9"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"21749:6:9","nodeType":"YulIdentifier","src":"21749:6:9"},{"arguments":[{"name":"headStart","nativeSrc":"21762:9:9","nodeType":"YulIdentifier","src":"21762:9:9"},{"kind":"number","nativeSrc":"21773:2:9","nodeType":"YulLiteral","src":"21773:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21758:3:9","nodeType":"YulIdentifier","src":"21758:3:9"},"nativeSrc":"21758:18:9","nodeType":"YulFunctionCall","src":"21758:18:9"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"21705:43:9","nodeType":"YulIdentifier","src":"21705:43:9"},"nativeSrc":"21705:72:9","nodeType":"YulFunctionCall","src":"21705:72:9"},"nativeSrc":"21705:72:9","nodeType":"YulExpressionStatement","src":"21705:72:9"}]},"name":"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed","nativeSrc":"21452:332:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21542:9:9","nodeType":"YulTypedName","src":"21542:9:9","type":""},{"name":"value1","nativeSrc":"21554:6:9","nodeType":"YulTypedName","src":"21554:6:9","type":""},{"name":"value0","nativeSrc":"21562:6:9","nodeType":"YulTypedName","src":"21562:6:9","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21573:4:9","nodeType":"YulTypedName","src":"21573:4:9","type":""}],"src":"21452:332:9"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // string\n function abi_decode_t_string_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b(memPtr) {\n\n mstore(add(memPtr, 0), \"Only admin can call this functio\")\n\n mstore(add(memPtr, 32), \"n\")\n\n }\n\n function abi_encode_t_stringliteral_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_78c1e73fefe3f4316304254051aea4b3cd1dff7c956954d148b846fe8ffe2a0a(memPtr) {\n\n mstore(add(memPtr, 0), \"WorkgroupId cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_78c1e73fefe3f4316304254051aea4b3cd1dff7c956954d148b846fe8ffe2a0a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 27)\n store_literal_in_memory_78c1e73fefe3f4316304254051aea4b3cd1dff7c956954d148b846fe8ffe2a0a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_78c1e73fefe3f4316304254051aea4b3cd1dff7c956954d148b846fe8ffe2a0a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_78c1e73fefe3f4316304254051aea4b3cd1dff7c956954d148b846fe8ffe2a0a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_580a2190317e559c7d04a8b4ee7133ca2ccde26681dd0e5271b6f32aec444efa(memPtr) {\n\n mstore(add(memPtr, 0), \"WorkgroupId cannot exceed 36 byt\")\n\n mstore(add(memPtr, 32), \"es\")\n\n }\n\n function abi_encode_t_stringliteral_580a2190317e559c7d04a8b4ee7133ca2ccde26681dd0e5271b6f32aec444efa_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_580a2190317e559c7d04a8b4ee7133ca2ccde26681dd0e5271b6f32aec444efa(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_580a2190317e559c7d04a8b4ee7133ca2ccde26681dd0e5271b6f32aec444efa__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_580a2190317e559c7d04a8b4ee7133ca2ccde26681dd0e5271b6f32aec444efa_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_a3a00e5cebac6883c44ba7b7b2dc537ce06da1609d1fbae9a9e21d5fd543a3ca(memPtr) {\n\n mstore(add(memPtr, 0), \"AnchorHash cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_a3a00e5cebac6883c44ba7b7b2dc537ce06da1609d1fbae9a9e21d5fd543a3ca_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n store_literal_in_memory_a3a00e5cebac6883c44ba7b7b2dc537ce06da1609d1fbae9a9e21d5fd543a3ca(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_a3a00e5cebac6883c44ba7b7b2dc537ce06da1609d1fbae9a9e21d5fd543a3ca__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_a3a00e5cebac6883c44ba7b7b2dc537ce06da1609d1fbae9a9e21d5fd543a3ca_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_917787271d803f79cf82ae633fa9817a11c907186eb4e8b04a4a8343d3facc8b(memPtr) {\n\n mstore(add(memPtr, 0), \"AnchorHash cannot exceed 256 byt\")\n\n mstore(add(memPtr, 32), \"es\")\n\n }\n\n function abi_encode_t_stringliteral_917787271d803f79cf82ae633fa9817a11c907186eb4e8b04a4a8343d3facc8b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_917787271d803f79cf82ae633fa9817a11c907186eb4e8b04a4a8343d3facc8b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_917787271d803f79cf82ae633fa9817a11c907186eb4e8b04a4a8343d3facc8b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_917787271d803f79cf82ae633fa9817a11c907186eb4e8b04a4a8343d3facc8b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n // string -> string\n function abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n\n copy_calldata_to_memory_with_cleanup(start, pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, value1, pos)\n\n end := pos\n }\n\n function array_length_t_string_calldata_ptr(value, len) -> length {\n\n length := len\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage(slot, src, len) {\n\n let newLen := array_length_t_string_calldata_ptr(src, len)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, calldataload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := calldataload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := calldataload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n // string -> string\n function abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n\n copy_calldata_to_memory_with_cleanup(start, pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(value0, value1, tail)\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n","id":9,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100a95760003560e01c8063513ec2f811610071578063513ec2f81461016257806375b238fc14610192578063890f10a0146101b057806391d14854146101e0578063a217fddf14610210578063d547741f1461022e576100a9565b806301ffc9a7146100ae578063248a9ca3146100de5780632588cd551461010e5780632f2ff15d1461012a57806336568abe14610146575b600080fd5b6100c860048036038101906100c39190610ad0565b61024a565b6040516100d59190610b18565b60405180910390f35b6100f860048036038101906100f39190610b69565b6102c4565b6040516101059190610ba5565b60405180910390f35b61012860048036038101906101239190610c25565b6102e3565b005b610144600480360381019061013f9190610d04565b6104ed565b005b610160600480360381019061015b9190610d04565b61050f565b005b61017c60048036038101906101779190610e85565b61058a565b6040516101899190610f4d565b60405180910390f35b61019a610640565b6040516101a79190610ba5565b60405180910390f35b6101ca60048036038101906101c59190610f6f565b610664565b6040516101d79190610f4d565b60405180910390f35b6101fa60048036038101906101f59190610d04565b610717565b6040516102079190610b18565b60405180910390f35b610218610781565b6040516102259190610ba5565b60405180910390f35b61024860048036038101906102439190610d04565b610788565b005b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102bd57506102bc826107aa565b5b9050919050565b6000806000838152602001908152602001600020600101549050919050565b61030d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533610717565b61034c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103439061102e565b60405180910390fd5b60008484905011610392576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103899061109a565b60405180910390fd5b602484849050106103d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061112c565b60405180910390fd5b6000828290501161041e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041590611198565b60405180910390fd5b610100828290501115610466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045d9061122a565b60405180910390fd5b81816001868660405161047a92919061127a565b908152602001604051809103902091826104959291906114b4565b5083836040516104a692919061127a565b60405180910390207f6468084a45bfadcd3a84169a78a1a25c53317fc97f185e4037e0696cfc913ccc83836040516104df9291906115b1565b60405180910390a250505050565b6104f6826102c4565b6104ff81610814565b6105098383610828565b50505050565b610517610919565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461057b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105858282610921565b505050565b60018180516020810182018051848252602083016020850120818352809550505050505060009150905080546105bf906112cd565b80601f01602080910402602001604051908101604052809291908181526020018280546105eb906112cd565b80156106385780601f1061060d57610100808354040283529160200191610638565b820191906000526020600020905b81548152906001019060200180831161061b57829003601f168201915b505050505081565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b60606001838360405161067892919061127a565b90815260200160405180910390208054610691906112cd565b80601f01602080910402602001604051908101604052809291908181526020018280546106bd906112cd565b801561070a5780601f106106df5761010080835404028352916020019161070a565b820191906000526020600020905b8154815290600101906020018083116106ed57829003601f168201915b5050505050905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b610791826102c4565b61079a81610814565b6107a48383610921565b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61082581610820610919565b610a13565b50565b60006108348383610717565b61090e57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506108ab610919565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610913565b600090505b92915050565b600033905090565b600061092d8383610717565b15610a0857600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506109a5610919565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610a0d565b600090505b92915050565b610a1d8282610717565b610a605780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610a579291906115e4565b60405180910390fd5b5050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610aad81610a78565b8114610ab857600080fd5b50565b600081359050610aca81610aa4565b92915050565b600060208284031215610ae657610ae5610a6e565b5b6000610af484828501610abb565b91505092915050565b60008115159050919050565b610b1281610afd565b82525050565b6000602082019050610b2d6000830184610b09565b92915050565b6000819050919050565b610b4681610b33565b8114610b5157600080fd5b50565b600081359050610b6381610b3d565b92915050565b600060208284031215610b7f57610b7e610a6e565b5b6000610b8d84828501610b54565b91505092915050565b610b9f81610b33565b82525050565b6000602082019050610bba6000830184610b96565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610be557610be4610bc0565b5b8235905067ffffffffffffffff811115610c0257610c01610bc5565b5b602083019150836001820283011115610c1e57610c1d610bca565b5b9250929050565b60008060008060408587031215610c3f57610c3e610a6e565b5b600085013567ffffffffffffffff811115610c5d57610c5c610a73565b5b610c6987828801610bcf565b9450945050602085013567ffffffffffffffff811115610c8c57610c8b610a73565b5b610c9887828801610bcf565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cd182610ca6565b9050919050565b610ce181610cc6565b8114610cec57600080fd5b50565b600081359050610cfe81610cd8565b92915050565b60008060408385031215610d1b57610d1a610a6e565b5b6000610d2985828601610b54565b9250506020610d3a85828601610cef565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610d9282610d49565b810181811067ffffffffffffffff82111715610db157610db0610d5a565b5b80604052505050565b6000610dc4610a64565b9050610dd08282610d89565b919050565b600067ffffffffffffffff821115610df057610def610d5a565b5b610df982610d49565b9050602081019050919050565b82818337600083830152505050565b6000610e28610e2384610dd5565b610dba565b905082815260208101848484011115610e4457610e43610d44565b5b610e4f848285610e06565b509392505050565b600082601f830112610e6c57610e6b610bc0565b5b8135610e7c848260208601610e15565b91505092915050565b600060208284031215610e9b57610e9a610a6e565b5b600082013567ffffffffffffffff811115610eb957610eb8610a73565b5b610ec584828501610e57565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610f08578082015181840152602081019050610eed565b60008484015250505050565b6000610f1f82610ece565b610f298185610ed9565b9350610f39818560208601610eea565b610f4281610d49565b840191505092915050565b60006020820190508181036000830152610f678184610f14565b905092915050565b60008060208385031215610f8657610f85610a6e565b5b600083013567ffffffffffffffff811115610fa457610fa3610a73565b5b610fb085828601610bcf565b92509250509250929050565b7f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000611018602183610ed9565b915061102382610fbc565b604082019050919050565b600060208201905081810360008301526110478161100b565b9050919050565b7f576f726b67726f757049642063616e6e6f7420626520656d7074790000000000600082015250565b6000611084601b83610ed9565b915061108f8261104e565b602082019050919050565b600060208201905081810360008301526110b381611077565b9050919050565b7f576f726b67726f757049642063616e6e6f74206578636565642033362062797460008201527f6573000000000000000000000000000000000000000000000000000000000000602082015250565b6000611116602283610ed9565b9150611121826110ba565b604082019050919050565b6000602082019050818103600083015261114581611109565b9050919050565b7f416e63686f72486173682063616e6e6f7420626520656d707479000000000000600082015250565b6000611182601a83610ed9565b915061118d8261114c565b602082019050919050565b600060208201905081810360008301526111b181611175565b9050919050565b7f416e63686f72486173682063616e6e6f7420657863656564203235362062797460008201527f6573000000000000000000000000000000000000000000000000000000000000602082015250565b6000611214602283610ed9565b915061121f826111b8565b604082019050919050565b6000602082019050818103600083015261124381611207565b9050919050565b600081905092915050565b6000611261838561124a565b935061126e838584610e06565b82840190509392505050565b6000611287828486611255565b91508190509392505050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806112e557607f821691505b6020821081036112f8576112f761129e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026113607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611323565b61136a8683611323565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006113b16113ac6113a784611382565b61138c565b611382565b9050919050565b6000819050919050565b6113cb83611396565b6113df6113d7826113b8565b848454611330565b825550505050565b600090565b6113f46113e7565b6113ff8184846113c2565b505050565b5b81811015611423576114186000826113ec565b600181019050611405565b5050565b601f82111561146857611439816112fe565b61144284611313565b81016020851015611451578190505b61146561145d85611313565b830182611404565b50505b505050565b600082821c905092915050565b600061148b6000198460080261146d565b1980831691505092915050565b60006114a4838361147a565b9150826002028217905092915050565b6114be8383611293565b67ffffffffffffffff8111156114d7576114d6610d5a565b5b6114e182546112cd565b6114ec828285611427565b6000601f83116001811461151b5760008415611509578287013590505b6115138582611498565b86555061157b565b601f198416611529866112fe565b60005b828110156115515784890135825560018201915060208501945060208101905061152c565b8683101561156e578489013561156a601f89168261147a565b8355505b6001600288020188555050505b50505050505050565b60006115908385610ed9565b935061159d838584610e06565b6115a683610d49565b840190509392505050565b600060208201905081810360008301526115cc818486611584565b90509392505050565b6115de81610cc6565b82525050565b60006040820190506115f960008301856115d5565b6116066020830184610b96565b939250505056fea2646970667358221220f8c24b9a708f806781b283ffab6daf29e867efc617c1bcd49d12341e3658079464736f6c63430008180033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x513EC2F8 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x513EC2F8 EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0x75B238FC EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0x890F10A0 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x22E JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0xDE JUMPI DUP1 PUSH4 0x2588CD55 EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x12A JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x146 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD5 SWAP2 SWAP1 PUSH2 0xB18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xB69 JUMP JUMPDEST PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x105 SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x128 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x123 SWAP2 SWAP1 PUSH2 0xC25 JUMP JUMPDEST PUSH2 0x2E3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x144 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13F SWAP2 SWAP1 PUSH2 0xD04 JUMP JUMPDEST PUSH2 0x4ED JUMP JUMPDEST STOP JUMPDEST PUSH2 0x160 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15B SWAP2 SWAP1 PUSH2 0xD04 JUMP JUMPDEST PUSH2 0x50F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x177 SWAP2 SWAP1 PUSH2 0xE85 JUMP JUMPDEST PUSH2 0x58A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x189 SWAP2 SWAP1 PUSH2 0xF4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A7 SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C5 SWAP2 SWAP1 PUSH2 0xF6F JUMP JUMPDEST PUSH2 0x664 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D7 SWAP2 SWAP1 PUSH2 0xF4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F5 SWAP2 SWAP1 PUSH2 0xD04 JUMP JUMPDEST PUSH2 0x717 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x207 SWAP2 SWAP1 PUSH2 0xB18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x218 PUSH2 0x781 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x248 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x243 SWAP2 SWAP1 PUSH2 0xD04 JUMP JUMPDEST PUSH2 0x788 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x2BD JUMPI POP PUSH2 0x2BC DUP3 PUSH2 0x7AA JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x30D PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 CALLER PUSH2 0x717 JUMP JUMPDEST PUSH2 0x34C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x343 SWAP1 PUSH2 0x102E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP5 SWAP1 POP GT PUSH2 0x392 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x389 SWAP1 PUSH2 0x109A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x24 DUP5 DUP5 SWAP1 POP LT PUSH2 0x3D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CF SWAP1 PUSH2 0x112C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 SWAP1 POP GT PUSH2 0x41E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x415 SWAP1 PUSH2 0x1198 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x100 DUP3 DUP3 SWAP1 POP GT ISZERO PUSH2 0x466 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x45D SWAP1 PUSH2 0x122A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x1 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x47A SWAP3 SWAP2 SWAP1 PUSH2 0x127A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP2 DUP3 PUSH2 0x495 SWAP3 SWAP2 SWAP1 PUSH2 0x14B4 JUMP JUMPDEST POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x4A6 SWAP3 SWAP2 SWAP1 PUSH2 0x127A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0x6468084A45BFADCD3A84169A78A1A25C53317FC97F185E4037E0696CFC913CCC DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x4DF SWAP3 SWAP2 SWAP1 PUSH2 0x15B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x4F6 DUP3 PUSH2 0x2C4 JUMP JUMPDEST PUSH2 0x4FF DUP2 PUSH2 0x814 JUMP JUMPDEST PUSH2 0x509 DUP4 DUP4 PUSH2 0x828 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x517 PUSH2 0x919 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x57B JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x585 DUP3 DUP3 PUSH2 0x921 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 ADD DUP1 MLOAD DUP5 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP6 ADD KECCAK256 DUP2 DUP4 MSTORE DUP1 SWAP6 POP POP POP POP POP POP PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 SLOAD PUSH2 0x5BF SWAP1 PUSH2 0x12CD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x5EB SWAP1 PUSH2 0x12CD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x638 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x60D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x638 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x61B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH32 0xA49807205CE4D355092EF5A8A18F56E8913CF4A201FBE287825B095693C21775 DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x678 SWAP3 SWAP2 SWAP1 PUSH2 0x127A JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x691 SWAP1 PUSH2 0x12CD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x6BD SWAP1 PUSH2 0x12CD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x70A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6DF JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x70A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6ED JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x791 DUP3 PUSH2 0x2C4 JUMP JUMPDEST PUSH2 0x79A DUP2 PUSH2 0x814 JUMP JUMPDEST PUSH2 0x7A4 DUP4 DUP4 PUSH2 0x921 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x825 DUP2 PUSH2 0x820 PUSH2 0x919 JUMP JUMPDEST PUSH2 0xA13 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x834 DUP4 DUP4 PUSH2 0x717 JUMP JUMPDEST PUSH2 0x90E JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x8AB PUSH2 0x919 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x913 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x92D DUP4 DUP4 PUSH2 0x717 JUMP JUMPDEST ISZERO PUSH2 0xA08 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x9A5 PUSH2 0x919 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0xA0D JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA1D DUP3 DUP3 PUSH2 0x717 JUMP JUMPDEST PUSH2 0xA60 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA57 SWAP3 SWAP2 SWAP1 PUSH2 0x15E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAAD DUP2 PUSH2 0xA78 JUMP JUMPDEST DUP2 EQ PUSH2 0xAB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xACA DUP2 PUSH2 0xAA4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAE6 JUMPI PUSH2 0xAE5 PUSH2 0xA6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xAF4 DUP5 DUP3 DUP6 ADD PUSH2 0xABB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB12 DUP2 PUSH2 0xAFD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB2D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB09 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB46 DUP2 PUSH2 0xB33 JUMP JUMPDEST DUP2 EQ PUSH2 0xB51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB63 DUP2 PUSH2 0xB3D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB7F JUMPI PUSH2 0xB7E PUSH2 0xA6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB8D DUP5 DUP3 DUP6 ADD PUSH2 0xB54 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB9F DUP2 PUSH2 0xB33 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBBA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB96 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xBE5 JUMPI PUSH2 0xBE4 PUSH2 0xBC0 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC02 JUMPI PUSH2 0xC01 PUSH2 0xBC5 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xC1E JUMPI PUSH2 0xC1D PUSH2 0xBCA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xC3F JUMPI PUSH2 0xC3E PUSH2 0xA6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC5D JUMPI PUSH2 0xC5C PUSH2 0xA73 JUMP JUMPDEST JUMPDEST PUSH2 0xC69 DUP8 DUP3 DUP9 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC8C JUMPI PUSH2 0xC8B PUSH2 0xA73 JUMP JUMPDEST JUMPDEST PUSH2 0xC98 DUP8 DUP3 DUP9 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCD1 DUP3 PUSH2 0xCA6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCE1 DUP2 PUSH2 0xCC6 JUMP JUMPDEST DUP2 EQ PUSH2 0xCEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCFE DUP2 PUSH2 0xCD8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD1B JUMPI PUSH2 0xD1A PUSH2 0xA6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD29 DUP6 DUP3 DUP7 ADD PUSH2 0xB54 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD3A DUP6 DUP3 DUP7 ADD PUSH2 0xCEF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xD92 DUP3 PUSH2 0xD49 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xDB1 JUMPI PUSH2 0xDB0 PUSH2 0xD5A JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDC4 PUSH2 0xA64 JUMP JUMPDEST SWAP1 POP PUSH2 0xDD0 DUP3 DUP3 PUSH2 0xD89 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xDF0 JUMPI PUSH2 0xDEF PUSH2 0xD5A JUMP JUMPDEST JUMPDEST PUSH2 0xDF9 DUP3 PUSH2 0xD49 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE28 PUSH2 0xE23 DUP5 PUSH2 0xDD5 JUMP JUMPDEST PUSH2 0xDBA JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xE44 JUMPI PUSH2 0xE43 PUSH2 0xD44 JUMP JUMPDEST JUMPDEST PUSH2 0xE4F DUP5 DUP3 DUP6 PUSH2 0xE06 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xE6C JUMPI PUSH2 0xE6B PUSH2 0xBC0 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xE7C DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xE15 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE9B JUMPI PUSH2 0xE9A PUSH2 0xA6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEB9 JUMPI PUSH2 0xEB8 PUSH2 0xA73 JUMP JUMPDEST JUMPDEST PUSH2 0xEC5 DUP5 DUP3 DUP6 ADD PUSH2 0xE57 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF08 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEED JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF1F DUP3 PUSH2 0xECE JUMP JUMPDEST PUSH2 0xF29 DUP2 DUP6 PUSH2 0xED9 JUMP JUMPDEST SWAP4 POP PUSH2 0xF39 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xEEA JUMP JUMPDEST PUSH2 0xF42 DUP2 PUSH2 0xD49 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xF67 DUP2 DUP5 PUSH2 0xF14 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF86 JUMPI PUSH2 0xF85 PUSH2 0xA6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFA4 JUMPI PUSH2 0xFA3 PUSH2 0xA73 JUMP JUMPDEST JUMPDEST PUSH2 0xFB0 DUP6 DUP3 DUP7 ADD PUSH2 0xBCF JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F6E6C792061646D696E2063616E2063616C6C20746869732066756E6374696F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1018 PUSH1 0x21 DUP4 PUSH2 0xED9 JUMP JUMPDEST SWAP2 POP PUSH2 0x1023 DUP3 PUSH2 0xFBC JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1047 DUP2 PUSH2 0x100B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x576F726B67726F757049642063616E6E6F7420626520656D7074790000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1084 PUSH1 0x1B DUP4 PUSH2 0xED9 JUMP JUMPDEST SWAP2 POP PUSH2 0x108F DUP3 PUSH2 0x104E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x10B3 DUP2 PUSH2 0x1077 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x576F726B67726F757049642063616E6E6F742065786365656420333620627974 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1116 PUSH1 0x22 DUP4 PUSH2 0xED9 JUMP JUMPDEST SWAP2 POP PUSH2 0x1121 DUP3 PUSH2 0x10BA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1145 DUP2 PUSH2 0x1109 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416E63686F72486173682063616E6E6F7420626520656D707479000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1182 PUSH1 0x1A DUP4 PUSH2 0xED9 JUMP JUMPDEST SWAP2 POP PUSH2 0x118D DUP3 PUSH2 0x114C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11B1 DUP2 PUSH2 0x1175 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416E63686F72486173682063616E6E6F74206578636565642032353620627974 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1214 PUSH1 0x22 DUP4 PUSH2 0xED9 JUMP JUMPDEST SWAP2 POP PUSH2 0x121F DUP3 PUSH2 0x11B8 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1243 DUP2 PUSH2 0x1207 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1261 DUP4 DUP6 PUSH2 0x124A JUMP JUMPDEST SWAP4 POP PUSH2 0x126E DUP4 DUP6 DUP5 PUSH2 0xE06 JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1287 DUP3 DUP5 DUP7 PUSH2 0x1255 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x12E5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x12F8 JUMPI PUSH2 0x12F7 PUSH2 0x129E JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x1360 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x1323 JUMP JUMPDEST PUSH2 0x136A DUP7 DUP4 PUSH2 0x1323 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13B1 PUSH2 0x13AC PUSH2 0x13A7 DUP5 PUSH2 0x1382 JUMP JUMPDEST PUSH2 0x138C JUMP JUMPDEST PUSH2 0x1382 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x13CB DUP4 PUSH2 0x1396 JUMP JUMPDEST PUSH2 0x13DF PUSH2 0x13D7 DUP3 PUSH2 0x13B8 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x1330 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x13F4 PUSH2 0x13E7 JUMP JUMPDEST PUSH2 0x13FF DUP2 DUP5 DUP5 PUSH2 0x13C2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1423 JUMPI PUSH2 0x1418 PUSH1 0x0 DUP3 PUSH2 0x13EC JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1405 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1468 JUMPI PUSH2 0x1439 DUP2 PUSH2 0x12FE JUMP JUMPDEST PUSH2 0x1442 DUP5 PUSH2 0x1313 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1451 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x1465 PUSH2 0x145D DUP6 PUSH2 0x1313 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1404 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x148B PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x146D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14A4 DUP4 DUP4 PUSH2 0x147A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x14BE DUP4 DUP4 PUSH2 0x1293 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14D7 JUMPI PUSH2 0x14D6 PUSH2 0xD5A JUMP JUMPDEST JUMPDEST PUSH2 0x14E1 DUP3 SLOAD PUSH2 0x12CD JUMP JUMPDEST PUSH2 0x14EC DUP3 DUP3 DUP6 PUSH2 0x1427 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x151B JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1509 JUMPI DUP3 DUP8 ADD CALLDATALOAD SWAP1 POP JUMPDEST PUSH2 0x1513 DUP6 DUP3 PUSH2 0x1498 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x157B JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1529 DUP7 PUSH2 0x12FE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1551 JUMPI DUP5 DUP10 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x152C JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x156E JUMPI DUP5 DUP10 ADD CALLDATALOAD PUSH2 0x156A PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x147A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1590 DUP4 DUP6 PUSH2 0xED9 JUMP JUMPDEST SWAP4 POP PUSH2 0x159D DUP4 DUP6 DUP5 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x15A6 DUP4 PUSH2 0xD49 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x15CC DUP2 DUP5 DUP7 PUSH2 0x1584 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x15DE DUP2 PUSH2 0xCC6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x15F9 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x15D5 JUMP JUMPDEST PUSH2 0x1606 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xB96 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 0xC2 0x4B SWAP11 PUSH17 0x8F806781B283FFAB6DAF29E867EFC617C1 0xBC 0xD4 SWAP14 SLT CALLVALUE 0x1E CALLDATASIZE PC SMOD SWAP5 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ","sourceMap":"123:1368:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2565:202:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3810:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;626:575:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4226:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5328:245;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;172:48:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;295:60;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1205:146;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2854:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2187:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4642:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2565:202;2650:4;2688:32;2673:47;;;:11;:47;;;;:87;;;;2724:36;2748:11;2724:23;:36::i;:::-;2673:87;2666:94;;2565:202;;;:::o;3810:120::-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;626:575:5:-;1397:31;332:23;1417:10;1397:7;:31::i;:::-;1382:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;782:1:::1;759:12;;753:26;;:30;745:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;865:2;842:12;;836:26;;:31;821:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;959:1;937:11;;931:25;;:29;923:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1041:3;1018:11;;1012:25;;:32;;997:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;1133:11;;1101:15;1117:12;;1101:29;;;;;;;:::i;:::-;;;;;;;;;;;;;:43;;;;;;;:::i;:::-;;1170:12;;1156:40;;;;;;;:::i;:::-;;;;;;;;;1184:11;;1156:40;;;;;;;:::i;:::-;;;;;;;;626:575:::0;;;;:::o;4226:136:0:-;4300:18;4313:4;4300:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;5443:12;:10;:12::i;:::-;5421:34;;:18;:34;;;5417:102;;5478:30;;;;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;172:48:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;295:60::-;332:23;295:60;:::o;1205:146::-;1289:13;1317:15;1333:12;;1317:29;;;;;;;:::i;:::-;;;;;;;;;;;;;1310:36;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1205:146;;;;:::o;2854:136:0:-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;2187:49::-;2232:4;2187:49;;;:::o;4642:138::-;4717:18;4730:4;4717:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;:::-;;4642:138:::0;;;:::o;762:146:3:-;838:4;876:25;861:40;;;:11;:40;;;;854:47;;762:146;;;:::o;3199:103:0:-;3265:30;3276:4;3282:12;:10;:12::i;:::-;3265:10;:30::i;:::-;3199:103;:::o;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;:12::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;656:96:2:-;709:7;735:10;728:17;;656:96;:::o;6730:317:0:-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:6;:12;6873:4;6866:12;;;;;;;;;;;:20;;:29;6887:7;6866:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6949:12;:10;:12::i;:::-;6922:40;;6940:7;6922:40;;6934:4;6922:40;;;;;;;;;;6983:4;6976:11;;;;6824:217;7025:5;7018:12;;6730:317;;;;;:::o;3432:197::-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3598:7;3607:4;3565:47;;;;;;;;;;;;:::i;:::-;;;;;;;;3515:108;3432:197;;:::o;7:75:9:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:118::-;2296:24;2314:5;2296:24;:::i;:::-;2291:3;2284:37;2209:118;;:::o;2333:222::-;2426:4;2464:2;2453:9;2449:18;2441:26;;2477:71;2545:1;2534:9;2530:17;2521:6;2477:71;:::i;:::-;2333:222;;;;:::o;2561:117::-;2670:1;2667;2660:12;2684:117;2793:1;2790;2783:12;2807:117;2916:1;2913;2906:12;2944:553;3002:8;3012:6;3062:3;3055:4;3047:6;3043:17;3039:27;3029:122;;3070:79;;:::i;:::-;3029:122;3183:6;3170:20;3160:30;;3213:18;3205:6;3202:30;3199:117;;;3235:79;;:::i;:::-;3199:117;3349:4;3341:6;3337:17;3325:29;;3403:3;3395:4;3387:6;3383:17;3373:8;3369:32;3366:41;3363:128;;;3410:79;;:::i;:::-;3363:128;2944:553;;;;;:::o;3503:874::-;3595:6;3603;3611;3619;3668:2;3656:9;3647:7;3643:23;3639:32;3636:119;;;3674:79;;:::i;:::-;3636:119;3822:1;3811:9;3807:17;3794:31;3852:18;3844:6;3841:30;3838:117;;;3874:79;;:::i;:::-;3838:117;3987:65;4044:7;4035:6;4024:9;4020:22;3987:65;:::i;:::-;3969:83;;;;3765:297;4129:2;4118:9;4114:18;4101:32;4160:18;4152:6;4149:30;4146:117;;;4182:79;;:::i;:::-;4146:117;4295:65;4352:7;4343:6;4332:9;4328:22;4295:65;:::i;:::-;4277:83;;;;4072:298;3503:874;;;;;;;:::o;4383:126::-;4420:7;4460:42;4453:5;4449:54;4438:65;;4383:126;;;:::o;4515:96::-;4552:7;4581:24;4599:5;4581:24;:::i;:::-;4570:35;;4515:96;;;:::o;4617:122::-;4690:24;4708:5;4690:24;:::i;:::-;4683:5;4680:35;4670:63;;4729:1;4726;4719:12;4670:63;4617:122;:::o;4745:139::-;4791:5;4829:6;4816:20;4807:29;;4845:33;4872:5;4845:33;:::i;:::-;4745:139;;;;:::o;4890:474::-;4958:6;4966;5015:2;5003:9;4994:7;4990:23;4986:32;4983:119;;;5021:79;;:::i;:::-;4983:119;5141:1;5166:53;5211:7;5202:6;5191:9;5187:22;5166:53;:::i;:::-;5156:63;;5112:117;5268:2;5294:53;5339:7;5330:6;5319:9;5315:22;5294:53;:::i;:::-;5284:63;;5239:118;4890:474;;;;;:::o;5370:117::-;5479:1;5476;5469:12;5493:102;5534:6;5585:2;5581:7;5576:2;5569:5;5565:14;5561:28;5551:38;;5493:102;;;:::o;5601:180::-;5649:77;5646:1;5639:88;5746:4;5743:1;5736:15;5770:4;5767:1;5760:15;5787:281;5870:27;5892:4;5870:27;:::i;:::-;5862:6;5858:40;6000:6;5988:10;5985:22;5964:18;5952:10;5949:34;5946:62;5943:88;;;6011:18;;:::i;:::-;5943:88;6051:10;6047:2;6040:22;5830:238;5787:281;;:::o;6074:129::-;6108:6;6135:20;;:::i;:::-;6125:30;;6164:33;6192:4;6184:6;6164:33;:::i;:::-;6074:129;;;:::o;6209:308::-;6271:4;6361:18;6353:6;6350:30;6347:56;;;6383:18;;:::i;:::-;6347:56;6421:29;6443:6;6421:29;:::i;:::-;6413:37;;6505:4;6499;6495:15;6487:23;;6209:308;;;:::o;6523:146::-;6620:6;6615:3;6610;6597:30;6661:1;6652:6;6647:3;6643:16;6636:27;6523:146;;;:::o;6675:425::-;6753:5;6778:66;6794:49;6836:6;6794:49;:::i;:::-;6778:66;:::i;:::-;6769:75;;6867:6;6860:5;6853:21;6905:4;6898:5;6894:16;6943:3;6934:6;6929:3;6925:16;6922:25;6919:112;;;6950:79;;:::i;:::-;6919:112;7040:54;7087:6;7082:3;7077;7040:54;:::i;:::-;6759:341;6675:425;;;;;:::o;7120:340::-;7176:5;7225:3;7218:4;7210:6;7206:17;7202:27;7192:122;;7233:79;;:::i;:::-;7192:122;7350:6;7337:20;7375:79;7450:3;7442:6;7435:4;7427:6;7423:17;7375:79;:::i;:::-;7366:88;;7182:278;7120:340;;;;:::o;7466:509::-;7535:6;7584:2;7572:9;7563:7;7559:23;7555:32;7552:119;;;7590:79;;:::i;:::-;7552:119;7738:1;7727:9;7723:17;7710:31;7768:18;7760:6;7757:30;7754:117;;;7790:79;;:::i;:::-;7754:117;7895:63;7950:7;7941:6;7930:9;7926:22;7895:63;:::i;:::-;7885:73;;7681:287;7466:509;;;;:::o;7981:99::-;8033:6;8067:5;8061:12;8051:22;;7981:99;;;:::o;8086:169::-;8170:11;8204:6;8199:3;8192:19;8244:4;8239:3;8235:14;8220:29;;8086:169;;;;:::o;8261:246::-;8342:1;8352:113;8366:6;8363:1;8360:13;8352:113;;;8451:1;8446:3;8442:11;8436:18;8432:1;8427:3;8423:11;8416:39;8388:2;8385:1;8381:10;8376:15;;8352:113;;;8499:1;8490:6;8485:3;8481:16;8474:27;8323:184;8261:246;;;:::o;8513:377::-;8601:3;8629:39;8662:5;8629:39;:::i;:::-;8684:71;8748:6;8743:3;8684:71;:::i;:::-;8677:78;;8764:65;8822:6;8817:3;8810:4;8803:5;8799:16;8764:65;:::i;:::-;8854:29;8876:6;8854:29;:::i;:::-;8849:3;8845:39;8838:46;;8605:285;8513:377;;;;:::o;8896:313::-;9009:4;9047:2;9036:9;9032:18;9024:26;;9096:9;9090:4;9086:20;9082:1;9071:9;9067:17;9060:47;9124:78;9197:4;9188:6;9124:78;:::i;:::-;9116:86;;8896:313;;;;:::o;9215:529::-;9286:6;9294;9343:2;9331:9;9322:7;9318:23;9314:32;9311:119;;;9349:79;;:::i;:::-;9311:119;9497:1;9486:9;9482:17;9469:31;9527:18;9519:6;9516:30;9513:117;;;9549:79;;:::i;:::-;9513:117;9662:65;9719:7;9710:6;9699:9;9695:22;9662:65;:::i;:::-;9644:83;;;;9440:297;9215:529;;;;;:::o;9750:220::-;9890:34;9886:1;9878:6;9874:14;9867:58;9959:3;9954:2;9946:6;9942:15;9935:28;9750:220;:::o;9976:366::-;10118:3;10139:67;10203:2;10198:3;10139:67;:::i;:::-;10132:74;;10215:93;10304:3;10215:93;:::i;:::-;10333:2;10328:3;10324:12;10317:19;;9976:366;;;:::o;10348:419::-;10514:4;10552:2;10541:9;10537:18;10529:26;;10601:9;10595:4;10591:20;10587:1;10576:9;10572:17;10565:47;10629:131;10755:4;10629:131;:::i;:::-;10621:139;;10348:419;;;:::o;10773:177::-;10913:29;10909:1;10901:6;10897:14;10890:53;10773:177;:::o;10956:366::-;11098:3;11119:67;11183:2;11178:3;11119:67;:::i;:::-;11112:74;;11195:93;11284:3;11195:93;:::i;:::-;11313:2;11308:3;11304:12;11297:19;;10956:366;;;:::o;11328:419::-;11494:4;11532:2;11521:9;11517:18;11509:26;;11581:9;11575:4;11571:20;11567:1;11556:9;11552:17;11545:47;11609:131;11735:4;11609:131;:::i;:::-;11601:139;;11328:419;;;:::o;11753:221::-;11893:34;11889:1;11881:6;11877:14;11870:58;11962:4;11957:2;11949:6;11945:15;11938:29;11753:221;:::o;11980:366::-;12122:3;12143:67;12207:2;12202:3;12143:67;:::i;:::-;12136:74;;12219:93;12308:3;12219:93;:::i;:::-;12337:2;12332:3;12328:12;12321:19;;11980:366;;;:::o;12352:419::-;12518:4;12556:2;12545:9;12541:18;12533:26;;12605:9;12599:4;12595:20;12591:1;12580:9;12576:17;12569:47;12633:131;12759:4;12633:131;:::i;:::-;12625:139;;12352:419;;;:::o;12777:176::-;12917:28;12913:1;12905:6;12901:14;12894:52;12777:176;:::o;12959:366::-;13101:3;13122:67;13186:2;13181:3;13122:67;:::i;:::-;13115:74;;13198:93;13287:3;13198:93;:::i;:::-;13316:2;13311:3;13307:12;13300:19;;12959:366;;;:::o;13331:419::-;13497:4;13535:2;13524:9;13520:18;13512:26;;13584:9;13578:4;13574:20;13570:1;13559:9;13555:17;13548:47;13612:131;13738:4;13612:131;:::i;:::-;13604:139;;13331:419;;;:::o;13756:221::-;13896:34;13892:1;13884:6;13880:14;13873:58;13965:4;13960:2;13952:6;13948:15;13941:29;13756:221;:::o;13983:366::-;14125:3;14146:67;14210:2;14205:3;14146:67;:::i;:::-;14139:74;;14222:93;14311:3;14222:93;:::i;:::-;14340:2;14335:3;14331:12;14324:19;;13983:366;;;:::o;14355:419::-;14521:4;14559:2;14548:9;14544:18;14536:26;;14608:9;14602:4;14598:20;14594:1;14583:9;14579:17;14572:47;14636:131;14762:4;14636:131;:::i;:::-;14628:139;;14355:419;;;:::o;14780:148::-;14882:11;14919:3;14904:18;;14780:148;;;;:::o;14958:330::-;15074:3;15095:89;15177:6;15172:3;15095:89;:::i;:::-;15088:96;;15194:56;15243:6;15238:3;15231:5;15194:56;:::i;:::-;15275:6;15270:3;15266:16;15259:23;;14958:330;;;;;:::o;15294:295::-;15436:3;15458:105;15559:3;15550:6;15542;15458:105;:::i;:::-;15451:112;;15580:3;15573:10;;15294:295;;;;;:::o;15595:97::-;15654:6;15682:3;15672:13;;15595:97;;;;:::o;15698:180::-;15746:77;15743:1;15736:88;15843:4;15840:1;15833:15;15867:4;15864:1;15857:15;15884:320;15928:6;15965:1;15959:4;15955:12;15945:22;;16012:1;16006:4;16002:12;16033:18;16023:81;;16089:4;16081:6;16077:17;16067:27;;16023:81;16151:2;16143:6;16140:14;16120:18;16117:38;16114:84;;16170:18;;:::i;:::-;16114:84;15935:269;15884:320;;;:::o;16210:141::-;16259:4;16282:3;16274:11;;16305:3;16302:1;16295:14;16339:4;16336:1;16326:18;16318:26;;16210:141;;;:::o;16357:93::-;16394:6;16441:2;16436;16429:5;16425:14;16421:23;16411:33;;16357:93;;;:::o;16456:107::-;16500:8;16550:5;16544:4;16540:16;16519:37;;16456:107;;;;:::o;16569:393::-;16638:6;16688:1;16676:10;16672:18;16711:97;16741:66;16730:9;16711:97;:::i;:::-;16829:39;16859:8;16848:9;16829:39;:::i;:::-;16817:51;;16901:4;16897:9;16890:5;16886:21;16877:30;;16950:4;16940:8;16936:19;16929:5;16926:30;16916:40;;16645:317;;16569:393;;;;;:::o;16968:77::-;17005:7;17034:5;17023:16;;16968:77;;;:::o;17051:60::-;17079:3;17100:5;17093:12;;17051:60;;;:::o;17117:142::-;17167:9;17200:53;17218:34;17227:24;17245:5;17227:24;:::i;:::-;17218:34;:::i;:::-;17200:53;:::i;:::-;17187:66;;17117:142;;;:::o;17265:75::-;17308:3;17329:5;17322:12;;17265:75;;;:::o;17346:269::-;17456:39;17487:7;17456:39;:::i;:::-;17517:91;17566:41;17590:16;17566:41;:::i;:::-;17558:6;17551:4;17545:11;17517:91;:::i;:::-;17511:4;17504:105;17422:193;17346:269;;;:::o;17621:73::-;17666:3;17621:73;:::o;17700:189::-;17777:32;;:::i;:::-;17818:65;17876:6;17868;17862:4;17818:65;:::i;:::-;17753:136;17700:189;;:::o;17895:186::-;17955:120;17972:3;17965:5;17962:14;17955:120;;;18026:39;18063:1;18056:5;18026:39;:::i;:::-;17999:1;17992:5;17988:13;17979:22;;17955:120;;;17895:186;;:::o;18087:543::-;18188:2;18183:3;18180:11;18177:446;;;18222:38;18254:5;18222:38;:::i;:::-;18306:29;18324:10;18306:29;:::i;:::-;18296:8;18292:44;18489:2;18477:10;18474:18;18471:49;;;18510:8;18495:23;;18471:49;18533:80;18589:22;18607:3;18589:22;:::i;:::-;18579:8;18575:37;18562:11;18533:80;:::i;:::-;18192:431;;18177:446;18087:543;;;:::o;18636:117::-;18690:8;18740:5;18734:4;18730:16;18709:37;;18636:117;;;;:::o;18759:169::-;18803:6;18836:51;18884:1;18880:6;18872:5;18869:1;18865:13;18836:51;:::i;:::-;18832:56;18917:4;18911;18907:15;18897:25;;18810:118;18759:169;;;;:::o;18933:295::-;19009:4;19155:29;19180:3;19174:4;19155:29;:::i;:::-;19147:37;;19217:3;19214:1;19210:11;19204:4;19201:21;19193:29;;18933:295;;;;:::o;19233:1403::-;19357:44;19397:3;19392;19357:44;:::i;:::-;19466:18;19458:6;19455:30;19452:56;;;19488:18;;:::i;:::-;19452:56;19532:38;19564:4;19558:11;19532:38;:::i;:::-;19617:67;19677:6;19669;19663:4;19617:67;:::i;:::-;19711:1;19740:2;19732:6;19729:14;19757:1;19752:632;;;;20428:1;20445:6;20442:84;;;20501:9;20496:3;20492:19;20479:33;20470:42;;20442:84;20552:67;20612:6;20605:5;20552:67;:::i;:::-;20546:4;20539:81;20401:229;19722:908;;19752:632;19804:4;19800:9;19792:6;19788:22;19838:37;19870:4;19838:37;:::i;:::-;19897:1;19911:215;19925:7;19922:1;19919:14;19911:215;;;20011:9;20006:3;20002:19;19989:33;19981:6;19974:49;20062:1;20054:6;20050:14;20040:24;;20109:2;20098:9;20094:18;20081:31;;19948:4;19945:1;19941:12;19936:17;;19911:215;;;20154:6;20145:7;20142:19;20139:186;;;20219:9;20214:3;20210:19;20197:33;20262:48;20304:4;20296:6;20292:17;20281:9;20262:48;:::i;:::-;20254:6;20247:64;20162:163;20139:186;20371:1;20367;20359:6;20355:14;20351:22;20345:4;20338:36;19759:625;;;19722:908;;19332:1304;;;19233:1403;;;:::o;20666:317::-;20764:3;20785:71;20849:6;20844:3;20785:71;:::i;:::-;20778:78;;20866:56;20915:6;20910:3;20903:5;20866:56;:::i;:::-;20947:29;20969:6;20947:29;:::i;:::-;20942:3;20938:39;20931:46;;20666:317;;;;;:::o;20989:333::-;21112:4;21150:2;21139:9;21135:18;21127:26;;21199:9;21193:4;21189:20;21185:1;21174:9;21170:17;21163:47;21227:88;21310:4;21301:6;21293;21227:88;:::i;:::-;21219:96;;20989:333;;;;;:::o;21328:118::-;21415:24;21433:5;21415:24;:::i;:::-;21410:3;21403:37;21328:118;;:::o;21452:332::-;21573:4;21611:2;21600:9;21596:18;21588:26;;21624:71;21692:1;21681:9;21677:17;21668:6;21624:71;:::i;:::-;21705:72;21773:2;21762:9;21758:18;21749:6;21705:72;:::i;:::-;21452:332;;;;;:::o"},"methodIdentifiers":{"ADMIN_ROLE()":"75b238fc","DEFAULT_ADMIN_ROLE()":"a217fddf","anchorHashStore(string)":"513ec2f8","getAnchorHash(string)":"890f10a0","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setAnchorHash(string,string)":"2588cd55","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"admins\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"workgroupId\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"anchorHash\",\"type\":\"string\"}],\"name\":\"AnchorHashSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"anchorHashStore\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_workgroupId\",\"type\":\"string\"}],\"name\":\"getAnchorHash\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_workgroupId\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_anchorHash\",\"type\":\"string\"}],\"name\":\"setAnchorHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/CcsmBpiStateAnchor.sol\":\"CcsmBpiStateAnchor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"contracts/CcsmBpiStateAnchor.sol\":{\"keccak256\":\"0x3db2d8c477e0acb047784d78c6f2514bd951eb04188348596aac6ee47f332337\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6755b85d1c1ddf5994982740200cac4d9a578c76a0cb2febbf8520a64479d8f3\",\"dweb:/ipfs/Qmbjdmxqipv3LfReLAGVzcRg72RsppxMML6u1o6iX3sPGG\"]}},\"version\":1}"}},"contracts/workstep1Verifier.sol":{"PlonkVerifier":{"abi":[{"inputs":[{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"uint256[]","name":"pubSignals","type":"uint256[]"}],"name":"verifyProof","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50611dc3806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80631e8e1e1314610030575b600080fd5b61004a60048036038101906100459190611cdf565b610060565b6040516100579190611d72565b60405180910390f35b6000611a1c565b600080600184846000805b821561009c5782840591508482028603905084955080945082820284039050829350809250610072565b60018411156100aa57600080fd5b60008612156100b95788860195505b85965050505050505092915050565b60405181602084028301815160208301925060005b82841015610120578185527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018451830991506020850194506020840193506100dd565b61014a7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183610067565b91506020850394506020840393508592505b828411156101c6577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018551830990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000184518309915080845260208503945060208403935061015c565b81845250505050505050565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610203576000805260206000f35b50565b61032081511461021a576000805260206000f35b6102286102608201516101d2565b6102366102808201516101d2565b6102446102a08201516101d2565b6102526102c08201516101d2565b6102606102e08201516101d2565b61026e6103008201516101d2565b61027c6103208201516101d2565b50565b60008060208501516102c085015260208301516102e08501526020800183015161030085015260406020018301516103208501526060602001830151610340850152608060200183015161036085015260a06020018301516103808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e06102c08601200690508060208501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020808601200660408501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001604060e08501200660008501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c06101208501200691508160608501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182820960a08501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991508160808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000180600184030106915081610260850152816102808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e0610260850120068060c08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181820992508260e08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101008601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101208601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101408601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101608601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160806101e086012006610180860152505050505050565b60017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836060860151030106618000096102a08301526107ec600261028084016100c8565b610260820151600191507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001816102a0850151096102a0840152505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102a086015109830301069050806101a0830152505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016101a08601516103208601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102c08601510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102e08601510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160408601516102a08601510890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151820990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018501030692507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028086015184099250826101c08601525050505050565b81518152602082015160208201525050565b6040518151815260208201516020820152825160408201526020830151606082015260408260808360066107d05a03fa80610bec576000805260206000f35b50505050565b6000604051835181526020840151602082015284604082015260408160608360076107d05a03fa915081610c2a576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610c5a576000805260206000f35b5050505050565b600060405183815284602082015285604082015260408160608360076107d05a03fa915081610c94576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610cc4576000805260206000f35b505050505050565b600060405183815284602082015285604082015260408360608360076107d05a03fa915081610cff576000805260206000f35b505050505050565b6101e08201610d1a6101e0830182610b9b565b610d2e610180840151610220840183610bf2565b505050565b60008061022084017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610260860151099250610db6837f29e79ad99d77a4ffcf4b8ab0e464b713c864049f2add12136968cff0864088eb7f1410aa6f48b6cf3bf598c6dfa5cb01466519164bd833de0e7827db62d8cac07884610ccc565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028085015184099250610e2d837f1d0d822b29a0910be348f05ad545cfca3c4a45984ec7b3c071978ca4e979b6867f1689e43d6a0f29f2c00abcf49c803fa5c0ebbf4937b1ad668147399369a8fa7e84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610280860151099250610ea8837f145db25e5672a52146b54883489d4339ba16367240f7dd1dacb09e4daf1189d77f1f3ae2a7d2308c43976c572190b3779f177a653b623119177aec86a173733e0984610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c08601516102a0860151099250610f23837f2ece7b42d73dbbda215415dad9da14a4e9f50453c2ea3c269d78f0c4f48b93927f1d854ccab14984cad21ee83abc5688656d4978607ee46ce05c6e30e70438934c84610c61565b60c08501519250610f76837f28dfa5635712fec932cb955efa78de7c3bb1d717ca47ac63d0028c25000ab9827f0c1d9a27ace009b0748df47d8996964d4c5efe448f5689be7f89b1c9b54d1fd484610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a08601516102608601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160020991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160030991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102a0850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610180860151840892506112518360e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102c085015160208701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102e085015160208701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506114bb837f1a57e0730386d03ce171300fd06d8df31762d7652b64af847809b15539bf96477f12515de6655d8e300d5106f29f03a0e8d28d2c9c2cf842475e26a42f3eca1c3784610c61565b6114c9610120850182610bad565b608085015192506114df83610160860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018384099250611514836101a0860183610bf2565b61152660e08601516020860183610bf2565b6115396101008601516060860183610bf2565b61154c61012086015160a0860183610bf2565b61159d6101408601517f28a149d8479d0660ccf9119b862a6296efb8955f144f3a4c28218cbdc30c4a3e7f268d5e96726a4f0a0af926881dd088840f0b189fc0bac1c06378ca1342030d4784610c61565b6115ee6101608601517f0e7776860985ee7b82e3ff3a29a0704c80cc4f49fd6a08562de1286b1a4147737f16d85b4ca470712c952db758ba22542a1494058886d0cf5bc1d6e2796d5d7a3a84610c61565b6101c085015192507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060c087015161032087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060e087015161026087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061010087015161028087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101208701516102a087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101408701516102c087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101608701516102e087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061018087015161030087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506117ae836002600184610c61565b606085015192506117c4836101e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160608601516101808701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb8409925061184883610220860183610bf2565b5050505050565b60006040516101e0830151815260206101e08401015160208201527f1e3b651c96c337f8f6266fadcef22dc97717b5d44b445a5ef799a6cd3cc564a060408201527f10b13ed45e1871ff867a120754de5bf5c1395ad0078891e1b81f284ef6df78ca60608201527f2b57d40b181c33d7331accce5e5b890345b051c33f74e24ab728b18a3f7b473e60808201527f241a20e6fc3bc59485fa2e92365b46bf48742e8fac0b18859306488928cdcf0860a082015261022083015160c08201526020610220840101517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47817f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47030690508060e08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101008301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101208301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6101408301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa6101608301526020826101808460086107d05a03fa825181169350505050919050565b6040516102c08101604052611a3084610206565b611a3b83828661027f565b611a4481610785565b611a4e838261082a565b611a58818561088d565b611a628185610d07565b611a6c8185610d33565b611a758161184f565b6102c082036040528060005260206000f35b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611aee82611aa5565b810181811067ffffffffffffffff82111715611b0d57611b0c611ab6565b5b80604052505050565b6000611b20611a87565b9050611b2c8282611ae5565b919050565b600067ffffffffffffffff821115611b4c57611b4b611ab6565b5b611b5582611aa5565b9050602081019050919050565b82818337600083830152505050565b6000611b84611b7f84611b31565b611b16565b905082815260208101848484011115611ba057611b9f611aa0565b5b611bab848285611b62565b509392505050565b600082601f830112611bc857611bc7611a9b565b5b8135611bd8848260208601611b71565b91505092915050565b600067ffffffffffffffff821115611bfc57611bfb611ab6565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b611c2581611c12565b8114611c3057600080fd5b50565b600081359050611c4281611c1c565b92915050565b6000611c5b611c5684611be1565b611b16565b90508083825260208201905060208402830185811115611c7e57611c7d611c0d565b5b835b81811015611ca75780611c938882611c33565b845260208401935050602081019050611c80565b5050509392505050565b600082601f830112611cc657611cc5611a9b565b5b8135611cd6848260208601611c48565b91505092915050565b60008060408385031215611cf657611cf5611a91565b5b600083013567ffffffffffffffff811115611d1457611d13611a96565b5b611d2085828601611bb3565b925050602083013567ffffffffffffffff811115611d4157611d40611a96565b5b611d4d85828601611cb1565b9150509250929050565b60008115159050919050565b611d6c81611d57565b82525050565b6000602082019050611d876000830184611d63565b9291505056fea26469706673582212203093dcfd459ab1becb11ad43ebcf9e3441be5d423473c0159821433f9605e36864736f6c63430008180033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DC3 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1E8E1E13 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x1CDF JUMP JUMPDEST PUSH2 0x60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x57 SWAP2 SWAP1 PUSH2 0x1D72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x1A1C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 DUP5 DUP5 PUSH1 0x0 DUP1 JUMPDEST DUP3 ISZERO PUSH2 0x9C JUMPI DUP3 DUP5 SDIV SWAP2 POP DUP5 DUP3 MUL DUP7 SUB SWAP1 POP DUP5 SWAP6 POP DUP1 SWAP5 POP DUP3 DUP3 MUL DUP5 SUB SWAP1 POP DUP3 SWAP4 POP DUP1 SWAP3 POP PUSH2 0x72 JUMP JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP7 SLT ISZERO PUSH2 0xB9 JUMPI DUP9 DUP7 ADD SWAP6 POP JUMPDEST DUP6 SWAP7 POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x20 DUP5 MUL DUP4 ADD DUP2 MLOAD PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x120 JUMPI DUP2 DUP6 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP5 MLOAD DUP4 MULMOD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xDD JUMP JUMPDEST PUSH2 0x14A PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH2 0x67 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP6 SUB SWAP5 POP PUSH1 0x20 DUP5 SUB SWAP4 POP DUP6 SWAP3 POP JUMPDEST DUP3 DUP5 GT ISZERO PUSH2 0x1C6 JUMPI PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP6 MLOAD DUP4 MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP5 MLOAD DUP4 MULMOD SWAP2 POP DUP1 DUP5 MSTORE PUSH1 0x20 DUP6 SUB SWAP5 POP PUSH1 0x20 DUP5 SUB SWAP4 POP PUSH2 0x15C JUMP JUMPDEST DUP2 DUP5 MSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x203 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH2 0x320 DUP2 MLOAD EQ PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST PUSH2 0x228 PUSH2 0x260 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x236 PUSH2 0x280 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x244 PUSH2 0x2A0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x252 PUSH2 0x2C0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x260 PUSH2 0x2E0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x26E PUSH2 0x300 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x27C PUSH2 0x320 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x2C0 DUP6 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x2E0 DUP6 ADD MSTORE PUSH1 0x20 DUP1 ADD DUP4 ADD MLOAD PUSH2 0x300 DUP6 ADD MSTORE PUSH1 0x40 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x320 DUP6 ADD MSTORE PUSH1 0x60 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x340 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x360 DUP6 ADD MSTORE PUSH1 0xA0 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x380 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xE0 PUSH2 0x2C0 DUP7 ADD KECCAK256 MOD SWAP1 POP DUP1 PUSH1 0x20 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP1 DUP7 ADD KECCAK256 MOD PUSH1 0x40 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 PUSH1 0xE0 DUP6 ADD KECCAK256 MOD PUSH1 0x0 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 PUSH2 0x120 DUP6 ADD KECCAK256 MOD SWAP2 POP DUP2 PUSH1 0x60 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP3 MULMOD PUSH1 0xA0 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP DUP2 PUSH1 0x80 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0x1 DUP5 SUB ADD MOD SWAP2 POP DUP2 PUSH2 0x260 DUP6 ADD MSTORE DUP2 PUSH2 0x280 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xE0 PUSH2 0x260 DUP6 ADD KECCAK256 MOD DUP1 PUSH1 0xC0 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP3 MULMOD SWAP3 POP DUP3 PUSH1 0xE0 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x100 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x120 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x140 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x160 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x80 PUSH2 0x1E0 DUP7 ADD KECCAK256 MOD PUSH2 0x180 DUP7 ADD MSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH1 0x60 DUP7 ADD MLOAD SUB ADD MOD PUSH2 0x8000 MULMOD PUSH2 0x2A0 DUP4 ADD MSTORE PUSH2 0x7EC PUSH1 0x2 PUSH2 0x280 DUP5 ADD PUSH2 0xC8 JUMP JUMPDEST PUSH2 0x260 DUP3 ADD MLOAD PUSH1 0x1 SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 PUSH2 0x2A0 DUP6 ADD MLOAD MULMOD PUSH2 0x2A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD MULMOD DUP4 SUB ADD MOD SWAP1 POP DUP1 PUSH2 0x1A0 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x1A0 DUP7 ADD MLOAD PUSH2 0x320 DUP7 ADD MLOAD ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2C0 DUP7 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x260 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2E0 DUP7 ADD MLOAD MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP3 ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP3 ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x300 DUP6 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP3 MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP6 ADD SUB MOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x1C0 DUP7 ADD MSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP3 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL DUP1 PUSH2 0xBEC JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC2A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC94 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xCC4 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xCFF JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP3 ADD PUSH2 0xD1A PUSH2 0x1E0 DUP4 ADD DUP3 PUSH2 0xB9B JUMP JUMPDEST PUSH2 0xD2E PUSH2 0x180 DUP5 ADD MLOAD PUSH2 0x220 DUP5 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x220 DUP5 ADD PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x260 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xDB6 DUP4 PUSH32 0x29E79AD99D77A4FFCF4B8AB0E464B713C864049F2ADD12136968CFF0864088EB PUSH32 0x1410AA6F48B6CF3BF598C6DFA5CB01466519164BD833DE0E7827DB62D8CAC078 DUP5 PUSH2 0xCCC JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH2 0xE2D DUP4 PUSH32 0x1D0D822B29A0910BE348F05AD545CFCA3C4A45984EC7B3C071978CA4E979B686 PUSH32 0x1689E43D6A0F29F2C00ABCF49C803FA5C0EBBF4937B1AD668147399369A8FA7E DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x280 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xEA8 DUP4 PUSH32 0x145DB25E5672A52146B54883489D4339BA16367240F7DD1DACB09E4DAF1189D7 PUSH32 0x1F3AE2A7D2308C43976C572190B3779F177A653B623119177AEC86A173733E09 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xF23 DUP4 PUSH32 0x2ECE7B42D73DBBDA215415DAD9DA14A4E9F50453C2EA3C269D78F0C4F48B9392 PUSH32 0x1D854CCAB14984CAD21EE83ABC5688656D4978607EE46CE05C6E30E70438934C DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0xC0 DUP6 ADD MLOAD SWAP3 POP PUSH2 0xF76 DUP4 PUSH32 0x28DFA5635712FEC932CB955EFA78DE7C3BB1D717CA47AC63D0028C25000AB982 PUSH32 0xC1D9A27ACE009B0748DF47D8996964D4C5EFE448F5689BE7F89B1C9B54D1FD4 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH2 0x260 DUP7 ADD MLOAD ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x2 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x3 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2A0 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x180 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH2 0x1251 DUP4 PUSH1 0xE0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2C0 DUP6 ADD MLOAD PUSH1 0x20 DUP8 ADD MLOAD MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x260 DUP6 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2E0 DUP6 ADD MLOAD PUSH1 0x20 DUP8 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x300 DUP6 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 SUB MOD SWAP3 POP PUSH2 0x14BB DUP4 PUSH32 0x1A57E0730386D03CE171300FD06D8DF31762D7652B64AF847809B15539BF9647 PUSH32 0x12515DE6655D8E300D5106F29F03A0E8D28D2C9C2CF842475E26A42F3ECA1C37 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x14C9 PUSH2 0x120 DUP6 ADD DUP3 PUSH2 0xBAD JUMP JUMPDEST PUSH1 0x80 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x14DF DUP4 PUSH2 0x160 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 DUP5 MULMOD SWAP3 POP PUSH2 0x1514 DUP4 PUSH2 0x1A0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x1526 PUSH1 0xE0 DUP7 ADD MLOAD PUSH1 0x20 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x1539 PUSH2 0x100 DUP7 ADD MLOAD PUSH1 0x60 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x154C PUSH2 0x120 DUP7 ADD MLOAD PUSH1 0xA0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x159D PUSH2 0x140 DUP7 ADD MLOAD PUSH32 0x28A149D8479D0660CCF9119B862A6296EFB8955F144F3A4C28218CBDC30C4A3E PUSH32 0x268D5E96726A4F0A0AF926881DD088840F0B189FC0BAC1C06378CA1342030D47 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x15EE PUSH2 0x160 DUP7 ADD MLOAD PUSH32 0xE7776860985EE7B82E3FF3A29A0704C80CC4F49FD6A08562DE1286B1A414773 PUSH32 0x16D85B4CA470712C952DB758BA22542A1494058886D0CF5BC1D6E2796D5D7A3A DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x1C0 DUP6 ADD MLOAD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0xC0 DUP8 ADD MLOAD PUSH2 0x320 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0xE0 DUP8 ADD MLOAD PUSH2 0x260 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x100 DUP8 ADD MLOAD PUSH2 0x280 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x120 DUP8 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x140 DUP8 ADD MLOAD PUSH2 0x2C0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x160 DUP8 ADD MLOAD PUSH2 0x2E0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x180 DUP8 ADD MLOAD PUSH2 0x300 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 SUB MOD SWAP3 POP PUSH2 0x17AE DUP4 PUSH1 0x2 PUSH1 0x1 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0x60 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x17C4 DUP4 PUSH2 0x1E0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x60 DUP7 ADD MLOAD PUSH2 0x180 DUP8 ADD MLOAD MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH32 0x2D1BA66F5941DC91017171FA69EC2BD0022A2A2D4115A009A93458FD4E26ECFB DUP5 MULMOD SWAP3 POP PUSH2 0x1848 DUP4 PUSH2 0x220 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x1E0 DUP4 ADD MLOAD DUP2 MSTORE PUSH1 0x20 PUSH2 0x1E0 DUP5 ADD ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x1E3B651C96C337F8F6266FADCEF22DC97717B5D44B445A5EF799A6CD3CC564A0 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x10B13ED45E1871FF867A120754DE5BF5C1395AD0078891E1B81F284EF6DF78CA PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x2B57D40B181C33D7331ACCCE5E5B890345B051C33F74E24AB728B18A3F7B473E PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x241A20E6FC3BC59485FA2E92365B46BF48742E8FAC0B18859306488928CDCF08 PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x220 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x20 PUSH2 0x220 DUP5 ADD ADD MLOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 DUP2 PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD SWAP1 POP DUP1 PUSH1 0xE0 DUP4 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x100 DUP4 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x120 DUP4 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x140 DUP4 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x160 DUP4 ADD MSTORE PUSH1 0x20 DUP3 PUSH2 0x180 DUP5 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL DUP3 MLOAD DUP2 AND SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C0 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x1A30 DUP5 PUSH2 0x206 JUMP JUMPDEST PUSH2 0x1A3B DUP4 DUP3 DUP7 PUSH2 0x27F JUMP JUMPDEST PUSH2 0x1A44 DUP2 PUSH2 0x785 JUMP JUMPDEST PUSH2 0x1A4E DUP4 DUP3 PUSH2 0x82A JUMP JUMPDEST PUSH2 0x1A58 DUP2 DUP6 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x1A62 DUP2 DUP6 PUSH2 0xD07 JUMP JUMPDEST PUSH2 0x1A6C DUP2 DUP6 PUSH2 0xD33 JUMP JUMPDEST PUSH2 0x1A75 DUP2 PUSH2 0x184F JUMP JUMPDEST PUSH2 0x2C0 DUP3 SUB PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1AEE DUP3 PUSH2 0x1AA5 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1B0D JUMPI PUSH2 0x1B0C PUSH2 0x1AB6 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B20 PUSH2 0x1A87 JUMP JUMPDEST SWAP1 POP PUSH2 0x1B2C DUP3 DUP3 PUSH2 0x1AE5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1B4C JUMPI PUSH2 0x1B4B PUSH2 0x1AB6 JUMP JUMPDEST JUMPDEST PUSH2 0x1B55 DUP3 PUSH2 0x1AA5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B84 PUSH2 0x1B7F DUP5 PUSH2 0x1B31 JUMP JUMPDEST PUSH2 0x1B16 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1BA0 JUMPI PUSH2 0x1B9F PUSH2 0x1AA0 JUMP JUMPDEST JUMPDEST PUSH2 0x1BAB DUP5 DUP3 DUP6 PUSH2 0x1B62 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1BC8 JUMPI PUSH2 0x1BC7 PUSH2 0x1A9B JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1BD8 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1B71 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1BFC JUMPI PUSH2 0x1BFB PUSH2 0x1AB6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C25 DUP2 PUSH2 0x1C12 JUMP JUMPDEST DUP2 EQ PUSH2 0x1C30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1C42 DUP2 PUSH2 0x1C1C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C5B PUSH2 0x1C56 DUP5 PUSH2 0x1BE1 JUMP JUMPDEST PUSH2 0x1B16 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1C7E JUMPI PUSH2 0x1C7D PUSH2 0x1C0D JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1CA7 JUMPI DUP1 PUSH2 0x1C93 DUP9 DUP3 PUSH2 0x1C33 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1C80 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1CC6 JUMPI PUSH2 0x1CC5 PUSH2 0x1A9B JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1CD6 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1C48 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1CF6 JUMPI PUSH2 0x1CF5 PUSH2 0x1A91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D14 JUMPI PUSH2 0x1D13 PUSH2 0x1A96 JUMP JUMPDEST JUMPDEST PUSH2 0x1D20 DUP6 DUP3 DUP7 ADD PUSH2 0x1BB3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D41 JUMPI PUSH2 0x1D40 PUSH2 0x1A96 JUMP JUMPDEST JUMPDEST PUSH2 0x1D4D DUP6 DUP3 DUP7 ADD PUSH2 0x1CB1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D6C DUP2 PUSH2 0x1D57 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D87 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D63 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDRESS SWAP4 0xDC REVERT GASLIMIT SWAP11 0xB1 0xBE 0xCB GT 0xAD NUMBER 0xEB 0xCF SWAP15 CALLVALUE COINBASE 0xBE TSTORE TIMESTAMP CALLVALUE PUSH20 0xC0159821433F9605E36864736F6C634300081800 CALLER ","sourceMap":"832:23908:6:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@verifyProof_815":{"entryPoint":96,"id":815,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":7240,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":7025,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":7345,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":7091,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":7219,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptrt_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":7391,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":7523,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":7538,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":6934,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":6791,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":7137,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":6961,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":7511,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":7186,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":7010,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":6885,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":6838,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":6811,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":7181,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":6816,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":6806,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":6801,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":6821,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_uint256":{"entryPoint":7196,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5761:9","nodeType":"YulBlock","src":"0:5761:9","statements":[{"body":{"nativeSrc":"47:35:9","nodeType":"YulBlock","src":"47:35:9","statements":[{"nativeSrc":"57:19:9","nodeType":"YulAssignment","src":"57:19:9","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:9","nodeType":"YulLiteral","src":"73:2:9","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:9","nodeType":"YulIdentifier","src":"67:5:9"},"nativeSrc":"67:9:9","nodeType":"YulFunctionCall","src":"67:9:9"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:9","nodeType":"YulIdentifier","src":"57:6:9"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:9","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:9","nodeType":"YulTypedName","src":"40:6:9","type":""}],"src":"7:75:9"},{"body":{"nativeSrc":"177:28:9","nodeType":"YulBlock","src":"177:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:9","nodeType":"YulLiteral","src":"194:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:9","nodeType":"YulLiteral","src":"197:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:9","nodeType":"YulIdentifier","src":"187:6:9"},"nativeSrc":"187:12:9","nodeType":"YulFunctionCall","src":"187:12:9"},"nativeSrc":"187:12:9","nodeType":"YulExpressionStatement","src":"187:12:9"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:9","nodeType":"YulFunctionDefinition","src":"88:117:9"},{"body":{"nativeSrc":"300:28:9","nodeType":"YulBlock","src":"300:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:9","nodeType":"YulLiteral","src":"317:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:9","nodeType":"YulLiteral","src":"320:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:9","nodeType":"YulIdentifier","src":"310:6:9"},"nativeSrc":"310:12:9","nodeType":"YulFunctionCall","src":"310:12:9"},"nativeSrc":"310:12:9","nodeType":"YulExpressionStatement","src":"310:12:9"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:9","nodeType":"YulFunctionDefinition","src":"211:117:9"},{"body":{"nativeSrc":"423:28:9","nodeType":"YulBlock","src":"423:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:9","nodeType":"YulLiteral","src":"440:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:9","nodeType":"YulLiteral","src":"443:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:9","nodeType":"YulIdentifier","src":"433:6:9"},"nativeSrc":"433:12:9","nodeType":"YulFunctionCall","src":"433:12:9"},"nativeSrc":"433:12:9","nodeType":"YulExpressionStatement","src":"433:12:9"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:9","nodeType":"YulFunctionDefinition","src":"334:117:9"},{"body":{"nativeSrc":"546:28:9","nodeType":"YulBlock","src":"546:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:9","nodeType":"YulLiteral","src":"563:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:9","nodeType":"YulLiteral","src":"566:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:9","nodeType":"YulIdentifier","src":"556:6:9"},"nativeSrc":"556:12:9","nodeType":"YulFunctionCall","src":"556:12:9"},"nativeSrc":"556:12:9","nodeType":"YulExpressionStatement","src":"556:12:9"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"457:117:9","nodeType":"YulFunctionDefinition","src":"457:117:9"},{"body":{"nativeSrc":"628:54:9","nodeType":"YulBlock","src":"628:54:9","statements":[{"nativeSrc":"638:38:9","nodeType":"YulAssignment","src":"638:38:9","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:9","nodeType":"YulIdentifier","src":"656:5:9"},{"kind":"number","nativeSrc":"663:2:9","nodeType":"YulLiteral","src":"663:2:9","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"652:3:9","nodeType":"YulIdentifier","src":"652:3:9"},"nativeSrc":"652:14:9","nodeType":"YulFunctionCall","src":"652:14:9"},{"arguments":[{"kind":"number","nativeSrc":"672:2:9","nodeType":"YulLiteral","src":"672:2:9","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"668:3:9","nodeType":"YulIdentifier","src":"668:3:9"},"nativeSrc":"668:7:9","nodeType":"YulFunctionCall","src":"668:7:9"}],"functionName":{"name":"and","nativeSrc":"648:3:9","nodeType":"YulIdentifier","src":"648:3:9"},"nativeSrc":"648:28:9","nodeType":"YulFunctionCall","src":"648:28:9"},"variableNames":[{"name":"result","nativeSrc":"638:6:9","nodeType":"YulIdentifier","src":"638:6:9"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"580:102:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"611:5:9","nodeType":"YulTypedName","src":"611:5:9","type":""}],"returnVariables":[{"name":"result","nativeSrc":"621:6:9","nodeType":"YulTypedName","src":"621:6:9","type":""}],"src":"580:102:9"},{"body":{"nativeSrc":"716:152:9","nodeType":"YulBlock","src":"716:152:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"733:1:9","nodeType":"YulLiteral","src":"733:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"736:77:9","nodeType":"YulLiteral","src":"736:77:9","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"726:6:9","nodeType":"YulIdentifier","src":"726:6:9"},"nativeSrc":"726:88:9","nodeType":"YulFunctionCall","src":"726:88:9"},"nativeSrc":"726:88:9","nodeType":"YulExpressionStatement","src":"726:88:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"830:1:9","nodeType":"YulLiteral","src":"830:1:9","type":"","value":"4"},{"kind":"number","nativeSrc":"833:4:9","nodeType":"YulLiteral","src":"833:4:9","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"823:6:9","nodeType":"YulIdentifier","src":"823:6:9"},"nativeSrc":"823:15:9","nodeType":"YulFunctionCall","src":"823:15:9"},"nativeSrc":"823:15:9","nodeType":"YulExpressionStatement","src":"823:15:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"854:1:9","nodeType":"YulLiteral","src":"854:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"857:4:9","nodeType":"YulLiteral","src":"857:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"847:6:9","nodeType":"YulIdentifier","src":"847:6:9"},"nativeSrc":"847:15:9","nodeType":"YulFunctionCall","src":"847:15:9"},"nativeSrc":"847:15:9","nodeType":"YulExpressionStatement","src":"847:15:9"}]},"name":"panic_error_0x41","nativeSrc":"688:180:9","nodeType":"YulFunctionDefinition","src":"688:180:9"},{"body":{"nativeSrc":"917:238:9","nodeType":"YulBlock","src":"917:238:9","statements":[{"nativeSrc":"927:58:9","nodeType":"YulVariableDeclaration","src":"927:58:9","value":{"arguments":[{"name":"memPtr","nativeSrc":"949:6:9","nodeType":"YulIdentifier","src":"949:6:9"},{"arguments":[{"name":"size","nativeSrc":"979:4:9","nodeType":"YulIdentifier","src":"979:4:9"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"957:21:9","nodeType":"YulIdentifier","src":"957:21:9"},"nativeSrc":"957:27:9","nodeType":"YulFunctionCall","src":"957:27:9"}],"functionName":{"name":"add","nativeSrc":"945:3:9","nodeType":"YulIdentifier","src":"945:3:9"},"nativeSrc":"945:40:9","nodeType":"YulFunctionCall","src":"945:40:9"},"variables":[{"name":"newFreePtr","nativeSrc":"931:10:9","nodeType":"YulTypedName","src":"931:10:9","type":""}]},{"body":{"nativeSrc":"1096:22:9","nodeType":"YulBlock","src":"1096:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1098:16:9","nodeType":"YulIdentifier","src":"1098:16:9"},"nativeSrc":"1098:18:9","nodeType":"YulFunctionCall","src":"1098:18:9"},"nativeSrc":"1098:18:9","nodeType":"YulExpressionStatement","src":"1098:18:9"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1039:10:9","nodeType":"YulIdentifier","src":"1039:10:9"},{"kind":"number","nativeSrc":"1051:18:9","nodeType":"YulLiteral","src":"1051:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1036:2:9","nodeType":"YulIdentifier","src":"1036:2:9"},"nativeSrc":"1036:34:9","nodeType":"YulFunctionCall","src":"1036:34:9"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1075:10:9","nodeType":"YulIdentifier","src":"1075:10:9"},{"name":"memPtr","nativeSrc":"1087:6:9","nodeType":"YulIdentifier","src":"1087:6:9"}],"functionName":{"name":"lt","nativeSrc":"1072:2:9","nodeType":"YulIdentifier","src":"1072:2:9"},"nativeSrc":"1072:22:9","nodeType":"YulFunctionCall","src":"1072:22:9"}],"functionName":{"name":"or","nativeSrc":"1033:2:9","nodeType":"YulIdentifier","src":"1033:2:9"},"nativeSrc":"1033:62:9","nodeType":"YulFunctionCall","src":"1033:62:9"},"nativeSrc":"1030:88:9","nodeType":"YulIf","src":"1030:88:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1134:2:9","nodeType":"YulLiteral","src":"1134:2:9","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1138:10:9","nodeType":"YulIdentifier","src":"1138:10:9"}],"functionName":{"name":"mstore","nativeSrc":"1127:6:9","nodeType":"YulIdentifier","src":"1127:6:9"},"nativeSrc":"1127:22:9","nodeType":"YulFunctionCall","src":"1127:22:9"},"nativeSrc":"1127:22:9","nodeType":"YulExpressionStatement","src":"1127:22:9"}]},"name":"finalize_allocation","nativeSrc":"874:281:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"903:6:9","nodeType":"YulTypedName","src":"903:6:9","type":""},{"name":"size","nativeSrc":"911:4:9","nodeType":"YulTypedName","src":"911:4:9","type":""}],"src":"874:281:9"},{"body":{"nativeSrc":"1202:88:9","nodeType":"YulBlock","src":"1202:88:9","statements":[{"nativeSrc":"1212:30:9","nodeType":"YulAssignment","src":"1212:30:9","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1222:18:9","nodeType":"YulIdentifier","src":"1222:18:9"},"nativeSrc":"1222:20:9","nodeType":"YulFunctionCall","src":"1222:20:9"},"variableNames":[{"name":"memPtr","nativeSrc":"1212:6:9","nodeType":"YulIdentifier","src":"1212:6:9"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1271:6:9","nodeType":"YulIdentifier","src":"1271:6:9"},{"name":"size","nativeSrc":"1279:4:9","nodeType":"YulIdentifier","src":"1279:4:9"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1251:19:9","nodeType":"YulIdentifier","src":"1251:19:9"},"nativeSrc":"1251:33:9","nodeType":"YulFunctionCall","src":"1251:33:9"},"nativeSrc":"1251:33:9","nodeType":"YulExpressionStatement","src":"1251:33:9"}]},"name":"allocate_memory","nativeSrc":"1161:129:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1186:4:9","nodeType":"YulTypedName","src":"1186:4:9","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1195:6:9","nodeType":"YulTypedName","src":"1195:6:9","type":""}],"src":"1161:129:9"},{"body":{"nativeSrc":"1362:241:9","nodeType":"YulBlock","src":"1362:241:9","statements":[{"body":{"nativeSrc":"1467:22:9","nodeType":"YulBlock","src":"1467:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1469:16:9","nodeType":"YulIdentifier","src":"1469:16:9"},"nativeSrc":"1469:18:9","nodeType":"YulFunctionCall","src":"1469:18:9"},"nativeSrc":"1469:18:9","nodeType":"YulExpressionStatement","src":"1469:18:9"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1439:6:9","nodeType":"YulIdentifier","src":"1439:6:9"},{"kind":"number","nativeSrc":"1447:18:9","nodeType":"YulLiteral","src":"1447:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1436:2:9","nodeType":"YulIdentifier","src":"1436:2:9"},"nativeSrc":"1436:30:9","nodeType":"YulFunctionCall","src":"1436:30:9"},"nativeSrc":"1433:56:9","nodeType":"YulIf","src":"1433:56:9"},{"nativeSrc":"1499:37:9","nodeType":"YulAssignment","src":"1499:37:9","value":{"arguments":[{"name":"length","nativeSrc":"1529:6:9","nodeType":"YulIdentifier","src":"1529:6:9"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1507:21:9","nodeType":"YulIdentifier","src":"1507:21:9"},"nativeSrc":"1507:29:9","nodeType":"YulFunctionCall","src":"1507:29:9"},"variableNames":[{"name":"size","nativeSrc":"1499:4:9","nodeType":"YulIdentifier","src":"1499:4:9"}]},{"nativeSrc":"1573:23:9","nodeType":"YulAssignment","src":"1573:23:9","value":{"arguments":[{"name":"size","nativeSrc":"1585:4:9","nodeType":"YulIdentifier","src":"1585:4:9"},{"kind":"number","nativeSrc":"1591:4:9","nodeType":"YulLiteral","src":"1591:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1581:3:9","nodeType":"YulIdentifier","src":"1581:3:9"},"nativeSrc":"1581:15:9","nodeType":"YulFunctionCall","src":"1581:15:9"},"variableNames":[{"name":"size","nativeSrc":"1573:4:9","nodeType":"YulIdentifier","src":"1573:4:9"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1296:307:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1346:6:9","nodeType":"YulTypedName","src":"1346:6:9","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1357:4:9","nodeType":"YulTypedName","src":"1357:4:9","type":""}],"src":"1296:307:9"},{"body":{"nativeSrc":"1673:82:9","nodeType":"YulBlock","src":"1673:82:9","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1696:3:9","nodeType":"YulIdentifier","src":"1696:3:9"},{"name":"src","nativeSrc":"1701:3:9","nodeType":"YulIdentifier","src":"1701:3:9"},{"name":"length","nativeSrc":"1706:6:9","nodeType":"YulIdentifier","src":"1706:6:9"}],"functionName":{"name":"calldatacopy","nativeSrc":"1683:12:9","nodeType":"YulIdentifier","src":"1683:12:9"},"nativeSrc":"1683:30:9","nodeType":"YulFunctionCall","src":"1683:30:9"},"nativeSrc":"1683:30:9","nodeType":"YulExpressionStatement","src":"1683:30:9"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1733:3:9","nodeType":"YulIdentifier","src":"1733:3:9"},{"name":"length","nativeSrc":"1738:6:9","nodeType":"YulIdentifier","src":"1738:6:9"}],"functionName":{"name":"add","nativeSrc":"1729:3:9","nodeType":"YulIdentifier","src":"1729:3:9"},"nativeSrc":"1729:16:9","nodeType":"YulFunctionCall","src":"1729:16:9"},{"kind":"number","nativeSrc":"1747:1:9","nodeType":"YulLiteral","src":"1747:1:9","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1722:6:9","nodeType":"YulIdentifier","src":"1722:6:9"},"nativeSrc":"1722:27:9","nodeType":"YulFunctionCall","src":"1722:27:9"},"nativeSrc":"1722:27:9","nodeType":"YulExpressionStatement","src":"1722:27:9"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"1609:146:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1655:3:9","nodeType":"YulTypedName","src":"1655:3:9","type":""},{"name":"dst","nativeSrc":"1660:3:9","nodeType":"YulTypedName","src":"1660:3:9","type":""},{"name":"length","nativeSrc":"1665:6:9","nodeType":"YulTypedName","src":"1665:6:9","type":""}],"src":"1609:146:9"},{"body":{"nativeSrc":"1844:340:9","nodeType":"YulBlock","src":"1844:340:9","statements":[{"nativeSrc":"1854:74:9","nodeType":"YulAssignment","src":"1854:74:9","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1920:6:9","nodeType":"YulIdentifier","src":"1920:6:9"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1879:40:9","nodeType":"YulIdentifier","src":"1879:40:9"},"nativeSrc":"1879:48:9","nodeType":"YulFunctionCall","src":"1879:48:9"}],"functionName":{"name":"allocate_memory","nativeSrc":"1863:15:9","nodeType":"YulIdentifier","src":"1863:15:9"},"nativeSrc":"1863:65:9","nodeType":"YulFunctionCall","src":"1863:65:9"},"variableNames":[{"name":"array","nativeSrc":"1854:5:9","nodeType":"YulIdentifier","src":"1854:5:9"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"1944:5:9","nodeType":"YulIdentifier","src":"1944:5:9"},{"name":"length","nativeSrc":"1951:6:9","nodeType":"YulIdentifier","src":"1951:6:9"}],"functionName":{"name":"mstore","nativeSrc":"1937:6:9","nodeType":"YulIdentifier","src":"1937:6:9"},"nativeSrc":"1937:21:9","nodeType":"YulFunctionCall","src":"1937:21:9"},"nativeSrc":"1937:21:9","nodeType":"YulExpressionStatement","src":"1937:21:9"},{"nativeSrc":"1967:27:9","nodeType":"YulVariableDeclaration","src":"1967:27:9","value":{"arguments":[{"name":"array","nativeSrc":"1982:5:9","nodeType":"YulIdentifier","src":"1982:5:9"},{"kind":"number","nativeSrc":"1989:4:9","nodeType":"YulLiteral","src":"1989:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1978:3:9","nodeType":"YulIdentifier","src":"1978:3:9"},"nativeSrc":"1978:16:9","nodeType":"YulFunctionCall","src":"1978:16:9"},"variables":[{"name":"dst","nativeSrc":"1971:3:9","nodeType":"YulTypedName","src":"1971:3:9","type":""}]},{"body":{"nativeSrc":"2032:83:9","nodeType":"YulBlock","src":"2032:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2034:77:9","nodeType":"YulIdentifier","src":"2034:77:9"},"nativeSrc":"2034:79:9","nodeType":"YulFunctionCall","src":"2034:79:9"},"nativeSrc":"2034:79:9","nodeType":"YulExpressionStatement","src":"2034:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2013:3:9","nodeType":"YulIdentifier","src":"2013:3:9"},{"name":"length","nativeSrc":"2018:6:9","nodeType":"YulIdentifier","src":"2018:6:9"}],"functionName":{"name":"add","nativeSrc":"2009:3:9","nodeType":"YulIdentifier","src":"2009:3:9"},"nativeSrc":"2009:16:9","nodeType":"YulFunctionCall","src":"2009:16:9"},{"name":"end","nativeSrc":"2027:3:9","nodeType":"YulIdentifier","src":"2027:3:9"}],"functionName":{"name":"gt","nativeSrc":"2006:2:9","nodeType":"YulIdentifier","src":"2006:2:9"},"nativeSrc":"2006:25:9","nodeType":"YulFunctionCall","src":"2006:25:9"},"nativeSrc":"2003:112:9","nodeType":"YulIf","src":"2003:112:9"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2161:3:9","nodeType":"YulIdentifier","src":"2161:3:9"},{"name":"dst","nativeSrc":"2166:3:9","nodeType":"YulIdentifier","src":"2166:3:9"},{"name":"length","nativeSrc":"2171:6:9","nodeType":"YulIdentifier","src":"2171:6:9"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"2124:36:9","nodeType":"YulIdentifier","src":"2124:36:9"},"nativeSrc":"2124:54:9","nodeType":"YulFunctionCall","src":"2124:54:9"},"nativeSrc":"2124:54:9","nodeType":"YulExpressionStatement","src":"2124:54:9"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"1761:423:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1817:3:9","nodeType":"YulTypedName","src":"1817:3:9","type":""},{"name":"length","nativeSrc":"1822:6:9","nodeType":"YulTypedName","src":"1822:6:9","type":""},{"name":"end","nativeSrc":"1830:3:9","nodeType":"YulTypedName","src":"1830:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1838:5:9","nodeType":"YulTypedName","src":"1838:5:9","type":""}],"src":"1761:423:9"},{"body":{"nativeSrc":"2264:277:9","nodeType":"YulBlock","src":"2264:277:9","statements":[{"body":{"nativeSrc":"2313:83:9","nodeType":"YulBlock","src":"2313:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2315:77:9","nodeType":"YulIdentifier","src":"2315:77:9"},"nativeSrc":"2315:79:9","nodeType":"YulFunctionCall","src":"2315:79:9"},"nativeSrc":"2315:79:9","nodeType":"YulExpressionStatement","src":"2315:79:9"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2292:6:9","nodeType":"YulIdentifier","src":"2292:6:9"},{"kind":"number","nativeSrc":"2300:4:9","nodeType":"YulLiteral","src":"2300:4:9","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2288:3:9","nodeType":"YulIdentifier","src":"2288:3:9"},"nativeSrc":"2288:17:9","nodeType":"YulFunctionCall","src":"2288:17:9"},{"name":"end","nativeSrc":"2307:3:9","nodeType":"YulIdentifier","src":"2307:3:9"}],"functionName":{"name":"slt","nativeSrc":"2284:3:9","nodeType":"YulIdentifier","src":"2284:3:9"},"nativeSrc":"2284:27:9","nodeType":"YulFunctionCall","src":"2284:27:9"}],"functionName":{"name":"iszero","nativeSrc":"2277:6:9","nodeType":"YulIdentifier","src":"2277:6:9"},"nativeSrc":"2277:35:9","nodeType":"YulFunctionCall","src":"2277:35:9"},"nativeSrc":"2274:122:9","nodeType":"YulIf","src":"2274:122:9"},{"nativeSrc":"2405:34:9","nodeType":"YulVariableDeclaration","src":"2405:34:9","value":{"arguments":[{"name":"offset","nativeSrc":"2432:6:9","nodeType":"YulIdentifier","src":"2432:6:9"}],"functionName":{"name":"calldataload","nativeSrc":"2419:12:9","nodeType":"YulIdentifier","src":"2419:12:9"},"nativeSrc":"2419:20:9","nodeType":"YulFunctionCall","src":"2419:20:9"},"variables":[{"name":"length","nativeSrc":"2409:6:9","nodeType":"YulTypedName","src":"2409:6:9","type":""}]},{"nativeSrc":"2448:87:9","nodeType":"YulAssignment","src":"2448:87:9","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2508:6:9","nodeType":"YulIdentifier","src":"2508:6:9"},{"kind":"number","nativeSrc":"2516:4:9","nodeType":"YulLiteral","src":"2516:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2504:3:9","nodeType":"YulIdentifier","src":"2504:3:9"},"nativeSrc":"2504:17:9","nodeType":"YulFunctionCall","src":"2504:17:9"},{"name":"length","nativeSrc":"2523:6:9","nodeType":"YulIdentifier","src":"2523:6:9"},{"name":"end","nativeSrc":"2531:3:9","nodeType":"YulIdentifier","src":"2531:3:9"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"2457:46:9","nodeType":"YulIdentifier","src":"2457:46:9"},"nativeSrc":"2457:78:9","nodeType":"YulFunctionCall","src":"2457:78:9"},"variableNames":[{"name":"array","nativeSrc":"2448:5:9","nodeType":"YulIdentifier","src":"2448:5:9"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"2203:338:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2242:6:9","nodeType":"YulTypedName","src":"2242:6:9","type":""},{"name":"end","nativeSrc":"2250:3:9","nodeType":"YulTypedName","src":"2250:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2258:5:9","nodeType":"YulTypedName","src":"2258:5:9","type":""}],"src":"2203:338:9"},{"body":{"nativeSrc":"2629:229:9","nodeType":"YulBlock","src":"2629:229:9","statements":[{"body":{"nativeSrc":"2734:22:9","nodeType":"YulBlock","src":"2734:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2736:16:9","nodeType":"YulIdentifier","src":"2736:16:9"},"nativeSrc":"2736:18:9","nodeType":"YulFunctionCall","src":"2736:18:9"},"nativeSrc":"2736:18:9","nodeType":"YulExpressionStatement","src":"2736:18:9"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2706:6:9","nodeType":"YulIdentifier","src":"2706:6:9"},{"kind":"number","nativeSrc":"2714:18:9","nodeType":"YulLiteral","src":"2714:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2703:2:9","nodeType":"YulIdentifier","src":"2703:2:9"},"nativeSrc":"2703:30:9","nodeType":"YulFunctionCall","src":"2703:30:9"},"nativeSrc":"2700:56:9","nodeType":"YulIf","src":"2700:56:9"},{"nativeSrc":"2766:25:9","nodeType":"YulAssignment","src":"2766:25:9","value":{"arguments":[{"name":"length","nativeSrc":"2778:6:9","nodeType":"YulIdentifier","src":"2778:6:9"},{"kind":"number","nativeSrc":"2786:4:9","nodeType":"YulLiteral","src":"2786:4:9","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"2774:3:9","nodeType":"YulIdentifier","src":"2774:3:9"},"nativeSrc":"2774:17:9","nodeType":"YulFunctionCall","src":"2774:17:9"},"variableNames":[{"name":"size","nativeSrc":"2766:4:9","nodeType":"YulIdentifier","src":"2766:4:9"}]},{"nativeSrc":"2828:23:9","nodeType":"YulAssignment","src":"2828:23:9","value":{"arguments":[{"name":"size","nativeSrc":"2840:4:9","nodeType":"YulIdentifier","src":"2840:4:9"},{"kind":"number","nativeSrc":"2846:4:9","nodeType":"YulLiteral","src":"2846:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2836:3:9","nodeType":"YulIdentifier","src":"2836:3:9"},"nativeSrc":"2836:15:9","nodeType":"YulFunctionCall","src":"2836:15:9"},"variableNames":[{"name":"size","nativeSrc":"2828:4:9","nodeType":"YulIdentifier","src":"2828:4:9"}]}]},"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"2547:311:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"2613:6:9","nodeType":"YulTypedName","src":"2613:6:9","type":""}],"returnVariables":[{"name":"size","nativeSrc":"2624:4:9","nodeType":"YulTypedName","src":"2624:4:9","type":""}],"src":"2547:311:9"},{"body":{"nativeSrc":"2953:28:9","nodeType":"YulBlock","src":"2953:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2970:1:9","nodeType":"YulLiteral","src":"2970:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"2973:1:9","nodeType":"YulLiteral","src":"2973:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2963:6:9","nodeType":"YulIdentifier","src":"2963:6:9"},"nativeSrc":"2963:12:9","nodeType":"YulFunctionCall","src":"2963:12:9"},"nativeSrc":"2963:12:9","nodeType":"YulExpressionStatement","src":"2963:12:9"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2864:117:9","nodeType":"YulFunctionDefinition","src":"2864:117:9"},{"body":{"nativeSrc":"3032:32:9","nodeType":"YulBlock","src":"3032:32:9","statements":[{"nativeSrc":"3042:16:9","nodeType":"YulAssignment","src":"3042:16:9","value":{"name":"value","nativeSrc":"3053:5:9","nodeType":"YulIdentifier","src":"3053:5:9"},"variableNames":[{"name":"cleaned","nativeSrc":"3042:7:9","nodeType":"YulIdentifier","src":"3042:7:9"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2987:77:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3014:5:9","nodeType":"YulTypedName","src":"3014:5:9","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3024:7:9","nodeType":"YulTypedName","src":"3024:7:9","type":""}],"src":"2987:77:9"},{"body":{"nativeSrc":"3113:79:9","nodeType":"YulBlock","src":"3113:79:9","statements":[{"body":{"nativeSrc":"3170:16:9","nodeType":"YulBlock","src":"3170:16:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3179:1:9","nodeType":"YulLiteral","src":"3179:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"3182:1:9","nodeType":"YulLiteral","src":"3182:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3172:6:9","nodeType":"YulIdentifier","src":"3172:6:9"},"nativeSrc":"3172:12:9","nodeType":"YulFunctionCall","src":"3172:12:9"},"nativeSrc":"3172:12:9","nodeType":"YulExpressionStatement","src":"3172:12:9"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3136:5:9","nodeType":"YulIdentifier","src":"3136:5:9"},{"arguments":[{"name":"value","nativeSrc":"3161:5:9","nodeType":"YulIdentifier","src":"3161:5:9"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3143:17:9","nodeType":"YulIdentifier","src":"3143:17:9"},"nativeSrc":"3143:24:9","nodeType":"YulFunctionCall","src":"3143:24:9"}],"functionName":{"name":"eq","nativeSrc":"3133:2:9","nodeType":"YulIdentifier","src":"3133:2:9"},"nativeSrc":"3133:35:9","nodeType":"YulFunctionCall","src":"3133:35:9"}],"functionName":{"name":"iszero","nativeSrc":"3126:6:9","nodeType":"YulIdentifier","src":"3126:6:9"},"nativeSrc":"3126:43:9","nodeType":"YulFunctionCall","src":"3126:43:9"},"nativeSrc":"3123:63:9","nodeType":"YulIf","src":"3123:63:9"}]},"name":"validator_revert_t_uint256","nativeSrc":"3070:122:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3106:5:9","nodeType":"YulTypedName","src":"3106:5:9","type":""}],"src":"3070:122:9"},{"body":{"nativeSrc":"3250:87:9","nodeType":"YulBlock","src":"3250:87:9","statements":[{"nativeSrc":"3260:29:9","nodeType":"YulAssignment","src":"3260:29:9","value":{"arguments":[{"name":"offset","nativeSrc":"3282:6:9","nodeType":"YulIdentifier","src":"3282:6:9"}],"functionName":{"name":"calldataload","nativeSrc":"3269:12:9","nodeType":"YulIdentifier","src":"3269:12:9"},"nativeSrc":"3269:20:9","nodeType":"YulFunctionCall","src":"3269:20:9"},"variableNames":[{"name":"value","nativeSrc":"3260:5:9","nodeType":"YulIdentifier","src":"3260:5:9"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3325:5:9","nodeType":"YulIdentifier","src":"3325:5:9"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3298:26:9","nodeType":"YulIdentifier","src":"3298:26:9"},"nativeSrc":"3298:33:9","nodeType":"YulFunctionCall","src":"3298:33:9"},"nativeSrc":"3298:33:9","nodeType":"YulExpressionStatement","src":"3298:33:9"}]},"name":"abi_decode_t_uint256","nativeSrc":"3198:139:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3228:6:9","nodeType":"YulTypedName","src":"3228:6:9","type":""},{"name":"end","nativeSrc":"3236:3:9","nodeType":"YulTypedName","src":"3236:3:9","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3244:5:9","nodeType":"YulTypedName","src":"3244:5:9","type":""}],"src":"3198:139:9"},{"body":{"nativeSrc":"3462:608:9","nodeType":"YulBlock","src":"3462:608:9","statements":[{"nativeSrc":"3472:90:9","nodeType":"YulAssignment","src":"3472:90:9","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3554:6:9","nodeType":"YulIdentifier","src":"3554:6:9"}],"functionName":{"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"3497:56:9","nodeType":"YulIdentifier","src":"3497:56:9"},"nativeSrc":"3497:64:9","nodeType":"YulFunctionCall","src":"3497:64:9"}],"functionName":{"name":"allocate_memory","nativeSrc":"3481:15:9","nodeType":"YulIdentifier","src":"3481:15:9"},"nativeSrc":"3481:81:9","nodeType":"YulFunctionCall","src":"3481:81:9"},"variableNames":[{"name":"array","nativeSrc":"3472:5:9","nodeType":"YulIdentifier","src":"3472:5:9"}]},{"nativeSrc":"3571:16:9","nodeType":"YulVariableDeclaration","src":"3571:16:9","value":{"name":"array","nativeSrc":"3582:5:9","nodeType":"YulIdentifier","src":"3582:5:9"},"variables":[{"name":"dst","nativeSrc":"3575:3:9","nodeType":"YulTypedName","src":"3575:3:9","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"3604:5:9","nodeType":"YulIdentifier","src":"3604:5:9"},{"name":"length","nativeSrc":"3611:6:9","nodeType":"YulIdentifier","src":"3611:6:9"}],"functionName":{"name":"mstore","nativeSrc":"3597:6:9","nodeType":"YulIdentifier","src":"3597:6:9"},"nativeSrc":"3597:21:9","nodeType":"YulFunctionCall","src":"3597:21:9"},"nativeSrc":"3597:21:9","nodeType":"YulExpressionStatement","src":"3597:21:9"},{"nativeSrc":"3627:23:9","nodeType":"YulAssignment","src":"3627:23:9","value":{"arguments":[{"name":"array","nativeSrc":"3638:5:9","nodeType":"YulIdentifier","src":"3638:5:9"},{"kind":"number","nativeSrc":"3645:4:9","nodeType":"YulLiteral","src":"3645:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3634:3:9","nodeType":"YulIdentifier","src":"3634:3:9"},"nativeSrc":"3634:16:9","nodeType":"YulFunctionCall","src":"3634:16:9"},"variableNames":[{"name":"dst","nativeSrc":"3627:3:9","nodeType":"YulIdentifier","src":"3627:3:9"}]},{"nativeSrc":"3660:44:9","nodeType":"YulVariableDeclaration","src":"3660:44:9","value":{"arguments":[{"name":"offset","nativeSrc":"3678:6:9","nodeType":"YulIdentifier","src":"3678:6:9"},{"arguments":[{"name":"length","nativeSrc":"3690:6:9","nodeType":"YulIdentifier","src":"3690:6:9"},{"kind":"number","nativeSrc":"3698:4:9","nodeType":"YulLiteral","src":"3698:4:9","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"3686:3:9","nodeType":"YulIdentifier","src":"3686:3:9"},"nativeSrc":"3686:17:9","nodeType":"YulFunctionCall","src":"3686:17:9"}],"functionName":{"name":"add","nativeSrc":"3674:3:9","nodeType":"YulIdentifier","src":"3674:3:9"},"nativeSrc":"3674:30:9","nodeType":"YulFunctionCall","src":"3674:30:9"},"variables":[{"name":"srcEnd","nativeSrc":"3664:6:9","nodeType":"YulTypedName","src":"3664:6:9","type":""}]},{"body":{"nativeSrc":"3732:103:9","nodeType":"YulBlock","src":"3732:103:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3746:77:9","nodeType":"YulIdentifier","src":"3746:77:9"},"nativeSrc":"3746:79:9","nodeType":"YulFunctionCall","src":"3746:79:9"},"nativeSrc":"3746:79:9","nodeType":"YulExpressionStatement","src":"3746:79:9"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"3719:6:9","nodeType":"YulIdentifier","src":"3719:6:9"},{"name":"end","nativeSrc":"3727:3:9","nodeType":"YulIdentifier","src":"3727:3:9"}],"functionName":{"name":"gt","nativeSrc":"3716:2:9","nodeType":"YulIdentifier","src":"3716:2:9"},"nativeSrc":"3716:15:9","nodeType":"YulFunctionCall","src":"3716:15:9"},"nativeSrc":"3713:122:9","nodeType":"YulIf","src":"3713:122:9"},{"body":{"nativeSrc":"3920:144:9","nodeType":"YulBlock","src":"3920:144:9","statements":[{"nativeSrc":"3935:21:9","nodeType":"YulVariableDeclaration","src":"3935:21:9","value":{"name":"src","nativeSrc":"3953:3:9","nodeType":"YulIdentifier","src":"3953:3:9"},"variables":[{"name":"elementPos","nativeSrc":"3939:10:9","nodeType":"YulTypedName","src":"3939:10:9","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"3977:3:9","nodeType":"YulIdentifier","src":"3977:3:9"},{"arguments":[{"name":"elementPos","nativeSrc":"4003:10:9","nodeType":"YulIdentifier","src":"4003:10:9"},{"name":"end","nativeSrc":"4015:3:9","nodeType":"YulIdentifier","src":"4015:3:9"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3982:20:9","nodeType":"YulIdentifier","src":"3982:20:9"},"nativeSrc":"3982:37:9","nodeType":"YulFunctionCall","src":"3982:37:9"}],"functionName":{"name":"mstore","nativeSrc":"3970:6:9","nodeType":"YulIdentifier","src":"3970:6:9"},"nativeSrc":"3970:50:9","nodeType":"YulFunctionCall","src":"3970:50:9"},"nativeSrc":"3970:50:9","nodeType":"YulExpressionStatement","src":"3970:50:9"},{"nativeSrc":"4033:21:9","nodeType":"YulAssignment","src":"4033:21:9","value":{"arguments":[{"name":"dst","nativeSrc":"4044:3:9","nodeType":"YulIdentifier","src":"4044:3:9"},{"kind":"number","nativeSrc":"4049:4:9","nodeType":"YulLiteral","src":"4049:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4040:3:9","nodeType":"YulIdentifier","src":"4040:3:9"},"nativeSrc":"4040:14:9","nodeType":"YulFunctionCall","src":"4040:14:9"},"variableNames":[{"name":"dst","nativeSrc":"4033:3:9","nodeType":"YulIdentifier","src":"4033:3:9"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"3873:3:9","nodeType":"YulIdentifier","src":"3873:3:9"},{"name":"srcEnd","nativeSrc":"3878:6:9","nodeType":"YulIdentifier","src":"3878:6:9"}],"functionName":{"name":"lt","nativeSrc":"3870:2:9","nodeType":"YulIdentifier","src":"3870:2:9"},"nativeSrc":"3870:15:9","nodeType":"YulFunctionCall","src":"3870:15:9"},"nativeSrc":"3844:220:9","nodeType":"YulForLoop","post":{"nativeSrc":"3886:25:9","nodeType":"YulBlock","src":"3886:25:9","statements":[{"nativeSrc":"3888:21:9","nodeType":"YulAssignment","src":"3888:21:9","value":{"arguments":[{"name":"src","nativeSrc":"3899:3:9","nodeType":"YulIdentifier","src":"3899:3:9"},{"kind":"number","nativeSrc":"3904:4:9","nodeType":"YulLiteral","src":"3904:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3895:3:9","nodeType":"YulIdentifier","src":"3895:3:9"},"nativeSrc":"3895:14:9","nodeType":"YulFunctionCall","src":"3895:14:9"},"variableNames":[{"name":"src","nativeSrc":"3888:3:9","nodeType":"YulIdentifier","src":"3888:3:9"}]}]},"pre":{"nativeSrc":"3848:21:9","nodeType":"YulBlock","src":"3848:21:9","statements":[{"nativeSrc":"3850:17:9","nodeType":"YulVariableDeclaration","src":"3850:17:9","value":{"name":"offset","nativeSrc":"3861:6:9","nodeType":"YulIdentifier","src":"3861:6:9"},"variables":[{"name":"src","nativeSrc":"3854:3:9","nodeType":"YulTypedName","src":"3854:3:9","type":""}]}]},"src":"3844:220:9"}]},"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"3360:710:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3432:6:9","nodeType":"YulTypedName","src":"3432:6:9","type":""},{"name":"length","nativeSrc":"3440:6:9","nodeType":"YulTypedName","src":"3440:6:9","type":""},{"name":"end","nativeSrc":"3448:3:9","nodeType":"YulTypedName","src":"3448:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3456:5:9","nodeType":"YulTypedName","src":"3456:5:9","type":""}],"src":"3360:710:9"},{"body":{"nativeSrc":"4170:293:9","nodeType":"YulBlock","src":"4170:293:9","statements":[{"body":{"nativeSrc":"4219:83:9","nodeType":"YulBlock","src":"4219:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4221:77:9","nodeType":"YulIdentifier","src":"4221:77:9"},"nativeSrc":"4221:79:9","nodeType":"YulFunctionCall","src":"4221:79:9"},"nativeSrc":"4221:79:9","nodeType":"YulExpressionStatement","src":"4221:79:9"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4198:6:9","nodeType":"YulIdentifier","src":"4198:6:9"},{"kind":"number","nativeSrc":"4206:4:9","nodeType":"YulLiteral","src":"4206:4:9","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4194:3:9","nodeType":"YulIdentifier","src":"4194:3:9"},"nativeSrc":"4194:17:9","nodeType":"YulFunctionCall","src":"4194:17:9"},{"name":"end","nativeSrc":"4213:3:9","nodeType":"YulIdentifier","src":"4213:3:9"}],"functionName":{"name":"slt","nativeSrc":"4190:3:9","nodeType":"YulIdentifier","src":"4190:3:9"},"nativeSrc":"4190:27:9","nodeType":"YulFunctionCall","src":"4190:27:9"}],"functionName":{"name":"iszero","nativeSrc":"4183:6:9","nodeType":"YulIdentifier","src":"4183:6:9"},"nativeSrc":"4183:35:9","nodeType":"YulFunctionCall","src":"4183:35:9"},"nativeSrc":"4180:122:9","nodeType":"YulIf","src":"4180:122:9"},{"nativeSrc":"4311:34:9","nodeType":"YulVariableDeclaration","src":"4311:34:9","value":{"arguments":[{"name":"offset","nativeSrc":"4338:6:9","nodeType":"YulIdentifier","src":"4338:6:9"}],"functionName":{"name":"calldataload","nativeSrc":"4325:12:9","nodeType":"YulIdentifier","src":"4325:12:9"},"nativeSrc":"4325:20:9","nodeType":"YulFunctionCall","src":"4325:20:9"},"variables":[{"name":"length","nativeSrc":"4315:6:9","nodeType":"YulTypedName","src":"4315:6:9","type":""}]},{"nativeSrc":"4354:103:9","nodeType":"YulAssignment","src":"4354:103:9","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4430:6:9","nodeType":"YulIdentifier","src":"4430:6:9"},{"kind":"number","nativeSrc":"4438:4:9","nodeType":"YulLiteral","src":"4438:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4426:3:9","nodeType":"YulIdentifier","src":"4426:3:9"},"nativeSrc":"4426:17:9","nodeType":"YulFunctionCall","src":"4426:17:9"},{"name":"length","nativeSrc":"4445:6:9","nodeType":"YulIdentifier","src":"4445:6:9"},{"name":"end","nativeSrc":"4453:3:9","nodeType":"YulIdentifier","src":"4453:3:9"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"4363:62:9","nodeType":"YulIdentifier","src":"4363:62:9"},"nativeSrc":"4363:94:9","nodeType":"YulFunctionCall","src":"4363:94:9"},"variableNames":[{"name":"array","nativeSrc":"4354:5:9","nodeType":"YulIdentifier","src":"4354:5:9"}]}]},"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"4093:370:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4148:6:9","nodeType":"YulTypedName","src":"4148:6:9","type":""},{"name":"end","nativeSrc":"4156:3:9","nodeType":"YulTypedName","src":"4156:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"4164:5:9","nodeType":"YulTypedName","src":"4164:5:9","type":""}],"src":"4093:370:9"},{"body":{"nativeSrc":"4586:745:9","nodeType":"YulBlock","src":"4586:745:9","statements":[{"body":{"nativeSrc":"4632:83:9","nodeType":"YulBlock","src":"4632:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4634:77:9","nodeType":"YulIdentifier","src":"4634:77:9"},"nativeSrc":"4634:79:9","nodeType":"YulFunctionCall","src":"4634:79:9"},"nativeSrc":"4634:79:9","nodeType":"YulExpressionStatement","src":"4634:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4607:7:9","nodeType":"YulIdentifier","src":"4607:7:9"},{"name":"headStart","nativeSrc":"4616:9:9","nodeType":"YulIdentifier","src":"4616:9:9"}],"functionName":{"name":"sub","nativeSrc":"4603:3:9","nodeType":"YulIdentifier","src":"4603:3:9"},"nativeSrc":"4603:23:9","nodeType":"YulFunctionCall","src":"4603:23:9"},{"kind":"number","nativeSrc":"4628:2:9","nodeType":"YulLiteral","src":"4628:2:9","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4599:3:9","nodeType":"YulIdentifier","src":"4599:3:9"},"nativeSrc":"4599:32:9","nodeType":"YulFunctionCall","src":"4599:32:9"},"nativeSrc":"4596:119:9","nodeType":"YulIf","src":"4596:119:9"},{"nativeSrc":"4725:286:9","nodeType":"YulBlock","src":"4725:286:9","statements":[{"nativeSrc":"4740:45:9","nodeType":"YulVariableDeclaration","src":"4740:45:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4771:9:9","nodeType":"YulIdentifier","src":"4771:9:9"},{"kind":"number","nativeSrc":"4782:1:9","nodeType":"YulLiteral","src":"4782:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4767:3:9","nodeType":"YulIdentifier","src":"4767:3:9"},"nativeSrc":"4767:17:9","nodeType":"YulFunctionCall","src":"4767:17:9"}],"functionName":{"name":"calldataload","nativeSrc":"4754:12:9","nodeType":"YulIdentifier","src":"4754:12:9"},"nativeSrc":"4754:31:9","nodeType":"YulFunctionCall","src":"4754:31:9"},"variables":[{"name":"offset","nativeSrc":"4744:6:9","nodeType":"YulTypedName","src":"4744:6:9","type":""}]},{"body":{"nativeSrc":"4832:83:9","nodeType":"YulBlock","src":"4832:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4834:77:9","nodeType":"YulIdentifier","src":"4834:77:9"},"nativeSrc":"4834:79:9","nodeType":"YulFunctionCall","src":"4834:79:9"},"nativeSrc":"4834:79:9","nodeType":"YulExpressionStatement","src":"4834:79:9"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4804:6:9","nodeType":"YulIdentifier","src":"4804:6:9"},{"kind":"number","nativeSrc":"4812:18:9","nodeType":"YulLiteral","src":"4812:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4801:2:9","nodeType":"YulIdentifier","src":"4801:2:9"},"nativeSrc":"4801:30:9","nodeType":"YulFunctionCall","src":"4801:30:9"},"nativeSrc":"4798:117:9","nodeType":"YulIf","src":"4798:117:9"},{"nativeSrc":"4929:72:9","nodeType":"YulAssignment","src":"4929:72:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4973:9:9","nodeType":"YulIdentifier","src":"4973:9:9"},{"name":"offset","nativeSrc":"4984:6:9","nodeType":"YulIdentifier","src":"4984:6:9"}],"functionName":{"name":"add","nativeSrc":"4969:3:9","nodeType":"YulIdentifier","src":"4969:3:9"},"nativeSrc":"4969:22:9","nodeType":"YulFunctionCall","src":"4969:22:9"},{"name":"dataEnd","nativeSrc":"4993:7:9","nodeType":"YulIdentifier","src":"4993:7:9"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"4939:29:9","nodeType":"YulIdentifier","src":"4939:29:9"},"nativeSrc":"4939:62:9","nodeType":"YulFunctionCall","src":"4939:62:9"},"variableNames":[{"name":"value0","nativeSrc":"4929:6:9","nodeType":"YulIdentifier","src":"4929:6:9"}]}]},{"nativeSrc":"5021:303:9","nodeType":"YulBlock","src":"5021:303:9","statements":[{"nativeSrc":"5036:46:9","nodeType":"YulVariableDeclaration","src":"5036:46:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5067:9:9","nodeType":"YulIdentifier","src":"5067:9:9"},{"kind":"number","nativeSrc":"5078:2:9","nodeType":"YulLiteral","src":"5078:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5063:3:9","nodeType":"YulIdentifier","src":"5063:3:9"},"nativeSrc":"5063:18:9","nodeType":"YulFunctionCall","src":"5063:18:9"}],"functionName":{"name":"calldataload","nativeSrc":"5050:12:9","nodeType":"YulIdentifier","src":"5050:12:9"},"nativeSrc":"5050:32:9","nodeType":"YulFunctionCall","src":"5050:32:9"},"variables":[{"name":"offset","nativeSrc":"5040:6:9","nodeType":"YulTypedName","src":"5040:6:9","type":""}]},{"body":{"nativeSrc":"5129:83:9","nodeType":"YulBlock","src":"5129:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5131:77:9","nodeType":"YulIdentifier","src":"5131:77:9"},"nativeSrc":"5131:79:9","nodeType":"YulFunctionCall","src":"5131:79:9"},"nativeSrc":"5131:79:9","nodeType":"YulExpressionStatement","src":"5131:79:9"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5101:6:9","nodeType":"YulIdentifier","src":"5101:6:9"},{"kind":"number","nativeSrc":"5109:18:9","nodeType":"YulLiteral","src":"5109:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5098:2:9","nodeType":"YulIdentifier","src":"5098:2:9"},"nativeSrc":"5098:30:9","nodeType":"YulFunctionCall","src":"5098:30:9"},"nativeSrc":"5095:117:9","nodeType":"YulIf","src":"5095:117:9"},{"nativeSrc":"5226:88:9","nodeType":"YulAssignment","src":"5226:88:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5286:9:9","nodeType":"YulIdentifier","src":"5286:9:9"},{"name":"offset","nativeSrc":"5297:6:9","nodeType":"YulIdentifier","src":"5297:6:9"}],"functionName":{"name":"add","nativeSrc":"5282:3:9","nodeType":"YulIdentifier","src":"5282:3:9"},"nativeSrc":"5282:22:9","nodeType":"YulFunctionCall","src":"5282:22:9"},{"name":"dataEnd","nativeSrc":"5306:7:9","nodeType":"YulIdentifier","src":"5306:7:9"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"5236:45:9","nodeType":"YulIdentifier","src":"5236:45:9"},"nativeSrc":"5236:78:9","nodeType":"YulFunctionCall","src":"5236:78:9"},"variableNames":[{"name":"value1","nativeSrc":"5226:6:9","nodeType":"YulIdentifier","src":"5226:6:9"}]}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptrt_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"4469:862:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4548:9:9","nodeType":"YulTypedName","src":"4548:9:9","type":""},{"name":"dataEnd","nativeSrc":"4559:7:9","nodeType":"YulTypedName","src":"4559:7:9","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4571:6:9","nodeType":"YulTypedName","src":"4571:6:9","type":""},{"name":"value1","nativeSrc":"4579:6:9","nodeType":"YulTypedName","src":"4579:6:9","type":""}],"src":"4469:862:9"},{"body":{"nativeSrc":"5379:48:9","nodeType":"YulBlock","src":"5379:48:9","statements":[{"nativeSrc":"5389:32:9","nodeType":"YulAssignment","src":"5389:32:9","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5414:5:9","nodeType":"YulIdentifier","src":"5414:5:9"}],"functionName":{"name":"iszero","nativeSrc":"5407:6:9","nodeType":"YulIdentifier","src":"5407:6:9"},"nativeSrc":"5407:13:9","nodeType":"YulFunctionCall","src":"5407:13:9"}],"functionName":{"name":"iszero","nativeSrc":"5400:6:9","nodeType":"YulIdentifier","src":"5400:6:9"},"nativeSrc":"5400:21:9","nodeType":"YulFunctionCall","src":"5400:21:9"},"variableNames":[{"name":"cleaned","nativeSrc":"5389:7:9","nodeType":"YulIdentifier","src":"5389:7:9"}]}]},"name":"cleanup_t_bool","nativeSrc":"5337:90:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5361:5:9","nodeType":"YulTypedName","src":"5361:5:9","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5371:7:9","nodeType":"YulTypedName","src":"5371:7:9","type":""}],"src":"5337:90:9"},{"body":{"nativeSrc":"5492:50:9","nodeType":"YulBlock","src":"5492:50:9","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5509:3:9","nodeType":"YulIdentifier","src":"5509:3:9"},{"arguments":[{"name":"value","nativeSrc":"5529:5:9","nodeType":"YulIdentifier","src":"5529:5:9"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"5514:14:9","nodeType":"YulIdentifier","src":"5514:14:9"},"nativeSrc":"5514:21:9","nodeType":"YulFunctionCall","src":"5514:21:9"}],"functionName":{"name":"mstore","nativeSrc":"5502:6:9","nodeType":"YulIdentifier","src":"5502:6:9"},"nativeSrc":"5502:34:9","nodeType":"YulFunctionCall","src":"5502:34:9"},"nativeSrc":"5502:34:9","nodeType":"YulExpressionStatement","src":"5502:34:9"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"5433:109:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5480:5:9","nodeType":"YulTypedName","src":"5480:5:9","type":""},{"name":"pos","nativeSrc":"5487:3:9","nodeType":"YulTypedName","src":"5487:3:9","type":""}],"src":"5433:109:9"},{"body":{"nativeSrc":"5640:118:9","nodeType":"YulBlock","src":"5640:118:9","statements":[{"nativeSrc":"5650:26:9","nodeType":"YulAssignment","src":"5650:26:9","value":{"arguments":[{"name":"headStart","nativeSrc":"5662:9:9","nodeType":"YulIdentifier","src":"5662:9:9"},{"kind":"number","nativeSrc":"5673:2:9","nodeType":"YulLiteral","src":"5673:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5658:3:9","nodeType":"YulIdentifier","src":"5658:3:9"},"nativeSrc":"5658:18:9","nodeType":"YulFunctionCall","src":"5658:18:9"},"variableNames":[{"name":"tail","nativeSrc":"5650:4:9","nodeType":"YulIdentifier","src":"5650:4:9"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5724:6:9","nodeType":"YulIdentifier","src":"5724:6:9"},{"arguments":[{"name":"headStart","nativeSrc":"5737:9:9","nodeType":"YulIdentifier","src":"5737:9:9"},{"kind":"number","nativeSrc":"5748:1:9","nodeType":"YulLiteral","src":"5748:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5733:3:9","nodeType":"YulIdentifier","src":"5733:3:9"},"nativeSrc":"5733:17:9","nodeType":"YulFunctionCall","src":"5733:17:9"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"5686:37:9","nodeType":"YulIdentifier","src":"5686:37:9"},"nativeSrc":"5686:65:9","nodeType":"YulFunctionCall","src":"5686:65:9"},"nativeSrc":"5686:65:9","nodeType":"YulExpressionStatement","src":"5686:65:9"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"5548:210:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5612:9:9","nodeType":"YulTypedName","src":"5612:9:9","type":""},{"name":"value0","nativeSrc":"5624:6:9","nodeType":"YulTypedName","src":"5624:6:9","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5635:4:9","nodeType":"YulTypedName","src":"5635:4:9","type":""}],"src":"5548:210:9"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // uint256[]\n function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_uint256(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_bytes_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n","id":9,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c80631e8e1e1314610030575b600080fd5b61004a60048036038101906100459190611cdf565b610060565b6040516100579190611d72565b60405180910390f35b6000611a1c565b600080600184846000805b821561009c5782840591508482028603905084955080945082820284039050829350809250610072565b60018411156100aa57600080fd5b60008612156100b95788860195505b85965050505050505092915050565b60405181602084028301815160208301925060005b82841015610120578185527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018451830991506020850194506020840193506100dd565b61014a7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183610067565b91506020850394506020840393508592505b828411156101c6577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018551830990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000184518309915080845260208503945060208403935061015c565b81845250505050505050565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610203576000805260206000f35b50565b61032081511461021a576000805260206000f35b6102286102608201516101d2565b6102366102808201516101d2565b6102446102a08201516101d2565b6102526102c08201516101d2565b6102606102e08201516101d2565b61026e6103008201516101d2565b61027c6103208201516101d2565b50565b60008060208501516102c085015260208301516102e08501526020800183015161030085015260406020018301516103208501526060602001830151610340850152608060200183015161036085015260a06020018301516103808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e06102c08601200690508060208501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020808601200660408501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001604060e08501200660008501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c06101208501200691508160608501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182820960a08501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991508160808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000180600184030106915081610260850152816102808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e0610260850120068060c08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181820992508260e08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101008601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101208601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101408601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101608601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160806101e086012006610180860152505050505050565b60017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836060860151030106618000096102a08301526107ec600261028084016100c8565b610260820151600191507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001816102a0850151096102a0840152505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102a086015109830301069050806101a0830152505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016101a08601516103208601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102c08601510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102e08601510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160408601516102a08601510890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151820990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018501030692507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028086015184099250826101c08601525050505050565b81518152602082015160208201525050565b6040518151815260208201516020820152825160408201526020830151606082015260408260808360066107d05a03fa80610bec576000805260206000f35b50505050565b6000604051835181526020840151602082015284604082015260408160608360076107d05a03fa915081610c2a576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610c5a576000805260206000f35b5050505050565b600060405183815284602082015285604082015260408160608360076107d05a03fa915081610c94576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610cc4576000805260206000f35b505050505050565b600060405183815284602082015285604082015260408360608360076107d05a03fa915081610cff576000805260206000f35b505050505050565b6101e08201610d1a6101e0830182610b9b565b610d2e610180840151610220840183610bf2565b505050565b60008061022084017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610260860151099250610db6837f29e79ad99d77a4ffcf4b8ab0e464b713c864049f2add12136968cff0864088eb7f1410aa6f48b6cf3bf598c6dfa5cb01466519164bd833de0e7827db62d8cac07884610ccc565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028085015184099250610e2d837f1d0d822b29a0910be348f05ad545cfca3c4a45984ec7b3c071978ca4e979b6867f1689e43d6a0f29f2c00abcf49c803fa5c0ebbf4937b1ad668147399369a8fa7e84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610280860151099250610ea8837f145db25e5672a52146b54883489d4339ba16367240f7dd1dacb09e4daf1189d77f1f3ae2a7d2308c43976c572190b3779f177a653b623119177aec86a173733e0984610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c08601516102a0860151099250610f23837f2ece7b42d73dbbda215415dad9da14a4e9f50453c2ea3c269d78f0c4f48b93927f1d854ccab14984cad21ee83abc5688656d4978607ee46ce05c6e30e70438934c84610c61565b60c08501519250610f76837f28dfa5635712fec932cb955efa78de7c3bb1d717ca47ac63d0028c25000ab9827f0c1d9a27ace009b0748df47d8996964d4c5efe448f5689be7f89b1c9b54d1fd484610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a08601516102608601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160020991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160030991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102a0850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610180860151840892506112518360e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102c085015160208701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102e085015160208701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506114bb837f1a57e0730386d03ce171300fd06d8df31762d7652b64af847809b15539bf96477f12515de6655d8e300d5106f29f03a0e8d28d2c9c2cf842475e26a42f3eca1c3784610c61565b6114c9610120850182610bad565b608085015192506114df83610160860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018384099250611514836101a0860183610bf2565b61152660e08601516020860183610bf2565b6115396101008601516060860183610bf2565b61154c61012086015160a0860183610bf2565b61159d6101408601517f28a149d8479d0660ccf9119b862a6296efb8955f144f3a4c28218cbdc30c4a3e7f268d5e96726a4f0a0af926881dd088840f0b189fc0bac1c06378ca1342030d4784610c61565b6115ee6101608601517f0e7776860985ee7b82e3ff3a29a0704c80cc4f49fd6a08562de1286b1a4147737f16d85b4ca470712c952db758ba22542a1494058886d0cf5bc1d6e2796d5d7a3a84610c61565b6101c085015192507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060c087015161032087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060e087015161026087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061010087015161028087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101208701516102a087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101408701516102c087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101608701516102e087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061018087015161030087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506117ae836002600184610c61565b606085015192506117c4836101e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160608601516101808701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb8409925061184883610220860183610bf2565b5050505050565b60006040516101e0830151815260206101e08401015160208201527f1e3b651c96c337f8f6266fadcef22dc97717b5d44b445a5ef799a6cd3cc564a060408201527f10b13ed45e1871ff867a120754de5bf5c1395ad0078891e1b81f284ef6df78ca60608201527f2b57d40b181c33d7331accce5e5b890345b051c33f74e24ab728b18a3f7b473e60808201527f241a20e6fc3bc59485fa2e92365b46bf48742e8fac0b18859306488928cdcf0860a082015261022083015160c08201526020610220840101517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47817f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47030690508060e08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101008301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101208301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6101408301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa6101608301526020826101808460086107d05a03fa825181169350505050919050565b6040516102c08101604052611a3084610206565b611a3b83828661027f565b611a4481610785565b611a4e838261082a565b611a58818561088d565b611a628185610d07565b611a6c8185610d33565b611a758161184f565b6102c082036040528060005260206000f35b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611aee82611aa5565b810181811067ffffffffffffffff82111715611b0d57611b0c611ab6565b5b80604052505050565b6000611b20611a87565b9050611b2c8282611ae5565b919050565b600067ffffffffffffffff821115611b4c57611b4b611ab6565b5b611b5582611aa5565b9050602081019050919050565b82818337600083830152505050565b6000611b84611b7f84611b31565b611b16565b905082815260208101848484011115611ba057611b9f611aa0565b5b611bab848285611b62565b509392505050565b600082601f830112611bc857611bc7611a9b565b5b8135611bd8848260208601611b71565b91505092915050565b600067ffffffffffffffff821115611bfc57611bfb611ab6565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b611c2581611c12565b8114611c3057600080fd5b50565b600081359050611c4281611c1c565b92915050565b6000611c5b611c5684611be1565b611b16565b90508083825260208201905060208402830185811115611c7e57611c7d611c0d565b5b835b81811015611ca75780611c938882611c33565b845260208401935050602081019050611c80565b5050509392505050565b600082601f830112611cc657611cc5611a9b565b5b8135611cd6848260208601611c48565b91505092915050565b60008060408385031215611cf657611cf5611a91565b5b600083013567ffffffffffffffff811115611d1457611d13611a96565b5b611d2085828601611bb3565b925050602083013567ffffffffffffffff811115611d4157611d40611a96565b5b611d4d85828601611cb1565b9150509250929050565b60008115159050919050565b611d6c81611d57565b82525050565b6000602082019050611d876000830184611d63565b9291505056fea26469706673582212203093dcfd459ab1becb11ad43ebcf9e3441be5d423473c0159821433f9605e36864736f6c63430008180033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1E8E1E13 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x1CDF JUMP JUMPDEST PUSH2 0x60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x57 SWAP2 SWAP1 PUSH2 0x1D72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x1A1C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 DUP5 DUP5 PUSH1 0x0 DUP1 JUMPDEST DUP3 ISZERO PUSH2 0x9C JUMPI DUP3 DUP5 SDIV SWAP2 POP DUP5 DUP3 MUL DUP7 SUB SWAP1 POP DUP5 SWAP6 POP DUP1 SWAP5 POP DUP3 DUP3 MUL DUP5 SUB SWAP1 POP DUP3 SWAP4 POP DUP1 SWAP3 POP PUSH2 0x72 JUMP JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP7 SLT ISZERO PUSH2 0xB9 JUMPI DUP9 DUP7 ADD SWAP6 POP JUMPDEST DUP6 SWAP7 POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x20 DUP5 MUL DUP4 ADD DUP2 MLOAD PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x120 JUMPI DUP2 DUP6 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP5 MLOAD DUP4 MULMOD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xDD JUMP JUMPDEST PUSH2 0x14A PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH2 0x67 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP6 SUB SWAP5 POP PUSH1 0x20 DUP5 SUB SWAP4 POP DUP6 SWAP3 POP JUMPDEST DUP3 DUP5 GT ISZERO PUSH2 0x1C6 JUMPI PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP6 MLOAD DUP4 MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP5 MLOAD DUP4 MULMOD SWAP2 POP DUP1 DUP5 MSTORE PUSH1 0x20 DUP6 SUB SWAP5 POP PUSH1 0x20 DUP5 SUB SWAP4 POP PUSH2 0x15C JUMP JUMPDEST DUP2 DUP5 MSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x203 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH2 0x320 DUP2 MLOAD EQ PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST PUSH2 0x228 PUSH2 0x260 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x236 PUSH2 0x280 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x244 PUSH2 0x2A0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x252 PUSH2 0x2C0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x260 PUSH2 0x2E0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x26E PUSH2 0x300 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x27C PUSH2 0x320 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x2C0 DUP6 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x2E0 DUP6 ADD MSTORE PUSH1 0x20 DUP1 ADD DUP4 ADD MLOAD PUSH2 0x300 DUP6 ADD MSTORE PUSH1 0x40 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x320 DUP6 ADD MSTORE PUSH1 0x60 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x340 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x360 DUP6 ADD MSTORE PUSH1 0xA0 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x380 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xE0 PUSH2 0x2C0 DUP7 ADD KECCAK256 MOD SWAP1 POP DUP1 PUSH1 0x20 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP1 DUP7 ADD KECCAK256 MOD PUSH1 0x40 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 PUSH1 0xE0 DUP6 ADD KECCAK256 MOD PUSH1 0x0 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 PUSH2 0x120 DUP6 ADD KECCAK256 MOD SWAP2 POP DUP2 PUSH1 0x60 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP3 MULMOD PUSH1 0xA0 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP DUP2 PUSH1 0x80 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0x1 DUP5 SUB ADD MOD SWAP2 POP DUP2 PUSH2 0x260 DUP6 ADD MSTORE DUP2 PUSH2 0x280 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xE0 PUSH2 0x260 DUP6 ADD KECCAK256 MOD DUP1 PUSH1 0xC0 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP3 MULMOD SWAP3 POP DUP3 PUSH1 0xE0 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x100 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x120 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x140 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x160 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x80 PUSH2 0x1E0 DUP7 ADD KECCAK256 MOD PUSH2 0x180 DUP7 ADD MSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH1 0x60 DUP7 ADD MLOAD SUB ADD MOD PUSH2 0x8000 MULMOD PUSH2 0x2A0 DUP4 ADD MSTORE PUSH2 0x7EC PUSH1 0x2 PUSH2 0x280 DUP5 ADD PUSH2 0xC8 JUMP JUMPDEST PUSH2 0x260 DUP3 ADD MLOAD PUSH1 0x1 SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 PUSH2 0x2A0 DUP6 ADD MLOAD MULMOD PUSH2 0x2A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD MULMOD DUP4 SUB ADD MOD SWAP1 POP DUP1 PUSH2 0x1A0 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x1A0 DUP7 ADD MLOAD PUSH2 0x320 DUP7 ADD MLOAD ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2C0 DUP7 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x260 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2E0 DUP7 ADD MLOAD MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP3 ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP3 ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x300 DUP6 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP3 MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP6 ADD SUB MOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x1C0 DUP7 ADD MSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP3 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL DUP1 PUSH2 0xBEC JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC2A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC94 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xCC4 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xCFF JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP3 ADD PUSH2 0xD1A PUSH2 0x1E0 DUP4 ADD DUP3 PUSH2 0xB9B JUMP JUMPDEST PUSH2 0xD2E PUSH2 0x180 DUP5 ADD MLOAD PUSH2 0x220 DUP5 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x220 DUP5 ADD PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x260 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xDB6 DUP4 PUSH32 0x29E79AD99D77A4FFCF4B8AB0E464B713C864049F2ADD12136968CFF0864088EB PUSH32 0x1410AA6F48B6CF3BF598C6DFA5CB01466519164BD833DE0E7827DB62D8CAC078 DUP5 PUSH2 0xCCC JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH2 0xE2D DUP4 PUSH32 0x1D0D822B29A0910BE348F05AD545CFCA3C4A45984EC7B3C071978CA4E979B686 PUSH32 0x1689E43D6A0F29F2C00ABCF49C803FA5C0EBBF4937B1AD668147399369A8FA7E DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x280 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xEA8 DUP4 PUSH32 0x145DB25E5672A52146B54883489D4339BA16367240F7DD1DACB09E4DAF1189D7 PUSH32 0x1F3AE2A7D2308C43976C572190B3779F177A653B623119177AEC86A173733E09 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xF23 DUP4 PUSH32 0x2ECE7B42D73DBBDA215415DAD9DA14A4E9F50453C2EA3C269D78F0C4F48B9392 PUSH32 0x1D854CCAB14984CAD21EE83ABC5688656D4978607EE46CE05C6E30E70438934C DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0xC0 DUP6 ADD MLOAD SWAP3 POP PUSH2 0xF76 DUP4 PUSH32 0x28DFA5635712FEC932CB955EFA78DE7C3BB1D717CA47AC63D0028C25000AB982 PUSH32 0xC1D9A27ACE009B0748DF47D8996964D4C5EFE448F5689BE7F89B1C9B54D1FD4 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH2 0x260 DUP7 ADD MLOAD ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x2 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x3 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2A0 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x180 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH2 0x1251 DUP4 PUSH1 0xE0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2C0 DUP6 ADD MLOAD PUSH1 0x20 DUP8 ADD MLOAD MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x260 DUP6 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2E0 DUP6 ADD MLOAD PUSH1 0x20 DUP8 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x300 DUP6 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 SUB MOD SWAP3 POP PUSH2 0x14BB DUP4 PUSH32 0x1A57E0730386D03CE171300FD06D8DF31762D7652B64AF847809B15539BF9647 PUSH32 0x12515DE6655D8E300D5106F29F03A0E8D28D2C9C2CF842475E26A42F3ECA1C37 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x14C9 PUSH2 0x120 DUP6 ADD DUP3 PUSH2 0xBAD JUMP JUMPDEST PUSH1 0x80 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x14DF DUP4 PUSH2 0x160 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 DUP5 MULMOD SWAP3 POP PUSH2 0x1514 DUP4 PUSH2 0x1A0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x1526 PUSH1 0xE0 DUP7 ADD MLOAD PUSH1 0x20 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x1539 PUSH2 0x100 DUP7 ADD MLOAD PUSH1 0x60 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x154C PUSH2 0x120 DUP7 ADD MLOAD PUSH1 0xA0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x159D PUSH2 0x140 DUP7 ADD MLOAD PUSH32 0x28A149D8479D0660CCF9119B862A6296EFB8955F144F3A4C28218CBDC30C4A3E PUSH32 0x268D5E96726A4F0A0AF926881DD088840F0B189FC0BAC1C06378CA1342030D47 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x15EE PUSH2 0x160 DUP7 ADD MLOAD PUSH32 0xE7776860985EE7B82E3FF3A29A0704C80CC4F49FD6A08562DE1286B1A414773 PUSH32 0x16D85B4CA470712C952DB758BA22542A1494058886D0CF5BC1D6E2796D5D7A3A DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x1C0 DUP6 ADD MLOAD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0xC0 DUP8 ADD MLOAD PUSH2 0x320 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0xE0 DUP8 ADD MLOAD PUSH2 0x260 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x100 DUP8 ADD MLOAD PUSH2 0x280 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x120 DUP8 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x140 DUP8 ADD MLOAD PUSH2 0x2C0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x160 DUP8 ADD MLOAD PUSH2 0x2E0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x180 DUP8 ADD MLOAD PUSH2 0x300 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 SUB MOD SWAP3 POP PUSH2 0x17AE DUP4 PUSH1 0x2 PUSH1 0x1 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0x60 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x17C4 DUP4 PUSH2 0x1E0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x60 DUP7 ADD MLOAD PUSH2 0x180 DUP8 ADD MLOAD MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH32 0x2D1BA66F5941DC91017171FA69EC2BD0022A2A2D4115A009A93458FD4E26ECFB DUP5 MULMOD SWAP3 POP PUSH2 0x1848 DUP4 PUSH2 0x220 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x1E0 DUP4 ADD MLOAD DUP2 MSTORE PUSH1 0x20 PUSH2 0x1E0 DUP5 ADD ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x1E3B651C96C337F8F6266FADCEF22DC97717B5D44B445A5EF799A6CD3CC564A0 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x10B13ED45E1871FF867A120754DE5BF5C1395AD0078891E1B81F284EF6DF78CA PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x2B57D40B181C33D7331ACCCE5E5B890345B051C33F74E24AB728B18A3F7B473E PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x241A20E6FC3BC59485FA2E92365B46BF48742E8FAC0B18859306488928CDCF08 PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x220 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x20 PUSH2 0x220 DUP5 ADD ADD MLOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 DUP2 PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD SWAP1 POP DUP1 PUSH1 0xE0 DUP4 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x100 DUP4 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x120 DUP4 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x140 DUP4 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x160 DUP4 ADD MSTORE PUSH1 0x20 DUP3 PUSH2 0x180 DUP5 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL DUP3 MLOAD DUP2 AND SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C0 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x1A30 DUP5 PUSH2 0x206 JUMP JUMPDEST PUSH2 0x1A3B DUP4 DUP3 DUP7 PUSH2 0x27F JUMP JUMPDEST PUSH2 0x1A44 DUP2 PUSH2 0x785 JUMP JUMPDEST PUSH2 0x1A4E DUP4 DUP3 PUSH2 0x82A JUMP JUMPDEST PUSH2 0x1A58 DUP2 DUP6 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x1A62 DUP2 DUP6 PUSH2 0xD07 JUMP JUMPDEST PUSH2 0x1A6C DUP2 DUP6 PUSH2 0xD33 JUMP JUMPDEST PUSH2 0x1A75 DUP2 PUSH2 0x184F JUMP JUMPDEST PUSH2 0x2C0 DUP3 SUB PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1AEE DUP3 PUSH2 0x1AA5 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1B0D JUMPI PUSH2 0x1B0C PUSH2 0x1AB6 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B20 PUSH2 0x1A87 JUMP JUMPDEST SWAP1 POP PUSH2 0x1B2C DUP3 DUP3 PUSH2 0x1AE5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1B4C JUMPI PUSH2 0x1B4B PUSH2 0x1AB6 JUMP JUMPDEST JUMPDEST PUSH2 0x1B55 DUP3 PUSH2 0x1AA5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B84 PUSH2 0x1B7F DUP5 PUSH2 0x1B31 JUMP JUMPDEST PUSH2 0x1B16 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1BA0 JUMPI PUSH2 0x1B9F PUSH2 0x1AA0 JUMP JUMPDEST JUMPDEST PUSH2 0x1BAB DUP5 DUP3 DUP6 PUSH2 0x1B62 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1BC8 JUMPI PUSH2 0x1BC7 PUSH2 0x1A9B JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1BD8 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1B71 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1BFC JUMPI PUSH2 0x1BFB PUSH2 0x1AB6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C25 DUP2 PUSH2 0x1C12 JUMP JUMPDEST DUP2 EQ PUSH2 0x1C30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1C42 DUP2 PUSH2 0x1C1C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C5B PUSH2 0x1C56 DUP5 PUSH2 0x1BE1 JUMP JUMPDEST PUSH2 0x1B16 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1C7E JUMPI PUSH2 0x1C7D PUSH2 0x1C0D JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1CA7 JUMPI DUP1 PUSH2 0x1C93 DUP9 DUP3 PUSH2 0x1C33 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1C80 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1CC6 JUMPI PUSH2 0x1CC5 PUSH2 0x1A9B JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1CD6 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1C48 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1CF6 JUMPI PUSH2 0x1CF5 PUSH2 0x1A91 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D14 JUMPI PUSH2 0x1D13 PUSH2 0x1A96 JUMP JUMPDEST JUMPDEST PUSH2 0x1D20 DUP6 DUP3 DUP7 ADD PUSH2 0x1BB3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D41 JUMPI PUSH2 0x1D40 PUSH2 0x1A96 JUMP JUMPDEST JUMPDEST PUSH2 0x1D4D DUP6 DUP3 DUP7 ADD PUSH2 0x1CB1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D6C DUP2 PUSH2 0x1D57 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D87 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D63 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDRESS SWAP4 0xDC REVERT GASLIMIT SWAP11 0xB1 0xBE 0xCB GT 0xAD NUMBER 0xEB 0xCF SWAP15 CALLVALUE COINBASE 0xBE TSTORE TIMESTAMP CALLVALUE PUSH20 0xC0159821433F9605E36864736F6C634300081800 CALLER ","sourceMap":"832:23908:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5187:19551;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;5275:4;5433:724;;;5459:3;5490:1;5525;5552;5587;5605:12;5634:7;5675:334;5683:4;5675:334;;;5734:4;5731:1;5726:13;5714:25;;5788:4;5778:8;5774:19;5771:1;5767:27;5760:34;;5819:4;5815:8;;5851:3;5844:10;;5923:4;5913:8;5909:19;5907:1;5903:26;5896:33;;5955:4;5950:9;;5988:3;5980:11;;5675:334;;;6052:1;6049;6046:8;6043:27;;;6066:1;6064;6057:11;6043:27;6097:1;6094;6090:9;6087:30;;;6113:1;6110;6106:9;6102:13;;6087:30;6142:1;6135:8;;5463:694;;;;;;5433:724;;;;:::o;6399:1517::-;6472:4;6466:11;6544:5;6599:2;6596:1;6592:10;6585:5;6581:22;6656:3;6650:10;6725:2;6720:3;6716:12;6709:19;;6784:7;6830:257;6846:7;6841:3;6838:16;6830:257;;;7011:3;7005:4;6998:17;7067:1;7061:3;7055:10;7050:3;7043:26;7036:33;;6896:2;6890:4;6886:13;6878:21;;6937:2;6932:3;6928:12;6921:19;;6830:257;;;7111:15;7124:1;7119:3;7111:15;:::i;:::-;7104:22;;7288:2;7282:4;7278:13;7270:21;;7401:2;7396:3;7392:12;7385:19;;7432:5;7421:16;;7494:311;7510:7;7505:3;7502:16;7494:311;;;7694:1;7687:4;7681:11;7676:3;7669:27;7662:34;;7748:1;7742:3;7736:10;7731:3;7724:26;7717:33;;7783:3;7778;7771:16;7560:2;7554:4;7550:13;7542:21;;7601:2;7596:3;7592:12;7585:19;;7494:311;;;7898:3;7893;7886:16;6431:1485;;;;;6399:1517;;:::o;7942:162::-;7999:1;7996;7993:8;7983:107;;8035:1;8032;8025:12;8067:4;8065:1;8058:14;7983:107;7942:162;:::o;8130:668::-;8204:3;8195:6;8189:13;8186:23;8176:122;;8243:1;8240;8233:12;8275:4;8273:1;8266:14;8176:122;8315:39;8344:7;8336:6;8332:20;8326:27;8315:39;:::i;:::-;8371;8400:7;8392:6;8388:20;8382:27;8371:39;:::i;:::-;8427;8456:7;8448:6;8444:20;8438:27;8427:39;:::i;:::-;8483:40;8512:8;8504:6;8500:21;8494:28;8483:40;:::i;:::-;8540;8569:8;8561:6;8557:21;8551:28;8540:40;:::i;:::-;8597;8626:8;8618:6;8614:21;8608:28;8597:40;:::i;:::-;8654:39;8683:7;8675:6;8671:20;8665:27;8654:39;:::i;:::-;8130:668;:::o;8824:2828::-;8907:5;8929;9015:2;9006:7;9001:17;8994:25;8987:3;8981:4;8977:15;8969:51;9099:2;9091:6;9086:16;9079:24;9072:3;9066:4;9062:15;9054:50;9173:2;9170;9166:10;9158:6;9153:24;9146:32;9139:3;9133:4;9129:15;9121:58;9248:2;9245;9241:10;9233:6;9228:24;9221:32;9214:3;9208:4;9204:15;9196:58;9323:2;9320;9316:10;9308:6;9303:24;9296:32;9289:3;9283:4;9279:15;9271:58;9398:3;9395:2;9391:11;9383:6;9378:25;9371:33;9364:3;9358:4;9354:15;9346:59;9474:3;9471:2;9467:11;9459:6;9454:25;9447:33;9440:3;9434:4;9430:15;9422:59;9560:1;9554:3;9544:7;9538:4;9534:18;9524:34;9520:42;9515:47;;9606:1;9598:5;9592:4;9588:16;9580:28;9689:1;9684:2;9676:5;9670:4;9666:16;9656:31;9652:39;9643:6;9637:4;9633:17;9625:67;9772:1;9767:2;9762;9754:6;9750:15;9740:30;9736:38;9727:6;9721:4;9717:17;9709:66;9852:1;9846:3;9840;9832:6;9828:16;9818:32;9814:40;9809:45;;9895:1;9889:3;9883:4;9879:14;9871:26;9955:1;9952;9949;9942:15;9932:7;9926:4;9922:18;9914:44;10009:1;10006;10003;9996:15;9992:19;;10062:1;10059;10056;10049:15;10045:19;;10115:1;10112;10109;10102:15;10098:19;;10168:1;10165;10162;10155:15;10151:19;;10221:1;10218;10215;10208:15;10204:19;;10274:1;10271;10268;10261:15;10257:19;;10327:1;10324;10321;10314:15;10310:19;;10380:1;10377;10374;10367:15;10363:19;;10433:1;10430;10427;10420:15;10416:19;;10486:1;10483;10480;10473:15;10469:19;;10539:1;10536;10533;10526:15;10522:19;;10592:1;10589;10586;10579:15;10575:19;;10645:1;10642;10639;10632:15;10628:19;;10698:1;10695;10692;10685:15;10681:19;;10751:1;10748;10745;10738:15;10734:19;;10812:1;10805:4;10799;10795:15;10787:27;10857:1;10853;10850;10847;10843:9;10839:16;10835:24;10831:28;;10900:1;10894:3;10888:4;10884:14;10876:26;10946:1;10937:6;10931:4;10927:17;10919:29;11087:1;11081:3;11071:7;11063:6;11059:20;11049:36;11045:44;11130:2;11124:3;11118:4;11114:14;11106:27;11170:1;11166:2;11162;11155:17;11150:22;;11213:1;11207:3;11201:4;11197:14;11189:26;11251:1;11247:2;11244:1;11237:16;11232:21;;11294:1;11288:3;11282:4;11278:14;11270:26;11332:1;11328:2;11325:1;11318:16;11313:21;;11375:1;11369:3;11363:4;11359:14;11351:26;11413:1;11409:2;11406:1;11399:16;11394:21;;11456:1;11450:3;11444:4;11440:14;11432:26;11494:1;11490:2;11487:1;11480:16;11475:21;;11537:1;11531:3;11525:4;11521:14;11513:26;11635:1;11629:3;11622:4;11614:6;11610:17;11600:33;11596:41;11591:2;11585:4;11581:13;11573:65;8876:2776;;;8824:2828;;;:::o;11678:1173::-;11739:1;12276;12222;12161;12091;12047:3;12041:4;12037:14;12031:21;11990:136;11953:239;11920:329;11892:1;11860:439;11828:8;11822:4;11818:19;11790:527;12385:35;12417:1;12408:6;12402:4;12398:17;12385:35;:::i;:::-;12480:3;12474:4;12470:14;12464:21;12507:1;12502:6;;12743:1;12715:2;12678:8;12672:4;12668:20;12662:27;12630:136;12597:8;12591:4;12587:20;12559:225;11711:1140;;11678:1173;:::o;12877:651::-;12938:1;13400;13355;13272;13234:2;13228:4;13224:13;13218:20;13174:8;13168:4;13164:19;13158:26;13118:185;13084:2;13051:278;13022:356;12997:422;12991:428;;13493:2;13487:3;13481:4;13477:14;13470:26;12910:618;12877:651;;:::o;13542:2196::-;13594:5;13616:6;13639;13789:1;13761:3;13755:4;13751:14;13745:21;13713:7;13705:6;13701:20;13695:27;13667:141;13662:146;;13971:1;13942:5;13936:4;13932:16;13926:23;13894:8;13886:6;13882:21;13876:28;13848:142;13842:148;;14115:1;14084:7;14076:6;14072:20;14066:27;14042:2;14014:120;14008:126;;14272:1;14242:6;14236:4;14232:17;14226:24;14202:2;14174:117;14168:123;;14438:1;14409:5;14403:4;14399:16;14393:23;14361:8;14353:6;14349:21;14343:28;14315:142;14309:148;;14582:1;14551:7;14543:6;14539:20;14533:27;14509:2;14481:120;14475:126;;14739:1;14709:6;14703:4;14699:17;14693:24;14669:2;14641:117;14635:123;;14813:1;14809:2;14805;14798:17;14792:23;;14978:1;14948:6;14942:4;14938:17;14932:24;14901:7;14893:6;14889:20;14883:27;14855:142;14849:148;;15036:1;15032:2;15028;15021:17;15015:23;;15102:1;15090:8;15082:6;15078:21;15072:28;15068:2;15061:43;15055:49;;15164:1;15154:6;15148:4;15144:17;15138:24;15134:2;15127:39;15121:45;;15330:1;15299:6;15293:4;15289:17;15283:24;15250:8;15244:4;15240:19;15234:26;15206:143;15200:149;;15473:1;15442:6;15436:4;15432:17;15426:24;15401:2;15373:119;15367:125;;15531:1;15527:2;15523;15516:17;15510:23;;15596:1;15591:2;15587:1;15584;15580:9;15576:18;15572:26;15567:31;;15656:1;15646:6;15640:4;15636:17;15630:24;15627:1;15620:38;15615:43;;15721:1;15710:7;15704:4;15700:18;15692:31;13576:2162;;;13542:2196;;:::o;15764:132::-;15823:2;15817:9;15813:2;15806:21;15877:2;15874;15870:10;15864:17;15859:2;15855;15851:11;15844:38;15764:132;;:::o;15910:498::-;15969:4;15963:11;16009:2;16003:9;15998:3;15991:22;16064:2;16060;16056:11;16050:18;16045:2;16041:3;16037:11;16030:39;16112:2;16106:9;16101:2;16097:3;16093:11;16086:30;16167:2;16163;16159:11;16153:18;16148:2;16144:3;16140:11;16133:39;16251:2;16247;16242:3;16237;16234:1;16227:4;16220:5;16216:16;16205:49;16298:7;16288:106;;16339:1;16336;16329:12;16371:4;16369:1;16362:14;16288:106;15934:474;;15910:498;;:::o;16422:819::-;16470:11;16515:4;16509:11;16555:2;16549:9;16544:3;16537:22;16610:2;16606;16602:11;16596:18;16591:2;16587:3;16583:11;16576:39;16652:1;16647:2;16643:3;16639:11;16632:22;16729:2;16724:3;16720:2;16715:3;16712:1;16705:4;16698:5;16694:16;16683:49;16672:60;;16776:7;16766:106;;16817:1;16814;16807:12;16849:4;16847:1;16840:14;16766:106;16932:2;16926:9;16921:2;16917:3;16913:11;16906:30;16987:2;16983;16979:11;16973:18;16968:2;16964:3;16960:11;16953:39;17067:2;17063;17058:3;17053;17050:1;17043:4;17036:5;17032:16;17021:49;17010:60;;17114:7;17104:106;;17155:1;17152;17145:12;17187:4;17185:1;17178:14;17104:106;16452:789;;16422:819;;;:::o;17255:780::-;17306:11;17351:4;17345:11;17385:1;17380:3;17373:14;17424:1;17419:2;17415:3;17411:11;17404:22;17463:1;17458:2;17454:3;17450:11;17443:22;17540:2;17535:3;17531:2;17526:3;17523:1;17516:4;17509:5;17505:16;17494:49;17483:60;;17587:7;17577:106;;17628:1;17625;17618:12;17660:4;17658:1;17651:14;17577:106;17743:2;17737:9;17732:2;17728:3;17724:11;17717:30;17798:2;17794;17790:11;17784:18;17779:2;17775:3;17771:11;17764:39;17878:2;17874;17869:3;17864;17861:1;17854:4;17847:5;17843:16;17832:49;17821:60;;17925:7;17915:106;;17966:1;17963;17956:12;17998:4;17996:1;17989:14;17915:106;17288:747;;17255:780;;;;:::o;18049:441::-;18100:11;18145:4;18139:11;18179:1;18174:3;18167:14;18218:1;18213:2;18209:3;18205:11;18198:22;18257:1;18252:2;18248:3;18244:11;18237:22;18333:2;18329;18325;18320:3;18317:1;18310:4;18303:5;18299:16;18288:48;18277:59;;18380:7;18370:106;;18421:1;18418;18411:12;18453:4;18451:1;18444:14;18370:106;18082:408;;18049:441;;;;:::o;18505:206::-;18577:3;18571:4;18567:14;18598:28;18620:4;18612:6;18608:17;18605:1;18598:28;:::i;:::-;18643:54;18692:2;18686:4;18682:13;18676:20;18668:5;18660:6;18656:18;18653:1;18643:54;:::i;:::-;18540:171;18505:206;;:::o;18750:4478::-;18803:5;18825:6;18867:3;18861:4;18857:14;19001:1;18994:3;18988:4;18984:14;18978:21;18967:7;18959:6;18955:20;18949:27;18941:62;18936:67;;19020:26;19044:1;19039:3;19034;19031:1;19020:26;:::i;:::-;19109:1;19098:7;19090:6;19086:20;19080:27;19077:1;19069:42;19064:47;;19144:26;19168:1;19163:3;19158;19155:1;19144:26;:::i;:::-;19253:1;19246:3;19240:4;19236:14;19230:21;19219:7;19211:6;19207:20;19201:27;19193:62;19188:67;;19272:26;19296:1;19291:3;19286;19283:1;19272:26;:::i;:::-;19397:1;19390:3;19384:4;19380:14;19374:21;19363:7;19355:6;19351:20;19345:27;19337:62;19332:67;;19416:26;19440:1;19435:3;19430;19427:1;19416:26;:::i;:::-;19480:3;19474:4;19470:14;19464:21;19460:25;;19502:26;19526:1;19521:3;19516;19513:1;19502:26;:::i;:::-;19614:1;19603:7;19597:4;19593:18;19587:25;19576:7;19568:6;19564:20;19558:27;19551:65;19546:70;;19674:1;19664:6;19658:4;19654:17;19648:24;19645:1;19638:38;19633:43;;19737:1;19726:7;19720:4;19716:18;19710:25;19706:2;19699:40;19693:46;;19802:1;19791:7;19783:6;19779:20;19773:27;19769:2;19762:42;19756:48;;19864:1;19854:6;19848:4;19844:17;19838:24;19834:2;19827:39;19821:45;;19902:1;19898:2;19895:1;19888:16;19883:21;;19965:1;19954:7;19948:4;19944:18;19938:25;19934:2;19927:40;19921:46;;20030:1;20019:7;20011:6;20007:20;20001:27;19997:2;19990:42;19984:48;;20092:1;20082:6;20076:4;20072:17;20066:24;20062:2;20055:39;20049:45;;20130:1;20126:2;20123:1;20116:16;20111:21;;20190:1;20180:6;20174:4;20170:17;20164:24;20161:1;20154:38;20149:43;;20247:1;20240:3;20234:4;20230:14;20224:21;20221:1;20214:35;20209:40;;20333:1;20323:6;20317:4;20313:17;20307:24;20295:8;20289:4;20285:19;20279:26;20272:63;20266:69;;20395:1;20385:6;20379:4;20375:17;20369:24;20365:2;20358:39;20352:45;;20454:1;20447:3;20441:4;20437:14;20431:21;20427:2;20420:36;20414:42;;20492:1;20488:2;20485:1;20478:16;20473:21;;20548:1;20542:2;20536:4;20532:13;20526:20;20523:1;20516:34;20511:39;;20567:32;20597:1;20592:2;20584:6;20580:15;20577:1;20567:32;:::i;:::-;20700:1;20688:8;20680:6;20676:21;20670:28;20661:5;20655:4;20651:16;20645:23;20638:64;20633:69;;20763:1;20752:7;20744:6;20740:20;20734:27;20731:1;20724:41;20719:46;;20823:1;20813:6;20807:4;20803:17;20797:24;20794:1;20787:38;20782:43;;20910:1;20898:8;20890:6;20886:21;20880:28;20871:5;20865:4;20861:16;20855:23;20848:64;20842:70;;20975:1;20964:7;20956:6;20952:20;20946:27;20942:2;20935:42;20929:48;;21037:1;21027:6;21021:4;21017:17;21011:24;21007:2;21000:39;20994:45;;21075:1;21071:2;21068:1;21061:16;21056:21;;21135:1;21125:6;21119:4;21115:17;21109:24;21106:1;21099:38;21094:43;;21192:1;21185:3;21179:4;21175:14;21169:21;21166:1;21159:35;21154:40;;21251:1;21242:5;21236:4;21232:16;21226:23;21223:1;21216:37;21211:42;;21315:1;21303:8;21295:6;21291:21;21285:28;21282:1;21275:42;21270:47;;21354:1;21350;21347;21343:9;21339:17;21334:22;;21373:26;21397:1;21392:3;21387;21384:1;21373:26;:::i;:::-;21449:28;21472:3;21464:6;21460:16;21456:1;21449:28;:::i;:::-;21516:4;21510;21506:15;21500:22;21495:27;;21539:33;21570:1;21564:3;21556:6;21552:16;21549:1;21539:33;:::i;:::-;21624:1;21621;21618;21611:15;21606:20;;21643:33;21674:1;21668:3;21660:6;21656:16;21653:1;21643:33;:::i;:::-;21710:52;21756:3;21750:4;21746:14;21740:21;21735:2;21727:6;21723:15;21720:1;21710:52;:::i;:::-;21779;21825:3;21819:4;21815:14;21809:21;21804:2;21796:6;21792:15;21789:1;21779:52;:::i;:::-;21848;21894:3;21888:4;21884:14;21878:21;21873:2;21865:6;21861:15;21858:1;21848:52;:::i;:::-;21917:46;21957:3;21951:4;21947:14;21941:21;21936:3;21931;21928:1;21917:46;:::i;:::-;21980;22020:3;22014:4;22010:14;22004:21;21999:3;21994;21991:1;21980:46;:::i;:::-;22112:7;22106:4;22102:18;22096:25;22091:30;;22216:1;22212;22205:3;22199:4;22195:14;22189:21;22178:7;22170:6;22166:20;22160:27;22153:61;22150:1;22143:75;22138:80;;22313:1;22309;22302:3;22296:4;22292:14;22286:21;22275:7;22267:6;22263:20;22257:27;22250:61;22247:1;22240:75;22235:80;;22410:1;22406;22399:3;22393:4;22389:14;22383:21;22372:7;22364:6;22360:20;22354:27;22347:61;22344:1;22337:75;22332:80;;22507:1;22503;22496:3;22490:4;22486:14;22480:21;22469:7;22461:6;22457:20;22451:27;22444:61;22441:1;22434:75;22429:80;;22605:1;22601;22594:3;22588:4;22584:14;22578:21;22566:8;22558:6;22554:21;22548:28;22541:62;22538:1;22531:76;22526:81;;22703:1;22699;22692:3;22686:4;22682:14;22676:21;22664:8;22656:6;22652:21;22646:28;22639:62;22636:1;22629:76;22624:81;;22800:1;22796;22790:2;22784:4;22780:13;22774:20;22762:8;22754:6;22750:21;22744:28;22737:61;22734:1;22727:75;22722:80;;22839:1;22835;22832;22828:9;22824:17;22819:22;;22858:26;22882:1;22877:3;22872;22869:1;22858:26;:::i;:::-;22990:3;22984:4;22980:14;22974:21;22969:26;;23012:34;23044:1;23037:4;23029:6;23025:17;23022:1;23012:34;:::i;:::-;23121:1;23114:3;23108:4;23104:14;23098:21;23092:2;23086:4;23082:13;23076:20;23069:54;23064:59;;23159:1;23155:2;23152:1;23145:16;23140:21;;23178:35;23211:1;23203:5;23195:6;23191:18;23188:1;23178:35;:::i;:::-;18785:4443;;;18750:4478;;:::o;23254:915::-;23285:4;23325;23319:11;23375:3;23369:4;23365:14;23359:21;23354:3;23347:34;23444:2;23438:3;23432:4;23428:14;23424:23;23418:30;23413:2;23409:3;23405:11;23398:51;23486:4;23481:2;23477:3;23473:11;23466:25;23528:4;23523:2;23519:3;23515:11;23508:25;23571:4;23565:3;23561;23557:12;23550:26;23614:4;23608:3;23604;23600:12;23593:26;23673:3;23667:4;23663:14;23657:21;23651:3;23647;23643:12;23636:43;23731:2;23725:3;23719:4;23715:14;23711:23;23705:30;23773:2;23769:1;23765:2;23761:10;23757:19;23752:24;;23814:1;23808:3;23804;23800:12;23793:23;23854:4;23848:3;23844;23840:12;23833:26;23897:4;23891:3;23887;23883:12;23876:26;23940:4;23934:3;23930;23926:12;23919:26;23983:4;23977:3;23973;23969:12;23962:26;24084:4;24079:3;24074;24069;24066:1;24059:4;24052:5;24048:16;24037:52;24150:3;24144:10;24135:7;24131:24;24123:32;;23290:879;;;23254:915;;;:::o;:::-;24213:4;24207:11;24254:7;24248:4;24244:18;24238:4;24231:32;24289:17;24300:5;24289:17;:::i;:::-;24319:44;24352:10;24346:4;24339:5;24319:44;:::i;:::-;24376:23;24394:4;24376:23;:::i;:::-;24412:29;24430:10;24424:4;24412:29;:::i;:::-;24454:23;24472:4;24465:5;24454:23;:::i;:::-;24490:24;24509:4;24502:5;24490:24;:::i;:::-;24527;24546:4;24539:5;24527:24;:::i;:::-;24579:18;24592:4;24579:18;:::i;:::-;24646:7;24640:4;24636:18;24630:4;24623:32;24678:7;24675:1;24668:18;24708:4;24706:1;24699:14;7:75:9;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:307::-;1357:4;1447:18;1439:6;1436:30;1433:56;;;1469:18;;:::i;:::-;1433:56;1507:29;1529:6;1507:29;:::i;:::-;1499:37;;1591:4;1585;1581:15;1573:23;;1296:307;;;:::o;1609:146::-;1706:6;1701:3;1696;1683:30;1747:1;1738:6;1733:3;1729:16;1722:27;1609:146;;;:::o;1761:423::-;1838:5;1863:65;1879:48;1920:6;1879:48;:::i;:::-;1863:65;:::i;:::-;1854:74;;1951:6;1944:5;1937:21;1989:4;1982:5;1978:16;2027:3;2018:6;2013:3;2009:16;2006:25;2003:112;;;2034:79;;:::i;:::-;2003:112;2124:54;2171:6;2166:3;2161;2124:54;:::i;:::-;1844:340;1761:423;;;;;:::o;2203:338::-;2258:5;2307:3;2300:4;2292:6;2288:17;2284:27;2274:122;;2315:79;;:::i;:::-;2274:122;2432:6;2419:20;2457:78;2531:3;2523:6;2516:4;2508:6;2504:17;2457:78;:::i;:::-;2448:87;;2264:277;2203:338;;;;:::o;2547:311::-;2624:4;2714:18;2706:6;2703:30;2700:56;;;2736:18;;:::i;:::-;2700:56;2786:4;2778:6;2774:17;2766:25;;2846:4;2840;2836:15;2828:23;;2547:311;;;:::o;2864:117::-;2973:1;2970;2963:12;2987:77;3024:7;3053:5;3042:16;;2987:77;;;:::o;3070:122::-;3143:24;3161:5;3143:24;:::i;:::-;3136:5;3133:35;3123:63;;3182:1;3179;3172:12;3123:63;3070:122;:::o;3198:139::-;3244:5;3282:6;3269:20;3260:29;;3298:33;3325:5;3298:33;:::i;:::-;3198:139;;;;:::o;3360:710::-;3456:5;3481:81;3497:64;3554:6;3497:64;:::i;:::-;3481:81;:::i;:::-;3472:90;;3582:5;3611:6;3604:5;3597:21;3645:4;3638:5;3634:16;3627:23;;3698:4;3690:6;3686:17;3678:6;3674:30;3727:3;3719:6;3716:15;3713:122;;;3746:79;;:::i;:::-;3713:122;3861:6;3844:220;3878:6;3873:3;3870:15;3844:220;;;3953:3;3982:37;4015:3;4003:10;3982:37;:::i;:::-;3977:3;3970:50;4049:4;4044:3;4040:14;4033:21;;3920:144;3904:4;3899:3;3895:14;3888:21;;3844:220;;;3848:21;3462:608;;3360:710;;;;;:::o;4093:370::-;4164:5;4213:3;4206:4;4198:6;4194:17;4190:27;4180:122;;4221:79;;:::i;:::-;4180:122;4338:6;4325:20;4363:94;4453:3;4445:6;4438:4;4430:6;4426:17;4363:94;:::i;:::-;4354:103;;4170:293;4093:370;;;;:::o;4469:862::-;4571:6;4579;4628:2;4616:9;4607:7;4603:23;4599:32;4596:119;;;4634:79;;:::i;:::-;4596:119;4782:1;4771:9;4767:17;4754:31;4812:18;4804:6;4801:30;4798:117;;;4834:79;;:::i;:::-;4798:117;4939:62;4993:7;4984:6;4973:9;4969:22;4939:62;:::i;:::-;4929:72;;4725:286;5078:2;5067:9;5063:18;5050:32;5109:18;5101:6;5098:30;5095:117;;;5131:79;;:::i;:::-;5095:117;5236:78;5306:7;5297:6;5286:9;5282:22;5236:78;:::i;:::-;5226:88;;5021:303;4469:862;;;;;:::o;5337:90::-;5371:7;5414:5;5407:13;5400:21;5389:32;;5337:90;;;:::o;5433:109::-;5514:21;5529:5;5514:21;:::i;:::-;5509:3;5502:34;5433:109;;:::o;5548:210::-;5635:4;5673:2;5662:9;5658:18;5650:26;;5686:65;5748:1;5737:9;5733:17;5724:6;5686:65;:::i;:::-;5548:210;;;;:::o"},"methodIdentifiers":{"verifyProof(bytes,uint256[])":"1e8e1e13"}},"metadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"uint256[]\",\"name\":\"pubSignals\",\"type\":\"uint256[]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/workstep1Verifier.sol\":\"PlonkVerifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/workstep1Verifier.sol\":{\"keccak256\":\"0xbf87e3cb78c685499c924b2901ce746dbe2d68f42a113e7e164143d263e57ec6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e44bd59ee1c4a758020afa19270840172c66bf3ecc3ad591781ea720322ddd52\",\"dweb:/ipfs/QmWdphJ1ppD3YQDGAMfSABSiMBsbQwrrvcd88ihj43sLTa\"]}},\"version\":1}"}},"contracts/workstep2Verifier.sol":{"PlonkVerifier":{"abi":[{"inputs":[{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"uint256[]","name":"pubSignals","type":"uint256[]"}],"name":"verifyProof","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50611dc2806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80631e8e1e1314610030575b600080fd5b61004a60048036038101906100459190611cde565b610060565b6040516100579190611d71565b60405180910390f35b6000611a1b565b600080600184846000805b821561009c5782840591508482028603905084955080945082820284039050829350809250610072565b60018411156100aa57600080fd5b60008612156100b95788860195505b85965050505050505092915050565b60405181602084028301815160208301925060005b82841015610120578185527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018451830991506020850194506020840193506100dd565b61014a7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183610067565b91506020850394506020840393508592505b828411156101c6577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018551830990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000184518309915080845260208503945060208403935061015c565b81845250505050505050565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610203576000805260206000f35b50565b61032081511461021a576000805260206000f35b6102286102608201516101d2565b6102366102808201516101d2565b6102446102a08201516101d2565b6102526102c08201516101d2565b6102606102e08201516101d2565b61026e6103008201516101d2565b61027c6103208201516101d2565b50565b60008060208501516102c085015260208301516102e08501526020800183015161030085015260406020018301516103208501526060602001830151610340850152608060200183015161036085015260a06020018301516103808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e06102c08601200690508060208501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020808601200660408501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001604060e08501200660008501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c06101208501200691508160608501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182820960a08501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991508160808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000180600184030106915081610260850152816102808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e0610260850120068060c08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181820992508260e08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101008601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101208601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101408601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101608601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160806101e086012006610180860152505050505050565b60017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836060860151030106618000096102a08301526107ec600261028084016100c8565b610260820151600191507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001816102a0850151096102a0840152505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102a086015109830301069050806101a0830152505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016101a08601516103208601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102c08601510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102e08601510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160408601516102a08601510890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151820990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018501030692507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028086015184099250826101c08601525050505050565b81518152602082015160208201525050565b6040518151815260208201516020820152825160408201526020830151606082015260408260808360066107d05a03fa80610bec576000805260206000f35b50505050565b6000604051835181526020840151602082015284604082015260408160608360076107d05a03fa915081610c2a576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610c5a576000805260206000f35b5050505050565b600060405183815284602082015285604082015260408160608360076107d05a03fa915081610c94576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610cc4576000805260206000f35b505050505050565b600060405183815284602082015285604082015260408360608360076107d05a03fa915081610cff576000805260206000f35b505050505050565b6101e08201610d1a6101e0830182610b9b565b610d2e610180840151610220840183610bf2565b505050565b60008061022084017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610260860151099250610db6837f073ad9ca0a63bf57aab7471be06714e14cb129b3bc1957fb205f02a2dff201447f0f0d5954bc5550bb6b8a63158299441a292523e20998bd2eeaf6817b9cf7489184610ccc565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028085015184099250610e2d837f24b75923ef66b5a38313240bf8701e5289f37ff6e54a5d9696c571cd0d7a6f7b7f13f75f7639b17b60c5dc1561ca51e09122443b14fd9b5198a3200cb73c405e7484610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610280860151099250610ea8837f26aee923b0c25e2761ed55d872bdce83e1d95e965ca8ce1d7bf132065ed73bea7f0d97ed9d9f00314c36234ec638665eba9c42b2aeb9472214f2d5a2b22615181d84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c08601516102a0860151099250610f23837f24d590624aa64d73288cef9c5c68ddfbc43c288bfec0ea23a65e3d519deb4b457f2fe2b7a5e3301ec2548b1b9fa04dafe8bdb129027d89d2fda93c32b2ac1d615384610c61565b60c08501519250610f76837f2ad72eb4319e5ce1f126c3ee2fb7b07fcacc472b06034bc9b7b00fa5c6db3dd17f0bbacffc38b7a2d2938e833aa0b1beb2ebe94796ee3eeeaa8cde99e34b70274e84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a08601516102608601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160020991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160030991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102a0850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610180860151840892506112518360e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102c085015160208701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102e085015160208701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506114bb837f244c5fc4bd854ee2b3c1b620e013383a9e6daca6c0bab14aecd7101aba922cb67f2281748b89dcd5aeaee8e7b5573d600632e8b7d13619eca441e770f4862711ff84610c61565b6114c9610120850182610bad565b608085015192506114df83610160860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018384099250611514836101a0860183610bf2565b61152660e08601516020860183610bf2565b6115396101008601516060860183610bf2565b61154c61012086015160a0860183610bf2565b61159d6101408601517f14ce1f304c015a19fe72ccdd0c7b1aaae908e4faa13142d0d8d108e2efa497fd7f1ddf2ac14509d3ed88c5114e806890a074e2a3cf08bd6b406cd4e0c1256d6a5a84610c61565b6115ed6101608601517e701c2a27f6e67a591f1ca598c17621b64ad8830430232895ca68fe3dc5854d7f0dc88371d3444a7bbc4f3cb292e69421c549c10b86e8982b67d074006094fe0884610c61565b6101c085015192507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060c087015161032087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060e087015161026087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061010087015161028087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101208701516102a087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101408701516102c087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101608701516102e087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061018087015161030087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506117ad836002600184610c61565b606085015192506117c3836101e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160608601516101808701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb8409925061184783610220860183610bf2565b5050505050565b60006040516101e0830151815260206101e08401015160208201527f1e3b651c96c337f8f6266fadcef22dc97717b5d44b445a5ef799a6cd3cc564a060408201527f10b13ed45e1871ff867a120754de5bf5c1395ad0078891e1b81f284ef6df78ca60608201527f2b57d40b181c33d7331accce5e5b890345b051c33f74e24ab728b18a3f7b473e60808201527f241a20e6fc3bc59485fa2e92365b46bf48742e8fac0b18859306488928cdcf0860a082015261022083015160c08201526020610220840101517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47817f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47030690508060e08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101008301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101208301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6101408301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa6101608301526020826101808460086107d05a03fa825181169350505050919050565b6040516102c08101604052611a2f84610206565b611a3a83828661027f565b611a4381610785565b611a4d838261082a565b611a57818561088d565b611a618185610d07565b611a6b8185610d33565b611a748161184e565b6102c082036040528060005260206000f35b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611aed82611aa4565b810181811067ffffffffffffffff82111715611b0c57611b0b611ab5565b5b80604052505050565b6000611b1f611a86565b9050611b2b8282611ae4565b919050565b600067ffffffffffffffff821115611b4b57611b4a611ab5565b5b611b5482611aa4565b9050602081019050919050565b82818337600083830152505050565b6000611b83611b7e84611b30565b611b15565b905082815260208101848484011115611b9f57611b9e611a9f565b5b611baa848285611b61565b509392505050565b600082601f830112611bc757611bc6611a9a565b5b8135611bd7848260208601611b70565b91505092915050565b600067ffffffffffffffff821115611bfb57611bfa611ab5565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b611c2481611c11565b8114611c2f57600080fd5b50565b600081359050611c4181611c1b565b92915050565b6000611c5a611c5584611be0565b611b15565b90508083825260208201905060208402830185811115611c7d57611c7c611c0c565b5b835b81811015611ca65780611c928882611c32565b845260208401935050602081019050611c7f565b5050509392505050565b600082601f830112611cc557611cc4611a9a565b5b8135611cd5848260208601611c47565b91505092915050565b60008060408385031215611cf557611cf4611a90565b5b600083013567ffffffffffffffff811115611d1357611d12611a95565b5b611d1f85828601611bb2565b925050602083013567ffffffffffffffff811115611d4057611d3f611a95565b5b611d4c85828601611cb0565b9150509250929050565b60008115159050919050565b611d6b81611d56565b82525050565b6000602082019050611d866000830184611d62565b9291505056fea26469706673582212204448cae53335b2e219e7aecf736766fc3c26b6fae1ad2206b3def7fc663a56d064736f6c63430008180033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DC2 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1E8E1E13 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x1CDE JUMP JUMPDEST PUSH2 0x60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x57 SWAP2 SWAP1 PUSH2 0x1D71 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x1A1B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 DUP5 DUP5 PUSH1 0x0 DUP1 JUMPDEST DUP3 ISZERO PUSH2 0x9C JUMPI DUP3 DUP5 SDIV SWAP2 POP DUP5 DUP3 MUL DUP7 SUB SWAP1 POP DUP5 SWAP6 POP DUP1 SWAP5 POP DUP3 DUP3 MUL DUP5 SUB SWAP1 POP DUP3 SWAP4 POP DUP1 SWAP3 POP PUSH2 0x72 JUMP JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP7 SLT ISZERO PUSH2 0xB9 JUMPI DUP9 DUP7 ADD SWAP6 POP JUMPDEST DUP6 SWAP7 POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x20 DUP5 MUL DUP4 ADD DUP2 MLOAD PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x120 JUMPI DUP2 DUP6 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP5 MLOAD DUP4 MULMOD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xDD JUMP JUMPDEST PUSH2 0x14A PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH2 0x67 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP6 SUB SWAP5 POP PUSH1 0x20 DUP5 SUB SWAP4 POP DUP6 SWAP3 POP JUMPDEST DUP3 DUP5 GT ISZERO PUSH2 0x1C6 JUMPI PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP6 MLOAD DUP4 MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP5 MLOAD DUP4 MULMOD SWAP2 POP DUP1 DUP5 MSTORE PUSH1 0x20 DUP6 SUB SWAP5 POP PUSH1 0x20 DUP5 SUB SWAP4 POP PUSH2 0x15C JUMP JUMPDEST DUP2 DUP5 MSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x203 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH2 0x320 DUP2 MLOAD EQ PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST PUSH2 0x228 PUSH2 0x260 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x236 PUSH2 0x280 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x244 PUSH2 0x2A0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x252 PUSH2 0x2C0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x260 PUSH2 0x2E0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x26E PUSH2 0x300 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x27C PUSH2 0x320 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x2C0 DUP6 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x2E0 DUP6 ADD MSTORE PUSH1 0x20 DUP1 ADD DUP4 ADD MLOAD PUSH2 0x300 DUP6 ADD MSTORE PUSH1 0x40 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x320 DUP6 ADD MSTORE PUSH1 0x60 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x340 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x360 DUP6 ADD MSTORE PUSH1 0xA0 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x380 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xE0 PUSH2 0x2C0 DUP7 ADD KECCAK256 MOD SWAP1 POP DUP1 PUSH1 0x20 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP1 DUP7 ADD KECCAK256 MOD PUSH1 0x40 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 PUSH1 0xE0 DUP6 ADD KECCAK256 MOD PUSH1 0x0 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 PUSH2 0x120 DUP6 ADD KECCAK256 MOD SWAP2 POP DUP2 PUSH1 0x60 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP3 MULMOD PUSH1 0xA0 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP DUP2 PUSH1 0x80 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0x1 DUP5 SUB ADD MOD SWAP2 POP DUP2 PUSH2 0x260 DUP6 ADD MSTORE DUP2 PUSH2 0x280 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xE0 PUSH2 0x260 DUP6 ADD KECCAK256 MOD DUP1 PUSH1 0xC0 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP3 MULMOD SWAP3 POP DUP3 PUSH1 0xE0 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x100 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x120 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x140 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x160 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x80 PUSH2 0x1E0 DUP7 ADD KECCAK256 MOD PUSH2 0x180 DUP7 ADD MSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH1 0x60 DUP7 ADD MLOAD SUB ADD MOD PUSH2 0x8000 MULMOD PUSH2 0x2A0 DUP4 ADD MSTORE PUSH2 0x7EC PUSH1 0x2 PUSH2 0x280 DUP5 ADD PUSH2 0xC8 JUMP JUMPDEST PUSH2 0x260 DUP3 ADD MLOAD PUSH1 0x1 SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 PUSH2 0x2A0 DUP6 ADD MLOAD MULMOD PUSH2 0x2A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD MULMOD DUP4 SUB ADD MOD SWAP1 POP DUP1 PUSH2 0x1A0 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x1A0 DUP7 ADD MLOAD PUSH2 0x320 DUP7 ADD MLOAD ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2C0 DUP7 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x260 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2E0 DUP7 ADD MLOAD MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP3 ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP3 ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x300 DUP6 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP3 MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP6 ADD SUB MOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x1C0 DUP7 ADD MSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP3 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL DUP1 PUSH2 0xBEC JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC2A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC94 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xCC4 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xCFF JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP3 ADD PUSH2 0xD1A PUSH2 0x1E0 DUP4 ADD DUP3 PUSH2 0xB9B JUMP JUMPDEST PUSH2 0xD2E PUSH2 0x180 DUP5 ADD MLOAD PUSH2 0x220 DUP5 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x220 DUP5 ADD PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x260 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xDB6 DUP4 PUSH32 0x73AD9CA0A63BF57AAB7471BE06714E14CB129B3BC1957FB205F02A2DFF20144 PUSH32 0xF0D5954BC5550BB6B8A63158299441A292523E20998BD2EEAF6817B9CF74891 DUP5 PUSH2 0xCCC JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH2 0xE2D DUP4 PUSH32 0x24B75923EF66B5A38313240BF8701E5289F37FF6E54A5D9696C571CD0D7A6F7B PUSH32 0x13F75F7639B17B60C5DC1561CA51E09122443B14FD9B5198A3200CB73C405E74 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x280 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xEA8 DUP4 PUSH32 0x26AEE923B0C25E2761ED55D872BDCE83E1D95E965CA8CE1D7BF132065ED73BEA PUSH32 0xD97ED9D9F00314C36234EC638665EBA9C42B2AEB9472214F2D5A2B22615181D DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xF23 DUP4 PUSH32 0x24D590624AA64D73288CEF9C5C68DDFBC43C288BFEC0EA23A65E3D519DEB4B45 PUSH32 0x2FE2B7A5E3301EC2548B1B9FA04DAFE8BDB129027D89D2FDA93C32B2AC1D6153 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0xC0 DUP6 ADD MLOAD SWAP3 POP PUSH2 0xF76 DUP4 PUSH32 0x2AD72EB4319E5CE1F126C3EE2FB7B07FCACC472B06034BC9B7B00FA5C6DB3DD1 PUSH32 0xBBACFFC38B7A2D2938E833AA0B1BEB2EBE94796EE3EEEAA8CDE99E34B70274E DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH2 0x260 DUP7 ADD MLOAD ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x2 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x3 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2A0 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x180 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH2 0x1251 DUP4 PUSH1 0xE0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2C0 DUP6 ADD MLOAD PUSH1 0x20 DUP8 ADD MLOAD MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x260 DUP6 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2E0 DUP6 ADD MLOAD PUSH1 0x20 DUP8 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x300 DUP6 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 SUB MOD SWAP3 POP PUSH2 0x14BB DUP4 PUSH32 0x244C5FC4BD854EE2B3C1B620E013383A9E6DACA6C0BAB14AECD7101ABA922CB6 PUSH32 0x2281748B89DCD5AEAEE8E7B5573D600632E8B7D13619ECA441E770F4862711FF DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x14C9 PUSH2 0x120 DUP6 ADD DUP3 PUSH2 0xBAD JUMP JUMPDEST PUSH1 0x80 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x14DF DUP4 PUSH2 0x160 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 DUP5 MULMOD SWAP3 POP PUSH2 0x1514 DUP4 PUSH2 0x1A0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x1526 PUSH1 0xE0 DUP7 ADD MLOAD PUSH1 0x20 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x1539 PUSH2 0x100 DUP7 ADD MLOAD PUSH1 0x60 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x154C PUSH2 0x120 DUP7 ADD MLOAD PUSH1 0xA0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x159D PUSH2 0x140 DUP7 ADD MLOAD PUSH32 0x14CE1F304C015A19FE72CCDD0C7B1AAAE908E4FAA13142D0D8D108E2EFA497FD PUSH32 0x1DDF2AC14509D3ED88C5114E806890A074E2A3CF08BD6B406CD4E0C1256D6A5A DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x15ED PUSH2 0x160 DUP7 ADD MLOAD PUSH31 0x701C2A27F6E67A591F1CA598C17621B64AD8830430232895CA68FE3DC5854D PUSH32 0xDC88371D3444A7BBC4F3CB292E69421C549C10B86E8982B67D074006094FE08 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x1C0 DUP6 ADD MLOAD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0xC0 DUP8 ADD MLOAD PUSH2 0x320 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0xE0 DUP8 ADD MLOAD PUSH2 0x260 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x100 DUP8 ADD MLOAD PUSH2 0x280 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x120 DUP8 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x140 DUP8 ADD MLOAD PUSH2 0x2C0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x160 DUP8 ADD MLOAD PUSH2 0x2E0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x180 DUP8 ADD MLOAD PUSH2 0x300 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 SUB MOD SWAP3 POP PUSH2 0x17AD DUP4 PUSH1 0x2 PUSH1 0x1 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0x60 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x17C3 DUP4 PUSH2 0x1E0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x60 DUP7 ADD MLOAD PUSH2 0x180 DUP8 ADD MLOAD MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH32 0x2D1BA66F5941DC91017171FA69EC2BD0022A2A2D4115A009A93458FD4E26ECFB DUP5 MULMOD SWAP3 POP PUSH2 0x1847 DUP4 PUSH2 0x220 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x1E0 DUP4 ADD MLOAD DUP2 MSTORE PUSH1 0x20 PUSH2 0x1E0 DUP5 ADD ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x1E3B651C96C337F8F6266FADCEF22DC97717B5D44B445A5EF799A6CD3CC564A0 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x10B13ED45E1871FF867A120754DE5BF5C1395AD0078891E1B81F284EF6DF78CA PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x2B57D40B181C33D7331ACCCE5E5B890345B051C33F74E24AB728B18A3F7B473E PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x241A20E6FC3BC59485FA2E92365B46BF48742E8FAC0B18859306488928CDCF08 PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x220 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x20 PUSH2 0x220 DUP5 ADD ADD MLOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 DUP2 PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD SWAP1 POP DUP1 PUSH1 0xE0 DUP4 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x100 DUP4 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x120 DUP4 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x140 DUP4 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x160 DUP4 ADD MSTORE PUSH1 0x20 DUP3 PUSH2 0x180 DUP5 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL DUP3 MLOAD DUP2 AND SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C0 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x1A2F DUP5 PUSH2 0x206 JUMP JUMPDEST PUSH2 0x1A3A DUP4 DUP3 DUP7 PUSH2 0x27F JUMP JUMPDEST PUSH2 0x1A43 DUP2 PUSH2 0x785 JUMP JUMPDEST PUSH2 0x1A4D DUP4 DUP3 PUSH2 0x82A JUMP JUMPDEST PUSH2 0x1A57 DUP2 DUP6 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x1A61 DUP2 DUP6 PUSH2 0xD07 JUMP JUMPDEST PUSH2 0x1A6B DUP2 DUP6 PUSH2 0xD33 JUMP JUMPDEST PUSH2 0x1A74 DUP2 PUSH2 0x184E JUMP JUMPDEST PUSH2 0x2C0 DUP3 SUB PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1AED DUP3 PUSH2 0x1AA4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1B0C JUMPI PUSH2 0x1B0B PUSH2 0x1AB5 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B1F PUSH2 0x1A86 JUMP JUMPDEST SWAP1 POP PUSH2 0x1B2B DUP3 DUP3 PUSH2 0x1AE4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1B4B JUMPI PUSH2 0x1B4A PUSH2 0x1AB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1B54 DUP3 PUSH2 0x1AA4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B83 PUSH2 0x1B7E DUP5 PUSH2 0x1B30 JUMP JUMPDEST PUSH2 0x1B15 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1B9F JUMPI PUSH2 0x1B9E PUSH2 0x1A9F JUMP JUMPDEST JUMPDEST PUSH2 0x1BAA DUP5 DUP3 DUP6 PUSH2 0x1B61 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1BC7 JUMPI PUSH2 0x1BC6 PUSH2 0x1A9A JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1BD7 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1B70 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1BFB JUMPI PUSH2 0x1BFA PUSH2 0x1AB5 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C24 DUP2 PUSH2 0x1C11 JUMP JUMPDEST DUP2 EQ PUSH2 0x1C2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1C41 DUP2 PUSH2 0x1C1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C5A PUSH2 0x1C55 DUP5 PUSH2 0x1BE0 JUMP JUMPDEST PUSH2 0x1B15 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1C7D JUMPI PUSH2 0x1C7C PUSH2 0x1C0C JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1CA6 JUMPI DUP1 PUSH2 0x1C92 DUP9 DUP3 PUSH2 0x1C32 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1C7F JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1CC5 JUMPI PUSH2 0x1CC4 PUSH2 0x1A9A JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1CD5 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1C47 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1CF5 JUMPI PUSH2 0x1CF4 PUSH2 0x1A90 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D13 JUMPI PUSH2 0x1D12 PUSH2 0x1A95 JUMP JUMPDEST JUMPDEST PUSH2 0x1D1F DUP6 DUP3 DUP7 ADD PUSH2 0x1BB2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D40 JUMPI PUSH2 0x1D3F PUSH2 0x1A95 JUMP JUMPDEST JUMPDEST PUSH2 0x1D4C DUP6 DUP3 DUP7 ADD PUSH2 0x1CB0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D6B DUP2 PUSH2 0x1D56 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D86 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D62 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO BASEFEE 0xCA 0xE5 CALLER CALLDATALOAD 0xB2 0xE2 NOT 0xE7 0xAE 0xCF PUSH20 0x6766FC3C26B6FAE1AD2206B3DEF7FC663A56D064 PUSH20 0x6F6C634300081800330000000000000000000000 ","sourceMap":"832:23904:7:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@verifyProof_1043":{"entryPoint":96,"id":1043,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":7239,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":7024,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":7344,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":7090,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":7218,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptrt_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":7390,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":7522,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":7537,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":6933,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":6790,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":7136,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":6960,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":7510,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":7185,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":7009,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":6884,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":6837,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":6810,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":7180,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":6815,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":6805,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":6800,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":6820,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_uint256":{"entryPoint":7195,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5761:9","nodeType":"YulBlock","src":"0:5761:9","statements":[{"body":{"nativeSrc":"47:35:9","nodeType":"YulBlock","src":"47:35:9","statements":[{"nativeSrc":"57:19:9","nodeType":"YulAssignment","src":"57:19:9","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:9","nodeType":"YulLiteral","src":"73:2:9","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:9","nodeType":"YulIdentifier","src":"67:5:9"},"nativeSrc":"67:9:9","nodeType":"YulFunctionCall","src":"67:9:9"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:9","nodeType":"YulIdentifier","src":"57:6:9"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:9","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:9","nodeType":"YulTypedName","src":"40:6:9","type":""}],"src":"7:75:9"},{"body":{"nativeSrc":"177:28:9","nodeType":"YulBlock","src":"177:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:9","nodeType":"YulLiteral","src":"194:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:9","nodeType":"YulLiteral","src":"197:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:9","nodeType":"YulIdentifier","src":"187:6:9"},"nativeSrc":"187:12:9","nodeType":"YulFunctionCall","src":"187:12:9"},"nativeSrc":"187:12:9","nodeType":"YulExpressionStatement","src":"187:12:9"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:9","nodeType":"YulFunctionDefinition","src":"88:117:9"},{"body":{"nativeSrc":"300:28:9","nodeType":"YulBlock","src":"300:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:9","nodeType":"YulLiteral","src":"317:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:9","nodeType":"YulLiteral","src":"320:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:9","nodeType":"YulIdentifier","src":"310:6:9"},"nativeSrc":"310:12:9","nodeType":"YulFunctionCall","src":"310:12:9"},"nativeSrc":"310:12:9","nodeType":"YulExpressionStatement","src":"310:12:9"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:9","nodeType":"YulFunctionDefinition","src":"211:117:9"},{"body":{"nativeSrc":"423:28:9","nodeType":"YulBlock","src":"423:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:9","nodeType":"YulLiteral","src":"440:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:9","nodeType":"YulLiteral","src":"443:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:9","nodeType":"YulIdentifier","src":"433:6:9"},"nativeSrc":"433:12:9","nodeType":"YulFunctionCall","src":"433:12:9"},"nativeSrc":"433:12:9","nodeType":"YulExpressionStatement","src":"433:12:9"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:9","nodeType":"YulFunctionDefinition","src":"334:117:9"},{"body":{"nativeSrc":"546:28:9","nodeType":"YulBlock","src":"546:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:9","nodeType":"YulLiteral","src":"563:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:9","nodeType":"YulLiteral","src":"566:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:9","nodeType":"YulIdentifier","src":"556:6:9"},"nativeSrc":"556:12:9","nodeType":"YulFunctionCall","src":"556:12:9"},"nativeSrc":"556:12:9","nodeType":"YulExpressionStatement","src":"556:12:9"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"457:117:9","nodeType":"YulFunctionDefinition","src":"457:117:9"},{"body":{"nativeSrc":"628:54:9","nodeType":"YulBlock","src":"628:54:9","statements":[{"nativeSrc":"638:38:9","nodeType":"YulAssignment","src":"638:38:9","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:9","nodeType":"YulIdentifier","src":"656:5:9"},{"kind":"number","nativeSrc":"663:2:9","nodeType":"YulLiteral","src":"663:2:9","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"652:3:9","nodeType":"YulIdentifier","src":"652:3:9"},"nativeSrc":"652:14:9","nodeType":"YulFunctionCall","src":"652:14:9"},{"arguments":[{"kind":"number","nativeSrc":"672:2:9","nodeType":"YulLiteral","src":"672:2:9","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"668:3:9","nodeType":"YulIdentifier","src":"668:3:9"},"nativeSrc":"668:7:9","nodeType":"YulFunctionCall","src":"668:7:9"}],"functionName":{"name":"and","nativeSrc":"648:3:9","nodeType":"YulIdentifier","src":"648:3:9"},"nativeSrc":"648:28:9","nodeType":"YulFunctionCall","src":"648:28:9"},"variableNames":[{"name":"result","nativeSrc":"638:6:9","nodeType":"YulIdentifier","src":"638:6:9"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"580:102:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"611:5:9","nodeType":"YulTypedName","src":"611:5:9","type":""}],"returnVariables":[{"name":"result","nativeSrc":"621:6:9","nodeType":"YulTypedName","src":"621:6:9","type":""}],"src":"580:102:9"},{"body":{"nativeSrc":"716:152:9","nodeType":"YulBlock","src":"716:152:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"733:1:9","nodeType":"YulLiteral","src":"733:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"736:77:9","nodeType":"YulLiteral","src":"736:77:9","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"726:6:9","nodeType":"YulIdentifier","src":"726:6:9"},"nativeSrc":"726:88:9","nodeType":"YulFunctionCall","src":"726:88:9"},"nativeSrc":"726:88:9","nodeType":"YulExpressionStatement","src":"726:88:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"830:1:9","nodeType":"YulLiteral","src":"830:1:9","type":"","value":"4"},{"kind":"number","nativeSrc":"833:4:9","nodeType":"YulLiteral","src":"833:4:9","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"823:6:9","nodeType":"YulIdentifier","src":"823:6:9"},"nativeSrc":"823:15:9","nodeType":"YulFunctionCall","src":"823:15:9"},"nativeSrc":"823:15:9","nodeType":"YulExpressionStatement","src":"823:15:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"854:1:9","nodeType":"YulLiteral","src":"854:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"857:4:9","nodeType":"YulLiteral","src":"857:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"847:6:9","nodeType":"YulIdentifier","src":"847:6:9"},"nativeSrc":"847:15:9","nodeType":"YulFunctionCall","src":"847:15:9"},"nativeSrc":"847:15:9","nodeType":"YulExpressionStatement","src":"847:15:9"}]},"name":"panic_error_0x41","nativeSrc":"688:180:9","nodeType":"YulFunctionDefinition","src":"688:180:9"},{"body":{"nativeSrc":"917:238:9","nodeType":"YulBlock","src":"917:238:9","statements":[{"nativeSrc":"927:58:9","nodeType":"YulVariableDeclaration","src":"927:58:9","value":{"arguments":[{"name":"memPtr","nativeSrc":"949:6:9","nodeType":"YulIdentifier","src":"949:6:9"},{"arguments":[{"name":"size","nativeSrc":"979:4:9","nodeType":"YulIdentifier","src":"979:4:9"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"957:21:9","nodeType":"YulIdentifier","src":"957:21:9"},"nativeSrc":"957:27:9","nodeType":"YulFunctionCall","src":"957:27:9"}],"functionName":{"name":"add","nativeSrc":"945:3:9","nodeType":"YulIdentifier","src":"945:3:9"},"nativeSrc":"945:40:9","nodeType":"YulFunctionCall","src":"945:40:9"},"variables":[{"name":"newFreePtr","nativeSrc":"931:10:9","nodeType":"YulTypedName","src":"931:10:9","type":""}]},{"body":{"nativeSrc":"1096:22:9","nodeType":"YulBlock","src":"1096:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1098:16:9","nodeType":"YulIdentifier","src":"1098:16:9"},"nativeSrc":"1098:18:9","nodeType":"YulFunctionCall","src":"1098:18:9"},"nativeSrc":"1098:18:9","nodeType":"YulExpressionStatement","src":"1098:18:9"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1039:10:9","nodeType":"YulIdentifier","src":"1039:10:9"},{"kind":"number","nativeSrc":"1051:18:9","nodeType":"YulLiteral","src":"1051:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1036:2:9","nodeType":"YulIdentifier","src":"1036:2:9"},"nativeSrc":"1036:34:9","nodeType":"YulFunctionCall","src":"1036:34:9"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1075:10:9","nodeType":"YulIdentifier","src":"1075:10:9"},{"name":"memPtr","nativeSrc":"1087:6:9","nodeType":"YulIdentifier","src":"1087:6:9"}],"functionName":{"name":"lt","nativeSrc":"1072:2:9","nodeType":"YulIdentifier","src":"1072:2:9"},"nativeSrc":"1072:22:9","nodeType":"YulFunctionCall","src":"1072:22:9"}],"functionName":{"name":"or","nativeSrc":"1033:2:9","nodeType":"YulIdentifier","src":"1033:2:9"},"nativeSrc":"1033:62:9","nodeType":"YulFunctionCall","src":"1033:62:9"},"nativeSrc":"1030:88:9","nodeType":"YulIf","src":"1030:88:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1134:2:9","nodeType":"YulLiteral","src":"1134:2:9","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1138:10:9","nodeType":"YulIdentifier","src":"1138:10:9"}],"functionName":{"name":"mstore","nativeSrc":"1127:6:9","nodeType":"YulIdentifier","src":"1127:6:9"},"nativeSrc":"1127:22:9","nodeType":"YulFunctionCall","src":"1127:22:9"},"nativeSrc":"1127:22:9","nodeType":"YulExpressionStatement","src":"1127:22:9"}]},"name":"finalize_allocation","nativeSrc":"874:281:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"903:6:9","nodeType":"YulTypedName","src":"903:6:9","type":""},{"name":"size","nativeSrc":"911:4:9","nodeType":"YulTypedName","src":"911:4:9","type":""}],"src":"874:281:9"},{"body":{"nativeSrc":"1202:88:9","nodeType":"YulBlock","src":"1202:88:9","statements":[{"nativeSrc":"1212:30:9","nodeType":"YulAssignment","src":"1212:30:9","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1222:18:9","nodeType":"YulIdentifier","src":"1222:18:9"},"nativeSrc":"1222:20:9","nodeType":"YulFunctionCall","src":"1222:20:9"},"variableNames":[{"name":"memPtr","nativeSrc":"1212:6:9","nodeType":"YulIdentifier","src":"1212:6:9"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1271:6:9","nodeType":"YulIdentifier","src":"1271:6:9"},{"name":"size","nativeSrc":"1279:4:9","nodeType":"YulIdentifier","src":"1279:4:9"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1251:19:9","nodeType":"YulIdentifier","src":"1251:19:9"},"nativeSrc":"1251:33:9","nodeType":"YulFunctionCall","src":"1251:33:9"},"nativeSrc":"1251:33:9","nodeType":"YulExpressionStatement","src":"1251:33:9"}]},"name":"allocate_memory","nativeSrc":"1161:129:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1186:4:9","nodeType":"YulTypedName","src":"1186:4:9","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1195:6:9","nodeType":"YulTypedName","src":"1195:6:9","type":""}],"src":"1161:129:9"},{"body":{"nativeSrc":"1362:241:9","nodeType":"YulBlock","src":"1362:241:9","statements":[{"body":{"nativeSrc":"1467:22:9","nodeType":"YulBlock","src":"1467:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1469:16:9","nodeType":"YulIdentifier","src":"1469:16:9"},"nativeSrc":"1469:18:9","nodeType":"YulFunctionCall","src":"1469:18:9"},"nativeSrc":"1469:18:9","nodeType":"YulExpressionStatement","src":"1469:18:9"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1439:6:9","nodeType":"YulIdentifier","src":"1439:6:9"},{"kind":"number","nativeSrc":"1447:18:9","nodeType":"YulLiteral","src":"1447:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1436:2:9","nodeType":"YulIdentifier","src":"1436:2:9"},"nativeSrc":"1436:30:9","nodeType":"YulFunctionCall","src":"1436:30:9"},"nativeSrc":"1433:56:9","nodeType":"YulIf","src":"1433:56:9"},{"nativeSrc":"1499:37:9","nodeType":"YulAssignment","src":"1499:37:9","value":{"arguments":[{"name":"length","nativeSrc":"1529:6:9","nodeType":"YulIdentifier","src":"1529:6:9"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1507:21:9","nodeType":"YulIdentifier","src":"1507:21:9"},"nativeSrc":"1507:29:9","nodeType":"YulFunctionCall","src":"1507:29:9"},"variableNames":[{"name":"size","nativeSrc":"1499:4:9","nodeType":"YulIdentifier","src":"1499:4:9"}]},{"nativeSrc":"1573:23:9","nodeType":"YulAssignment","src":"1573:23:9","value":{"arguments":[{"name":"size","nativeSrc":"1585:4:9","nodeType":"YulIdentifier","src":"1585:4:9"},{"kind":"number","nativeSrc":"1591:4:9","nodeType":"YulLiteral","src":"1591:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1581:3:9","nodeType":"YulIdentifier","src":"1581:3:9"},"nativeSrc":"1581:15:9","nodeType":"YulFunctionCall","src":"1581:15:9"},"variableNames":[{"name":"size","nativeSrc":"1573:4:9","nodeType":"YulIdentifier","src":"1573:4:9"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1296:307:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1346:6:9","nodeType":"YulTypedName","src":"1346:6:9","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1357:4:9","nodeType":"YulTypedName","src":"1357:4:9","type":""}],"src":"1296:307:9"},{"body":{"nativeSrc":"1673:82:9","nodeType":"YulBlock","src":"1673:82:9","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1696:3:9","nodeType":"YulIdentifier","src":"1696:3:9"},{"name":"src","nativeSrc":"1701:3:9","nodeType":"YulIdentifier","src":"1701:3:9"},{"name":"length","nativeSrc":"1706:6:9","nodeType":"YulIdentifier","src":"1706:6:9"}],"functionName":{"name":"calldatacopy","nativeSrc":"1683:12:9","nodeType":"YulIdentifier","src":"1683:12:9"},"nativeSrc":"1683:30:9","nodeType":"YulFunctionCall","src":"1683:30:9"},"nativeSrc":"1683:30:9","nodeType":"YulExpressionStatement","src":"1683:30:9"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1733:3:9","nodeType":"YulIdentifier","src":"1733:3:9"},{"name":"length","nativeSrc":"1738:6:9","nodeType":"YulIdentifier","src":"1738:6:9"}],"functionName":{"name":"add","nativeSrc":"1729:3:9","nodeType":"YulIdentifier","src":"1729:3:9"},"nativeSrc":"1729:16:9","nodeType":"YulFunctionCall","src":"1729:16:9"},{"kind":"number","nativeSrc":"1747:1:9","nodeType":"YulLiteral","src":"1747:1:9","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1722:6:9","nodeType":"YulIdentifier","src":"1722:6:9"},"nativeSrc":"1722:27:9","nodeType":"YulFunctionCall","src":"1722:27:9"},"nativeSrc":"1722:27:9","nodeType":"YulExpressionStatement","src":"1722:27:9"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"1609:146:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1655:3:9","nodeType":"YulTypedName","src":"1655:3:9","type":""},{"name":"dst","nativeSrc":"1660:3:9","nodeType":"YulTypedName","src":"1660:3:9","type":""},{"name":"length","nativeSrc":"1665:6:9","nodeType":"YulTypedName","src":"1665:6:9","type":""}],"src":"1609:146:9"},{"body":{"nativeSrc":"1844:340:9","nodeType":"YulBlock","src":"1844:340:9","statements":[{"nativeSrc":"1854:74:9","nodeType":"YulAssignment","src":"1854:74:9","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1920:6:9","nodeType":"YulIdentifier","src":"1920:6:9"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1879:40:9","nodeType":"YulIdentifier","src":"1879:40:9"},"nativeSrc":"1879:48:9","nodeType":"YulFunctionCall","src":"1879:48:9"}],"functionName":{"name":"allocate_memory","nativeSrc":"1863:15:9","nodeType":"YulIdentifier","src":"1863:15:9"},"nativeSrc":"1863:65:9","nodeType":"YulFunctionCall","src":"1863:65:9"},"variableNames":[{"name":"array","nativeSrc":"1854:5:9","nodeType":"YulIdentifier","src":"1854:5:9"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"1944:5:9","nodeType":"YulIdentifier","src":"1944:5:9"},{"name":"length","nativeSrc":"1951:6:9","nodeType":"YulIdentifier","src":"1951:6:9"}],"functionName":{"name":"mstore","nativeSrc":"1937:6:9","nodeType":"YulIdentifier","src":"1937:6:9"},"nativeSrc":"1937:21:9","nodeType":"YulFunctionCall","src":"1937:21:9"},"nativeSrc":"1937:21:9","nodeType":"YulExpressionStatement","src":"1937:21:9"},{"nativeSrc":"1967:27:9","nodeType":"YulVariableDeclaration","src":"1967:27:9","value":{"arguments":[{"name":"array","nativeSrc":"1982:5:9","nodeType":"YulIdentifier","src":"1982:5:9"},{"kind":"number","nativeSrc":"1989:4:9","nodeType":"YulLiteral","src":"1989:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1978:3:9","nodeType":"YulIdentifier","src":"1978:3:9"},"nativeSrc":"1978:16:9","nodeType":"YulFunctionCall","src":"1978:16:9"},"variables":[{"name":"dst","nativeSrc":"1971:3:9","nodeType":"YulTypedName","src":"1971:3:9","type":""}]},{"body":{"nativeSrc":"2032:83:9","nodeType":"YulBlock","src":"2032:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2034:77:9","nodeType":"YulIdentifier","src":"2034:77:9"},"nativeSrc":"2034:79:9","nodeType":"YulFunctionCall","src":"2034:79:9"},"nativeSrc":"2034:79:9","nodeType":"YulExpressionStatement","src":"2034:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2013:3:9","nodeType":"YulIdentifier","src":"2013:3:9"},{"name":"length","nativeSrc":"2018:6:9","nodeType":"YulIdentifier","src":"2018:6:9"}],"functionName":{"name":"add","nativeSrc":"2009:3:9","nodeType":"YulIdentifier","src":"2009:3:9"},"nativeSrc":"2009:16:9","nodeType":"YulFunctionCall","src":"2009:16:9"},{"name":"end","nativeSrc":"2027:3:9","nodeType":"YulIdentifier","src":"2027:3:9"}],"functionName":{"name":"gt","nativeSrc":"2006:2:9","nodeType":"YulIdentifier","src":"2006:2:9"},"nativeSrc":"2006:25:9","nodeType":"YulFunctionCall","src":"2006:25:9"},"nativeSrc":"2003:112:9","nodeType":"YulIf","src":"2003:112:9"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2161:3:9","nodeType":"YulIdentifier","src":"2161:3:9"},{"name":"dst","nativeSrc":"2166:3:9","nodeType":"YulIdentifier","src":"2166:3:9"},{"name":"length","nativeSrc":"2171:6:9","nodeType":"YulIdentifier","src":"2171:6:9"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"2124:36:9","nodeType":"YulIdentifier","src":"2124:36:9"},"nativeSrc":"2124:54:9","nodeType":"YulFunctionCall","src":"2124:54:9"},"nativeSrc":"2124:54:9","nodeType":"YulExpressionStatement","src":"2124:54:9"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"1761:423:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1817:3:9","nodeType":"YulTypedName","src":"1817:3:9","type":""},{"name":"length","nativeSrc":"1822:6:9","nodeType":"YulTypedName","src":"1822:6:9","type":""},{"name":"end","nativeSrc":"1830:3:9","nodeType":"YulTypedName","src":"1830:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1838:5:9","nodeType":"YulTypedName","src":"1838:5:9","type":""}],"src":"1761:423:9"},{"body":{"nativeSrc":"2264:277:9","nodeType":"YulBlock","src":"2264:277:9","statements":[{"body":{"nativeSrc":"2313:83:9","nodeType":"YulBlock","src":"2313:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2315:77:9","nodeType":"YulIdentifier","src":"2315:77:9"},"nativeSrc":"2315:79:9","nodeType":"YulFunctionCall","src":"2315:79:9"},"nativeSrc":"2315:79:9","nodeType":"YulExpressionStatement","src":"2315:79:9"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2292:6:9","nodeType":"YulIdentifier","src":"2292:6:9"},{"kind":"number","nativeSrc":"2300:4:9","nodeType":"YulLiteral","src":"2300:4:9","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2288:3:9","nodeType":"YulIdentifier","src":"2288:3:9"},"nativeSrc":"2288:17:9","nodeType":"YulFunctionCall","src":"2288:17:9"},{"name":"end","nativeSrc":"2307:3:9","nodeType":"YulIdentifier","src":"2307:3:9"}],"functionName":{"name":"slt","nativeSrc":"2284:3:9","nodeType":"YulIdentifier","src":"2284:3:9"},"nativeSrc":"2284:27:9","nodeType":"YulFunctionCall","src":"2284:27:9"}],"functionName":{"name":"iszero","nativeSrc":"2277:6:9","nodeType":"YulIdentifier","src":"2277:6:9"},"nativeSrc":"2277:35:9","nodeType":"YulFunctionCall","src":"2277:35:9"},"nativeSrc":"2274:122:9","nodeType":"YulIf","src":"2274:122:9"},{"nativeSrc":"2405:34:9","nodeType":"YulVariableDeclaration","src":"2405:34:9","value":{"arguments":[{"name":"offset","nativeSrc":"2432:6:9","nodeType":"YulIdentifier","src":"2432:6:9"}],"functionName":{"name":"calldataload","nativeSrc":"2419:12:9","nodeType":"YulIdentifier","src":"2419:12:9"},"nativeSrc":"2419:20:9","nodeType":"YulFunctionCall","src":"2419:20:9"},"variables":[{"name":"length","nativeSrc":"2409:6:9","nodeType":"YulTypedName","src":"2409:6:9","type":""}]},{"nativeSrc":"2448:87:9","nodeType":"YulAssignment","src":"2448:87:9","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2508:6:9","nodeType":"YulIdentifier","src":"2508:6:9"},{"kind":"number","nativeSrc":"2516:4:9","nodeType":"YulLiteral","src":"2516:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2504:3:9","nodeType":"YulIdentifier","src":"2504:3:9"},"nativeSrc":"2504:17:9","nodeType":"YulFunctionCall","src":"2504:17:9"},{"name":"length","nativeSrc":"2523:6:9","nodeType":"YulIdentifier","src":"2523:6:9"},{"name":"end","nativeSrc":"2531:3:9","nodeType":"YulIdentifier","src":"2531:3:9"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"2457:46:9","nodeType":"YulIdentifier","src":"2457:46:9"},"nativeSrc":"2457:78:9","nodeType":"YulFunctionCall","src":"2457:78:9"},"variableNames":[{"name":"array","nativeSrc":"2448:5:9","nodeType":"YulIdentifier","src":"2448:5:9"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"2203:338:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2242:6:9","nodeType":"YulTypedName","src":"2242:6:9","type":""},{"name":"end","nativeSrc":"2250:3:9","nodeType":"YulTypedName","src":"2250:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2258:5:9","nodeType":"YulTypedName","src":"2258:5:9","type":""}],"src":"2203:338:9"},{"body":{"nativeSrc":"2629:229:9","nodeType":"YulBlock","src":"2629:229:9","statements":[{"body":{"nativeSrc":"2734:22:9","nodeType":"YulBlock","src":"2734:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2736:16:9","nodeType":"YulIdentifier","src":"2736:16:9"},"nativeSrc":"2736:18:9","nodeType":"YulFunctionCall","src":"2736:18:9"},"nativeSrc":"2736:18:9","nodeType":"YulExpressionStatement","src":"2736:18:9"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2706:6:9","nodeType":"YulIdentifier","src":"2706:6:9"},{"kind":"number","nativeSrc":"2714:18:9","nodeType":"YulLiteral","src":"2714:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2703:2:9","nodeType":"YulIdentifier","src":"2703:2:9"},"nativeSrc":"2703:30:9","nodeType":"YulFunctionCall","src":"2703:30:9"},"nativeSrc":"2700:56:9","nodeType":"YulIf","src":"2700:56:9"},{"nativeSrc":"2766:25:9","nodeType":"YulAssignment","src":"2766:25:9","value":{"arguments":[{"name":"length","nativeSrc":"2778:6:9","nodeType":"YulIdentifier","src":"2778:6:9"},{"kind":"number","nativeSrc":"2786:4:9","nodeType":"YulLiteral","src":"2786:4:9","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"2774:3:9","nodeType":"YulIdentifier","src":"2774:3:9"},"nativeSrc":"2774:17:9","nodeType":"YulFunctionCall","src":"2774:17:9"},"variableNames":[{"name":"size","nativeSrc":"2766:4:9","nodeType":"YulIdentifier","src":"2766:4:9"}]},{"nativeSrc":"2828:23:9","nodeType":"YulAssignment","src":"2828:23:9","value":{"arguments":[{"name":"size","nativeSrc":"2840:4:9","nodeType":"YulIdentifier","src":"2840:4:9"},{"kind":"number","nativeSrc":"2846:4:9","nodeType":"YulLiteral","src":"2846:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2836:3:9","nodeType":"YulIdentifier","src":"2836:3:9"},"nativeSrc":"2836:15:9","nodeType":"YulFunctionCall","src":"2836:15:9"},"variableNames":[{"name":"size","nativeSrc":"2828:4:9","nodeType":"YulIdentifier","src":"2828:4:9"}]}]},"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"2547:311:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"2613:6:9","nodeType":"YulTypedName","src":"2613:6:9","type":""}],"returnVariables":[{"name":"size","nativeSrc":"2624:4:9","nodeType":"YulTypedName","src":"2624:4:9","type":""}],"src":"2547:311:9"},{"body":{"nativeSrc":"2953:28:9","nodeType":"YulBlock","src":"2953:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2970:1:9","nodeType":"YulLiteral","src":"2970:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"2973:1:9","nodeType":"YulLiteral","src":"2973:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2963:6:9","nodeType":"YulIdentifier","src":"2963:6:9"},"nativeSrc":"2963:12:9","nodeType":"YulFunctionCall","src":"2963:12:9"},"nativeSrc":"2963:12:9","nodeType":"YulExpressionStatement","src":"2963:12:9"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2864:117:9","nodeType":"YulFunctionDefinition","src":"2864:117:9"},{"body":{"nativeSrc":"3032:32:9","nodeType":"YulBlock","src":"3032:32:9","statements":[{"nativeSrc":"3042:16:9","nodeType":"YulAssignment","src":"3042:16:9","value":{"name":"value","nativeSrc":"3053:5:9","nodeType":"YulIdentifier","src":"3053:5:9"},"variableNames":[{"name":"cleaned","nativeSrc":"3042:7:9","nodeType":"YulIdentifier","src":"3042:7:9"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2987:77:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3014:5:9","nodeType":"YulTypedName","src":"3014:5:9","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3024:7:9","nodeType":"YulTypedName","src":"3024:7:9","type":""}],"src":"2987:77:9"},{"body":{"nativeSrc":"3113:79:9","nodeType":"YulBlock","src":"3113:79:9","statements":[{"body":{"nativeSrc":"3170:16:9","nodeType":"YulBlock","src":"3170:16:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3179:1:9","nodeType":"YulLiteral","src":"3179:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"3182:1:9","nodeType":"YulLiteral","src":"3182:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3172:6:9","nodeType":"YulIdentifier","src":"3172:6:9"},"nativeSrc":"3172:12:9","nodeType":"YulFunctionCall","src":"3172:12:9"},"nativeSrc":"3172:12:9","nodeType":"YulExpressionStatement","src":"3172:12:9"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3136:5:9","nodeType":"YulIdentifier","src":"3136:5:9"},{"arguments":[{"name":"value","nativeSrc":"3161:5:9","nodeType":"YulIdentifier","src":"3161:5:9"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3143:17:9","nodeType":"YulIdentifier","src":"3143:17:9"},"nativeSrc":"3143:24:9","nodeType":"YulFunctionCall","src":"3143:24:9"}],"functionName":{"name":"eq","nativeSrc":"3133:2:9","nodeType":"YulIdentifier","src":"3133:2:9"},"nativeSrc":"3133:35:9","nodeType":"YulFunctionCall","src":"3133:35:9"}],"functionName":{"name":"iszero","nativeSrc":"3126:6:9","nodeType":"YulIdentifier","src":"3126:6:9"},"nativeSrc":"3126:43:9","nodeType":"YulFunctionCall","src":"3126:43:9"},"nativeSrc":"3123:63:9","nodeType":"YulIf","src":"3123:63:9"}]},"name":"validator_revert_t_uint256","nativeSrc":"3070:122:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3106:5:9","nodeType":"YulTypedName","src":"3106:5:9","type":""}],"src":"3070:122:9"},{"body":{"nativeSrc":"3250:87:9","nodeType":"YulBlock","src":"3250:87:9","statements":[{"nativeSrc":"3260:29:9","nodeType":"YulAssignment","src":"3260:29:9","value":{"arguments":[{"name":"offset","nativeSrc":"3282:6:9","nodeType":"YulIdentifier","src":"3282:6:9"}],"functionName":{"name":"calldataload","nativeSrc":"3269:12:9","nodeType":"YulIdentifier","src":"3269:12:9"},"nativeSrc":"3269:20:9","nodeType":"YulFunctionCall","src":"3269:20:9"},"variableNames":[{"name":"value","nativeSrc":"3260:5:9","nodeType":"YulIdentifier","src":"3260:5:9"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3325:5:9","nodeType":"YulIdentifier","src":"3325:5:9"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3298:26:9","nodeType":"YulIdentifier","src":"3298:26:9"},"nativeSrc":"3298:33:9","nodeType":"YulFunctionCall","src":"3298:33:9"},"nativeSrc":"3298:33:9","nodeType":"YulExpressionStatement","src":"3298:33:9"}]},"name":"abi_decode_t_uint256","nativeSrc":"3198:139:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3228:6:9","nodeType":"YulTypedName","src":"3228:6:9","type":""},{"name":"end","nativeSrc":"3236:3:9","nodeType":"YulTypedName","src":"3236:3:9","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3244:5:9","nodeType":"YulTypedName","src":"3244:5:9","type":""}],"src":"3198:139:9"},{"body":{"nativeSrc":"3462:608:9","nodeType":"YulBlock","src":"3462:608:9","statements":[{"nativeSrc":"3472:90:9","nodeType":"YulAssignment","src":"3472:90:9","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3554:6:9","nodeType":"YulIdentifier","src":"3554:6:9"}],"functionName":{"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"3497:56:9","nodeType":"YulIdentifier","src":"3497:56:9"},"nativeSrc":"3497:64:9","nodeType":"YulFunctionCall","src":"3497:64:9"}],"functionName":{"name":"allocate_memory","nativeSrc":"3481:15:9","nodeType":"YulIdentifier","src":"3481:15:9"},"nativeSrc":"3481:81:9","nodeType":"YulFunctionCall","src":"3481:81:9"},"variableNames":[{"name":"array","nativeSrc":"3472:5:9","nodeType":"YulIdentifier","src":"3472:5:9"}]},{"nativeSrc":"3571:16:9","nodeType":"YulVariableDeclaration","src":"3571:16:9","value":{"name":"array","nativeSrc":"3582:5:9","nodeType":"YulIdentifier","src":"3582:5:9"},"variables":[{"name":"dst","nativeSrc":"3575:3:9","nodeType":"YulTypedName","src":"3575:3:9","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"3604:5:9","nodeType":"YulIdentifier","src":"3604:5:9"},{"name":"length","nativeSrc":"3611:6:9","nodeType":"YulIdentifier","src":"3611:6:9"}],"functionName":{"name":"mstore","nativeSrc":"3597:6:9","nodeType":"YulIdentifier","src":"3597:6:9"},"nativeSrc":"3597:21:9","nodeType":"YulFunctionCall","src":"3597:21:9"},"nativeSrc":"3597:21:9","nodeType":"YulExpressionStatement","src":"3597:21:9"},{"nativeSrc":"3627:23:9","nodeType":"YulAssignment","src":"3627:23:9","value":{"arguments":[{"name":"array","nativeSrc":"3638:5:9","nodeType":"YulIdentifier","src":"3638:5:9"},{"kind":"number","nativeSrc":"3645:4:9","nodeType":"YulLiteral","src":"3645:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3634:3:9","nodeType":"YulIdentifier","src":"3634:3:9"},"nativeSrc":"3634:16:9","nodeType":"YulFunctionCall","src":"3634:16:9"},"variableNames":[{"name":"dst","nativeSrc":"3627:3:9","nodeType":"YulIdentifier","src":"3627:3:9"}]},{"nativeSrc":"3660:44:9","nodeType":"YulVariableDeclaration","src":"3660:44:9","value":{"arguments":[{"name":"offset","nativeSrc":"3678:6:9","nodeType":"YulIdentifier","src":"3678:6:9"},{"arguments":[{"name":"length","nativeSrc":"3690:6:9","nodeType":"YulIdentifier","src":"3690:6:9"},{"kind":"number","nativeSrc":"3698:4:9","nodeType":"YulLiteral","src":"3698:4:9","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"3686:3:9","nodeType":"YulIdentifier","src":"3686:3:9"},"nativeSrc":"3686:17:9","nodeType":"YulFunctionCall","src":"3686:17:9"}],"functionName":{"name":"add","nativeSrc":"3674:3:9","nodeType":"YulIdentifier","src":"3674:3:9"},"nativeSrc":"3674:30:9","nodeType":"YulFunctionCall","src":"3674:30:9"},"variables":[{"name":"srcEnd","nativeSrc":"3664:6:9","nodeType":"YulTypedName","src":"3664:6:9","type":""}]},{"body":{"nativeSrc":"3732:103:9","nodeType":"YulBlock","src":"3732:103:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3746:77:9","nodeType":"YulIdentifier","src":"3746:77:9"},"nativeSrc":"3746:79:9","nodeType":"YulFunctionCall","src":"3746:79:9"},"nativeSrc":"3746:79:9","nodeType":"YulExpressionStatement","src":"3746:79:9"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"3719:6:9","nodeType":"YulIdentifier","src":"3719:6:9"},{"name":"end","nativeSrc":"3727:3:9","nodeType":"YulIdentifier","src":"3727:3:9"}],"functionName":{"name":"gt","nativeSrc":"3716:2:9","nodeType":"YulIdentifier","src":"3716:2:9"},"nativeSrc":"3716:15:9","nodeType":"YulFunctionCall","src":"3716:15:9"},"nativeSrc":"3713:122:9","nodeType":"YulIf","src":"3713:122:9"},{"body":{"nativeSrc":"3920:144:9","nodeType":"YulBlock","src":"3920:144:9","statements":[{"nativeSrc":"3935:21:9","nodeType":"YulVariableDeclaration","src":"3935:21:9","value":{"name":"src","nativeSrc":"3953:3:9","nodeType":"YulIdentifier","src":"3953:3:9"},"variables":[{"name":"elementPos","nativeSrc":"3939:10:9","nodeType":"YulTypedName","src":"3939:10:9","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"3977:3:9","nodeType":"YulIdentifier","src":"3977:3:9"},{"arguments":[{"name":"elementPos","nativeSrc":"4003:10:9","nodeType":"YulIdentifier","src":"4003:10:9"},{"name":"end","nativeSrc":"4015:3:9","nodeType":"YulIdentifier","src":"4015:3:9"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3982:20:9","nodeType":"YulIdentifier","src":"3982:20:9"},"nativeSrc":"3982:37:9","nodeType":"YulFunctionCall","src":"3982:37:9"}],"functionName":{"name":"mstore","nativeSrc":"3970:6:9","nodeType":"YulIdentifier","src":"3970:6:9"},"nativeSrc":"3970:50:9","nodeType":"YulFunctionCall","src":"3970:50:9"},"nativeSrc":"3970:50:9","nodeType":"YulExpressionStatement","src":"3970:50:9"},{"nativeSrc":"4033:21:9","nodeType":"YulAssignment","src":"4033:21:9","value":{"arguments":[{"name":"dst","nativeSrc":"4044:3:9","nodeType":"YulIdentifier","src":"4044:3:9"},{"kind":"number","nativeSrc":"4049:4:9","nodeType":"YulLiteral","src":"4049:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4040:3:9","nodeType":"YulIdentifier","src":"4040:3:9"},"nativeSrc":"4040:14:9","nodeType":"YulFunctionCall","src":"4040:14:9"},"variableNames":[{"name":"dst","nativeSrc":"4033:3:9","nodeType":"YulIdentifier","src":"4033:3:9"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"3873:3:9","nodeType":"YulIdentifier","src":"3873:3:9"},{"name":"srcEnd","nativeSrc":"3878:6:9","nodeType":"YulIdentifier","src":"3878:6:9"}],"functionName":{"name":"lt","nativeSrc":"3870:2:9","nodeType":"YulIdentifier","src":"3870:2:9"},"nativeSrc":"3870:15:9","nodeType":"YulFunctionCall","src":"3870:15:9"},"nativeSrc":"3844:220:9","nodeType":"YulForLoop","post":{"nativeSrc":"3886:25:9","nodeType":"YulBlock","src":"3886:25:9","statements":[{"nativeSrc":"3888:21:9","nodeType":"YulAssignment","src":"3888:21:9","value":{"arguments":[{"name":"src","nativeSrc":"3899:3:9","nodeType":"YulIdentifier","src":"3899:3:9"},{"kind":"number","nativeSrc":"3904:4:9","nodeType":"YulLiteral","src":"3904:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3895:3:9","nodeType":"YulIdentifier","src":"3895:3:9"},"nativeSrc":"3895:14:9","nodeType":"YulFunctionCall","src":"3895:14:9"},"variableNames":[{"name":"src","nativeSrc":"3888:3:9","nodeType":"YulIdentifier","src":"3888:3:9"}]}]},"pre":{"nativeSrc":"3848:21:9","nodeType":"YulBlock","src":"3848:21:9","statements":[{"nativeSrc":"3850:17:9","nodeType":"YulVariableDeclaration","src":"3850:17:9","value":{"name":"offset","nativeSrc":"3861:6:9","nodeType":"YulIdentifier","src":"3861:6:9"},"variables":[{"name":"src","nativeSrc":"3854:3:9","nodeType":"YulTypedName","src":"3854:3:9","type":""}]}]},"src":"3844:220:9"}]},"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"3360:710:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3432:6:9","nodeType":"YulTypedName","src":"3432:6:9","type":""},{"name":"length","nativeSrc":"3440:6:9","nodeType":"YulTypedName","src":"3440:6:9","type":""},{"name":"end","nativeSrc":"3448:3:9","nodeType":"YulTypedName","src":"3448:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3456:5:9","nodeType":"YulTypedName","src":"3456:5:9","type":""}],"src":"3360:710:9"},{"body":{"nativeSrc":"4170:293:9","nodeType":"YulBlock","src":"4170:293:9","statements":[{"body":{"nativeSrc":"4219:83:9","nodeType":"YulBlock","src":"4219:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4221:77:9","nodeType":"YulIdentifier","src":"4221:77:9"},"nativeSrc":"4221:79:9","nodeType":"YulFunctionCall","src":"4221:79:9"},"nativeSrc":"4221:79:9","nodeType":"YulExpressionStatement","src":"4221:79:9"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4198:6:9","nodeType":"YulIdentifier","src":"4198:6:9"},{"kind":"number","nativeSrc":"4206:4:9","nodeType":"YulLiteral","src":"4206:4:9","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4194:3:9","nodeType":"YulIdentifier","src":"4194:3:9"},"nativeSrc":"4194:17:9","nodeType":"YulFunctionCall","src":"4194:17:9"},{"name":"end","nativeSrc":"4213:3:9","nodeType":"YulIdentifier","src":"4213:3:9"}],"functionName":{"name":"slt","nativeSrc":"4190:3:9","nodeType":"YulIdentifier","src":"4190:3:9"},"nativeSrc":"4190:27:9","nodeType":"YulFunctionCall","src":"4190:27:9"}],"functionName":{"name":"iszero","nativeSrc":"4183:6:9","nodeType":"YulIdentifier","src":"4183:6:9"},"nativeSrc":"4183:35:9","nodeType":"YulFunctionCall","src":"4183:35:9"},"nativeSrc":"4180:122:9","nodeType":"YulIf","src":"4180:122:9"},{"nativeSrc":"4311:34:9","nodeType":"YulVariableDeclaration","src":"4311:34:9","value":{"arguments":[{"name":"offset","nativeSrc":"4338:6:9","nodeType":"YulIdentifier","src":"4338:6:9"}],"functionName":{"name":"calldataload","nativeSrc":"4325:12:9","nodeType":"YulIdentifier","src":"4325:12:9"},"nativeSrc":"4325:20:9","nodeType":"YulFunctionCall","src":"4325:20:9"},"variables":[{"name":"length","nativeSrc":"4315:6:9","nodeType":"YulTypedName","src":"4315:6:9","type":""}]},{"nativeSrc":"4354:103:9","nodeType":"YulAssignment","src":"4354:103:9","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4430:6:9","nodeType":"YulIdentifier","src":"4430:6:9"},{"kind":"number","nativeSrc":"4438:4:9","nodeType":"YulLiteral","src":"4438:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4426:3:9","nodeType":"YulIdentifier","src":"4426:3:9"},"nativeSrc":"4426:17:9","nodeType":"YulFunctionCall","src":"4426:17:9"},{"name":"length","nativeSrc":"4445:6:9","nodeType":"YulIdentifier","src":"4445:6:9"},{"name":"end","nativeSrc":"4453:3:9","nodeType":"YulIdentifier","src":"4453:3:9"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"4363:62:9","nodeType":"YulIdentifier","src":"4363:62:9"},"nativeSrc":"4363:94:9","nodeType":"YulFunctionCall","src":"4363:94:9"},"variableNames":[{"name":"array","nativeSrc":"4354:5:9","nodeType":"YulIdentifier","src":"4354:5:9"}]}]},"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"4093:370:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4148:6:9","nodeType":"YulTypedName","src":"4148:6:9","type":""},{"name":"end","nativeSrc":"4156:3:9","nodeType":"YulTypedName","src":"4156:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"4164:5:9","nodeType":"YulTypedName","src":"4164:5:9","type":""}],"src":"4093:370:9"},{"body":{"nativeSrc":"4586:745:9","nodeType":"YulBlock","src":"4586:745:9","statements":[{"body":{"nativeSrc":"4632:83:9","nodeType":"YulBlock","src":"4632:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4634:77:9","nodeType":"YulIdentifier","src":"4634:77:9"},"nativeSrc":"4634:79:9","nodeType":"YulFunctionCall","src":"4634:79:9"},"nativeSrc":"4634:79:9","nodeType":"YulExpressionStatement","src":"4634:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4607:7:9","nodeType":"YulIdentifier","src":"4607:7:9"},{"name":"headStart","nativeSrc":"4616:9:9","nodeType":"YulIdentifier","src":"4616:9:9"}],"functionName":{"name":"sub","nativeSrc":"4603:3:9","nodeType":"YulIdentifier","src":"4603:3:9"},"nativeSrc":"4603:23:9","nodeType":"YulFunctionCall","src":"4603:23:9"},{"kind":"number","nativeSrc":"4628:2:9","nodeType":"YulLiteral","src":"4628:2:9","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4599:3:9","nodeType":"YulIdentifier","src":"4599:3:9"},"nativeSrc":"4599:32:9","nodeType":"YulFunctionCall","src":"4599:32:9"},"nativeSrc":"4596:119:9","nodeType":"YulIf","src":"4596:119:9"},{"nativeSrc":"4725:286:9","nodeType":"YulBlock","src":"4725:286:9","statements":[{"nativeSrc":"4740:45:9","nodeType":"YulVariableDeclaration","src":"4740:45:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4771:9:9","nodeType":"YulIdentifier","src":"4771:9:9"},{"kind":"number","nativeSrc":"4782:1:9","nodeType":"YulLiteral","src":"4782:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4767:3:9","nodeType":"YulIdentifier","src":"4767:3:9"},"nativeSrc":"4767:17:9","nodeType":"YulFunctionCall","src":"4767:17:9"}],"functionName":{"name":"calldataload","nativeSrc":"4754:12:9","nodeType":"YulIdentifier","src":"4754:12:9"},"nativeSrc":"4754:31:9","nodeType":"YulFunctionCall","src":"4754:31:9"},"variables":[{"name":"offset","nativeSrc":"4744:6:9","nodeType":"YulTypedName","src":"4744:6:9","type":""}]},{"body":{"nativeSrc":"4832:83:9","nodeType":"YulBlock","src":"4832:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4834:77:9","nodeType":"YulIdentifier","src":"4834:77:9"},"nativeSrc":"4834:79:9","nodeType":"YulFunctionCall","src":"4834:79:9"},"nativeSrc":"4834:79:9","nodeType":"YulExpressionStatement","src":"4834:79:9"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4804:6:9","nodeType":"YulIdentifier","src":"4804:6:9"},{"kind":"number","nativeSrc":"4812:18:9","nodeType":"YulLiteral","src":"4812:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4801:2:9","nodeType":"YulIdentifier","src":"4801:2:9"},"nativeSrc":"4801:30:9","nodeType":"YulFunctionCall","src":"4801:30:9"},"nativeSrc":"4798:117:9","nodeType":"YulIf","src":"4798:117:9"},{"nativeSrc":"4929:72:9","nodeType":"YulAssignment","src":"4929:72:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4973:9:9","nodeType":"YulIdentifier","src":"4973:9:9"},{"name":"offset","nativeSrc":"4984:6:9","nodeType":"YulIdentifier","src":"4984:6:9"}],"functionName":{"name":"add","nativeSrc":"4969:3:9","nodeType":"YulIdentifier","src":"4969:3:9"},"nativeSrc":"4969:22:9","nodeType":"YulFunctionCall","src":"4969:22:9"},{"name":"dataEnd","nativeSrc":"4993:7:9","nodeType":"YulIdentifier","src":"4993:7:9"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"4939:29:9","nodeType":"YulIdentifier","src":"4939:29:9"},"nativeSrc":"4939:62:9","nodeType":"YulFunctionCall","src":"4939:62:9"},"variableNames":[{"name":"value0","nativeSrc":"4929:6:9","nodeType":"YulIdentifier","src":"4929:6:9"}]}]},{"nativeSrc":"5021:303:9","nodeType":"YulBlock","src":"5021:303:9","statements":[{"nativeSrc":"5036:46:9","nodeType":"YulVariableDeclaration","src":"5036:46:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5067:9:9","nodeType":"YulIdentifier","src":"5067:9:9"},{"kind":"number","nativeSrc":"5078:2:9","nodeType":"YulLiteral","src":"5078:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5063:3:9","nodeType":"YulIdentifier","src":"5063:3:9"},"nativeSrc":"5063:18:9","nodeType":"YulFunctionCall","src":"5063:18:9"}],"functionName":{"name":"calldataload","nativeSrc":"5050:12:9","nodeType":"YulIdentifier","src":"5050:12:9"},"nativeSrc":"5050:32:9","nodeType":"YulFunctionCall","src":"5050:32:9"},"variables":[{"name":"offset","nativeSrc":"5040:6:9","nodeType":"YulTypedName","src":"5040:6:9","type":""}]},{"body":{"nativeSrc":"5129:83:9","nodeType":"YulBlock","src":"5129:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5131:77:9","nodeType":"YulIdentifier","src":"5131:77:9"},"nativeSrc":"5131:79:9","nodeType":"YulFunctionCall","src":"5131:79:9"},"nativeSrc":"5131:79:9","nodeType":"YulExpressionStatement","src":"5131:79:9"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5101:6:9","nodeType":"YulIdentifier","src":"5101:6:9"},{"kind":"number","nativeSrc":"5109:18:9","nodeType":"YulLiteral","src":"5109:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5098:2:9","nodeType":"YulIdentifier","src":"5098:2:9"},"nativeSrc":"5098:30:9","nodeType":"YulFunctionCall","src":"5098:30:9"},"nativeSrc":"5095:117:9","nodeType":"YulIf","src":"5095:117:9"},{"nativeSrc":"5226:88:9","nodeType":"YulAssignment","src":"5226:88:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5286:9:9","nodeType":"YulIdentifier","src":"5286:9:9"},{"name":"offset","nativeSrc":"5297:6:9","nodeType":"YulIdentifier","src":"5297:6:9"}],"functionName":{"name":"add","nativeSrc":"5282:3:9","nodeType":"YulIdentifier","src":"5282:3:9"},"nativeSrc":"5282:22:9","nodeType":"YulFunctionCall","src":"5282:22:9"},{"name":"dataEnd","nativeSrc":"5306:7:9","nodeType":"YulIdentifier","src":"5306:7:9"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"5236:45:9","nodeType":"YulIdentifier","src":"5236:45:9"},"nativeSrc":"5236:78:9","nodeType":"YulFunctionCall","src":"5236:78:9"},"variableNames":[{"name":"value1","nativeSrc":"5226:6:9","nodeType":"YulIdentifier","src":"5226:6:9"}]}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptrt_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"4469:862:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4548:9:9","nodeType":"YulTypedName","src":"4548:9:9","type":""},{"name":"dataEnd","nativeSrc":"4559:7:9","nodeType":"YulTypedName","src":"4559:7:9","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4571:6:9","nodeType":"YulTypedName","src":"4571:6:9","type":""},{"name":"value1","nativeSrc":"4579:6:9","nodeType":"YulTypedName","src":"4579:6:9","type":""}],"src":"4469:862:9"},{"body":{"nativeSrc":"5379:48:9","nodeType":"YulBlock","src":"5379:48:9","statements":[{"nativeSrc":"5389:32:9","nodeType":"YulAssignment","src":"5389:32:9","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5414:5:9","nodeType":"YulIdentifier","src":"5414:5:9"}],"functionName":{"name":"iszero","nativeSrc":"5407:6:9","nodeType":"YulIdentifier","src":"5407:6:9"},"nativeSrc":"5407:13:9","nodeType":"YulFunctionCall","src":"5407:13:9"}],"functionName":{"name":"iszero","nativeSrc":"5400:6:9","nodeType":"YulIdentifier","src":"5400:6:9"},"nativeSrc":"5400:21:9","nodeType":"YulFunctionCall","src":"5400:21:9"},"variableNames":[{"name":"cleaned","nativeSrc":"5389:7:9","nodeType":"YulIdentifier","src":"5389:7:9"}]}]},"name":"cleanup_t_bool","nativeSrc":"5337:90:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5361:5:9","nodeType":"YulTypedName","src":"5361:5:9","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5371:7:9","nodeType":"YulTypedName","src":"5371:7:9","type":""}],"src":"5337:90:9"},{"body":{"nativeSrc":"5492:50:9","nodeType":"YulBlock","src":"5492:50:9","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5509:3:9","nodeType":"YulIdentifier","src":"5509:3:9"},{"arguments":[{"name":"value","nativeSrc":"5529:5:9","nodeType":"YulIdentifier","src":"5529:5:9"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"5514:14:9","nodeType":"YulIdentifier","src":"5514:14:9"},"nativeSrc":"5514:21:9","nodeType":"YulFunctionCall","src":"5514:21:9"}],"functionName":{"name":"mstore","nativeSrc":"5502:6:9","nodeType":"YulIdentifier","src":"5502:6:9"},"nativeSrc":"5502:34:9","nodeType":"YulFunctionCall","src":"5502:34:9"},"nativeSrc":"5502:34:9","nodeType":"YulExpressionStatement","src":"5502:34:9"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"5433:109:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5480:5:9","nodeType":"YulTypedName","src":"5480:5:9","type":""},{"name":"pos","nativeSrc":"5487:3:9","nodeType":"YulTypedName","src":"5487:3:9","type":""}],"src":"5433:109:9"},{"body":{"nativeSrc":"5640:118:9","nodeType":"YulBlock","src":"5640:118:9","statements":[{"nativeSrc":"5650:26:9","nodeType":"YulAssignment","src":"5650:26:9","value":{"arguments":[{"name":"headStart","nativeSrc":"5662:9:9","nodeType":"YulIdentifier","src":"5662:9:9"},{"kind":"number","nativeSrc":"5673:2:9","nodeType":"YulLiteral","src":"5673:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5658:3:9","nodeType":"YulIdentifier","src":"5658:3:9"},"nativeSrc":"5658:18:9","nodeType":"YulFunctionCall","src":"5658:18:9"},"variableNames":[{"name":"tail","nativeSrc":"5650:4:9","nodeType":"YulIdentifier","src":"5650:4:9"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5724:6:9","nodeType":"YulIdentifier","src":"5724:6:9"},{"arguments":[{"name":"headStart","nativeSrc":"5737:9:9","nodeType":"YulIdentifier","src":"5737:9:9"},{"kind":"number","nativeSrc":"5748:1:9","nodeType":"YulLiteral","src":"5748:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5733:3:9","nodeType":"YulIdentifier","src":"5733:3:9"},"nativeSrc":"5733:17:9","nodeType":"YulFunctionCall","src":"5733:17:9"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"5686:37:9","nodeType":"YulIdentifier","src":"5686:37:9"},"nativeSrc":"5686:65:9","nodeType":"YulFunctionCall","src":"5686:65:9"},"nativeSrc":"5686:65:9","nodeType":"YulExpressionStatement","src":"5686:65:9"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"5548:210:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5612:9:9","nodeType":"YulTypedName","src":"5612:9:9","type":""},{"name":"value0","nativeSrc":"5624:6:9","nodeType":"YulTypedName","src":"5624:6:9","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5635:4:9","nodeType":"YulTypedName","src":"5635:4:9","type":""}],"src":"5548:210:9"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // uint256[]\n function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_uint256(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_bytes_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n","id":9,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c80631e8e1e1314610030575b600080fd5b61004a60048036038101906100459190611cde565b610060565b6040516100579190611d71565b60405180910390f35b6000611a1b565b600080600184846000805b821561009c5782840591508482028603905084955080945082820284039050829350809250610072565b60018411156100aa57600080fd5b60008612156100b95788860195505b85965050505050505092915050565b60405181602084028301815160208301925060005b82841015610120578185527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018451830991506020850194506020840193506100dd565b61014a7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183610067565b91506020850394506020840393508592505b828411156101c6577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018551830990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000184518309915080845260208503945060208403935061015c565b81845250505050505050565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610203576000805260206000f35b50565b61032081511461021a576000805260206000f35b6102286102608201516101d2565b6102366102808201516101d2565b6102446102a08201516101d2565b6102526102c08201516101d2565b6102606102e08201516101d2565b61026e6103008201516101d2565b61027c6103208201516101d2565b50565b60008060208501516102c085015260208301516102e08501526020800183015161030085015260406020018301516103208501526060602001830151610340850152608060200183015161036085015260a06020018301516103808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e06102c08601200690508060208501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020808601200660408501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001604060e08501200660008501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c06101208501200691508160608501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182820960a08501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991508160808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000180600184030106915081610260850152816102808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e0610260850120068060c08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181820992508260e08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101008601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101208601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101408601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101608601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160806101e086012006610180860152505050505050565b60017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836060860151030106618000096102a08301526107ec600261028084016100c8565b610260820151600191507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001816102a0850151096102a0840152505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102a086015109830301069050806101a0830152505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016101a08601516103208601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102c08601510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102e08601510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160408601516102a08601510890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151820990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018501030692507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028086015184099250826101c08601525050505050565b81518152602082015160208201525050565b6040518151815260208201516020820152825160408201526020830151606082015260408260808360066107d05a03fa80610bec576000805260206000f35b50505050565b6000604051835181526020840151602082015284604082015260408160608360076107d05a03fa915081610c2a576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610c5a576000805260206000f35b5050505050565b600060405183815284602082015285604082015260408160608360076107d05a03fa915081610c94576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610cc4576000805260206000f35b505050505050565b600060405183815284602082015285604082015260408360608360076107d05a03fa915081610cff576000805260206000f35b505050505050565b6101e08201610d1a6101e0830182610b9b565b610d2e610180840151610220840183610bf2565b505050565b60008061022084017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610260860151099250610db6837f073ad9ca0a63bf57aab7471be06714e14cb129b3bc1957fb205f02a2dff201447f0f0d5954bc5550bb6b8a63158299441a292523e20998bd2eeaf6817b9cf7489184610ccc565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028085015184099250610e2d837f24b75923ef66b5a38313240bf8701e5289f37ff6e54a5d9696c571cd0d7a6f7b7f13f75f7639b17b60c5dc1561ca51e09122443b14fd9b5198a3200cb73c405e7484610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610280860151099250610ea8837f26aee923b0c25e2761ed55d872bdce83e1d95e965ca8ce1d7bf132065ed73bea7f0d97ed9d9f00314c36234ec638665eba9c42b2aeb9472214f2d5a2b22615181d84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c08601516102a0860151099250610f23837f24d590624aa64d73288cef9c5c68ddfbc43c288bfec0ea23a65e3d519deb4b457f2fe2b7a5e3301ec2548b1b9fa04dafe8bdb129027d89d2fda93c32b2ac1d615384610c61565b60c08501519250610f76837f2ad72eb4319e5ce1f126c3ee2fb7b07fcacc472b06034bc9b7b00fa5c6db3dd17f0bbacffc38b7a2d2938e833aa0b1beb2ebe94796ee3eeeaa8cde99e34b70274e84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a08601516102608601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160020991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160030991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102a0850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610180860151840892506112518360e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102c085015160208701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102e085015160208701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506114bb837f244c5fc4bd854ee2b3c1b620e013383a9e6daca6c0bab14aecd7101aba922cb67f2281748b89dcd5aeaee8e7b5573d600632e8b7d13619eca441e770f4862711ff84610c61565b6114c9610120850182610bad565b608085015192506114df83610160860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018384099250611514836101a0860183610bf2565b61152660e08601516020860183610bf2565b6115396101008601516060860183610bf2565b61154c61012086015160a0860183610bf2565b61159d6101408601517f14ce1f304c015a19fe72ccdd0c7b1aaae908e4faa13142d0d8d108e2efa497fd7f1ddf2ac14509d3ed88c5114e806890a074e2a3cf08bd6b406cd4e0c1256d6a5a84610c61565b6115ed6101608601517e701c2a27f6e67a591f1ca598c17621b64ad8830430232895ca68fe3dc5854d7f0dc88371d3444a7bbc4f3cb292e69421c549c10b86e8982b67d074006094fe0884610c61565b6101c085015192507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060c087015161032087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060e087015161026087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061010087015161028087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101208701516102a087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101408701516102c087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101608701516102e087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061018087015161030087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506117ad836002600184610c61565b606085015192506117c3836101e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160608601516101808701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb8409925061184783610220860183610bf2565b5050505050565b60006040516101e0830151815260206101e08401015160208201527f1e3b651c96c337f8f6266fadcef22dc97717b5d44b445a5ef799a6cd3cc564a060408201527f10b13ed45e1871ff867a120754de5bf5c1395ad0078891e1b81f284ef6df78ca60608201527f2b57d40b181c33d7331accce5e5b890345b051c33f74e24ab728b18a3f7b473e60808201527f241a20e6fc3bc59485fa2e92365b46bf48742e8fac0b18859306488928cdcf0860a082015261022083015160c08201526020610220840101517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47817f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47030690508060e08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101008301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101208301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6101408301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa6101608301526020826101808460086107d05a03fa825181169350505050919050565b6040516102c08101604052611a2f84610206565b611a3a83828661027f565b611a4381610785565b611a4d838261082a565b611a57818561088d565b611a618185610d07565b611a6b8185610d33565b611a748161184e565b6102c082036040528060005260206000f35b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611aed82611aa4565b810181811067ffffffffffffffff82111715611b0c57611b0b611ab5565b5b80604052505050565b6000611b1f611a86565b9050611b2b8282611ae4565b919050565b600067ffffffffffffffff821115611b4b57611b4a611ab5565b5b611b5482611aa4565b9050602081019050919050565b82818337600083830152505050565b6000611b83611b7e84611b30565b611b15565b905082815260208101848484011115611b9f57611b9e611a9f565b5b611baa848285611b61565b509392505050565b600082601f830112611bc757611bc6611a9a565b5b8135611bd7848260208601611b70565b91505092915050565b600067ffffffffffffffff821115611bfb57611bfa611ab5565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b611c2481611c11565b8114611c2f57600080fd5b50565b600081359050611c4181611c1b565b92915050565b6000611c5a611c5584611be0565b611b15565b90508083825260208201905060208402830185811115611c7d57611c7c611c0c565b5b835b81811015611ca65780611c928882611c32565b845260208401935050602081019050611c7f565b5050509392505050565b600082601f830112611cc557611cc4611a9a565b5b8135611cd5848260208601611c47565b91505092915050565b60008060408385031215611cf557611cf4611a90565b5b600083013567ffffffffffffffff811115611d1357611d12611a95565b5b611d1f85828601611bb2565b925050602083013567ffffffffffffffff811115611d4057611d3f611a95565b5b611d4c85828601611cb0565b9150509250929050565b60008115159050919050565b611d6b81611d56565b82525050565b6000602082019050611d866000830184611d62565b9291505056fea26469706673582212204448cae53335b2e219e7aecf736766fc3c26b6fae1ad2206b3def7fc663a56d064736f6c63430008180033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1E8E1E13 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x1CDE JUMP JUMPDEST PUSH2 0x60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x57 SWAP2 SWAP1 PUSH2 0x1D71 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x1A1B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 DUP5 DUP5 PUSH1 0x0 DUP1 JUMPDEST DUP3 ISZERO PUSH2 0x9C JUMPI DUP3 DUP5 SDIV SWAP2 POP DUP5 DUP3 MUL DUP7 SUB SWAP1 POP DUP5 SWAP6 POP DUP1 SWAP5 POP DUP3 DUP3 MUL DUP5 SUB SWAP1 POP DUP3 SWAP4 POP DUP1 SWAP3 POP PUSH2 0x72 JUMP JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP7 SLT ISZERO PUSH2 0xB9 JUMPI DUP9 DUP7 ADD SWAP6 POP JUMPDEST DUP6 SWAP7 POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x20 DUP5 MUL DUP4 ADD DUP2 MLOAD PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x120 JUMPI DUP2 DUP6 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP5 MLOAD DUP4 MULMOD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xDD JUMP JUMPDEST PUSH2 0x14A PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH2 0x67 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP6 SUB SWAP5 POP PUSH1 0x20 DUP5 SUB SWAP4 POP DUP6 SWAP3 POP JUMPDEST DUP3 DUP5 GT ISZERO PUSH2 0x1C6 JUMPI PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP6 MLOAD DUP4 MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP5 MLOAD DUP4 MULMOD SWAP2 POP DUP1 DUP5 MSTORE PUSH1 0x20 DUP6 SUB SWAP5 POP PUSH1 0x20 DUP5 SUB SWAP4 POP PUSH2 0x15C JUMP JUMPDEST DUP2 DUP5 MSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x203 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH2 0x320 DUP2 MLOAD EQ PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST PUSH2 0x228 PUSH2 0x260 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x236 PUSH2 0x280 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x244 PUSH2 0x2A0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x252 PUSH2 0x2C0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x260 PUSH2 0x2E0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x26E PUSH2 0x300 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x27C PUSH2 0x320 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x2C0 DUP6 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x2E0 DUP6 ADD MSTORE PUSH1 0x20 DUP1 ADD DUP4 ADD MLOAD PUSH2 0x300 DUP6 ADD MSTORE PUSH1 0x40 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x320 DUP6 ADD MSTORE PUSH1 0x60 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x340 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x360 DUP6 ADD MSTORE PUSH1 0xA0 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x380 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xE0 PUSH2 0x2C0 DUP7 ADD KECCAK256 MOD SWAP1 POP DUP1 PUSH1 0x20 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP1 DUP7 ADD KECCAK256 MOD PUSH1 0x40 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 PUSH1 0xE0 DUP6 ADD KECCAK256 MOD PUSH1 0x0 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 PUSH2 0x120 DUP6 ADD KECCAK256 MOD SWAP2 POP DUP2 PUSH1 0x60 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP3 MULMOD PUSH1 0xA0 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP DUP2 PUSH1 0x80 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0x1 DUP5 SUB ADD MOD SWAP2 POP DUP2 PUSH2 0x260 DUP6 ADD MSTORE DUP2 PUSH2 0x280 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xE0 PUSH2 0x260 DUP6 ADD KECCAK256 MOD DUP1 PUSH1 0xC0 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP3 MULMOD SWAP3 POP DUP3 PUSH1 0xE0 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x100 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x120 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x140 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x160 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x80 PUSH2 0x1E0 DUP7 ADD KECCAK256 MOD PUSH2 0x180 DUP7 ADD MSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH1 0x60 DUP7 ADD MLOAD SUB ADD MOD PUSH2 0x8000 MULMOD PUSH2 0x2A0 DUP4 ADD MSTORE PUSH2 0x7EC PUSH1 0x2 PUSH2 0x280 DUP5 ADD PUSH2 0xC8 JUMP JUMPDEST PUSH2 0x260 DUP3 ADD MLOAD PUSH1 0x1 SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 PUSH2 0x2A0 DUP6 ADD MLOAD MULMOD PUSH2 0x2A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD MULMOD DUP4 SUB ADD MOD SWAP1 POP DUP1 PUSH2 0x1A0 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x1A0 DUP7 ADD MLOAD PUSH2 0x320 DUP7 ADD MLOAD ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2C0 DUP7 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x260 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2E0 DUP7 ADD MLOAD MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP3 ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP3 ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x300 DUP6 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP3 MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP6 ADD SUB MOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x1C0 DUP7 ADD MSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP3 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL DUP1 PUSH2 0xBEC JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC2A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC94 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xCC4 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xCFF JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP3 ADD PUSH2 0xD1A PUSH2 0x1E0 DUP4 ADD DUP3 PUSH2 0xB9B JUMP JUMPDEST PUSH2 0xD2E PUSH2 0x180 DUP5 ADD MLOAD PUSH2 0x220 DUP5 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x220 DUP5 ADD PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x260 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xDB6 DUP4 PUSH32 0x73AD9CA0A63BF57AAB7471BE06714E14CB129B3BC1957FB205F02A2DFF20144 PUSH32 0xF0D5954BC5550BB6B8A63158299441A292523E20998BD2EEAF6817B9CF74891 DUP5 PUSH2 0xCCC JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH2 0xE2D DUP4 PUSH32 0x24B75923EF66B5A38313240BF8701E5289F37FF6E54A5D9696C571CD0D7A6F7B PUSH32 0x13F75F7639B17B60C5DC1561CA51E09122443B14FD9B5198A3200CB73C405E74 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x280 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xEA8 DUP4 PUSH32 0x26AEE923B0C25E2761ED55D872BDCE83E1D95E965CA8CE1D7BF132065ED73BEA PUSH32 0xD97ED9D9F00314C36234EC638665EBA9C42B2AEB9472214F2D5A2B22615181D DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xF23 DUP4 PUSH32 0x24D590624AA64D73288CEF9C5C68DDFBC43C288BFEC0EA23A65E3D519DEB4B45 PUSH32 0x2FE2B7A5E3301EC2548B1B9FA04DAFE8BDB129027D89D2FDA93C32B2AC1D6153 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0xC0 DUP6 ADD MLOAD SWAP3 POP PUSH2 0xF76 DUP4 PUSH32 0x2AD72EB4319E5CE1F126C3EE2FB7B07FCACC472B06034BC9B7B00FA5C6DB3DD1 PUSH32 0xBBACFFC38B7A2D2938E833AA0B1BEB2EBE94796EE3EEEAA8CDE99E34B70274E DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH2 0x260 DUP7 ADD MLOAD ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x2 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x3 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2A0 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x180 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH2 0x1251 DUP4 PUSH1 0xE0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2C0 DUP6 ADD MLOAD PUSH1 0x20 DUP8 ADD MLOAD MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x260 DUP6 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2E0 DUP6 ADD MLOAD PUSH1 0x20 DUP8 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x300 DUP6 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 SUB MOD SWAP3 POP PUSH2 0x14BB DUP4 PUSH32 0x244C5FC4BD854EE2B3C1B620E013383A9E6DACA6C0BAB14AECD7101ABA922CB6 PUSH32 0x2281748B89DCD5AEAEE8E7B5573D600632E8B7D13619ECA441E770F4862711FF DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x14C9 PUSH2 0x120 DUP6 ADD DUP3 PUSH2 0xBAD JUMP JUMPDEST PUSH1 0x80 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x14DF DUP4 PUSH2 0x160 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 DUP5 MULMOD SWAP3 POP PUSH2 0x1514 DUP4 PUSH2 0x1A0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x1526 PUSH1 0xE0 DUP7 ADD MLOAD PUSH1 0x20 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x1539 PUSH2 0x100 DUP7 ADD MLOAD PUSH1 0x60 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x154C PUSH2 0x120 DUP7 ADD MLOAD PUSH1 0xA0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x159D PUSH2 0x140 DUP7 ADD MLOAD PUSH32 0x14CE1F304C015A19FE72CCDD0C7B1AAAE908E4FAA13142D0D8D108E2EFA497FD PUSH32 0x1DDF2AC14509D3ED88C5114E806890A074E2A3CF08BD6B406CD4E0C1256D6A5A DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x15ED PUSH2 0x160 DUP7 ADD MLOAD PUSH31 0x701C2A27F6E67A591F1CA598C17621B64AD8830430232895CA68FE3DC5854D PUSH32 0xDC88371D3444A7BBC4F3CB292E69421C549C10B86E8982B67D074006094FE08 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x1C0 DUP6 ADD MLOAD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0xC0 DUP8 ADD MLOAD PUSH2 0x320 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0xE0 DUP8 ADD MLOAD PUSH2 0x260 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x100 DUP8 ADD MLOAD PUSH2 0x280 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x120 DUP8 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x140 DUP8 ADD MLOAD PUSH2 0x2C0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x160 DUP8 ADD MLOAD PUSH2 0x2E0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x180 DUP8 ADD MLOAD PUSH2 0x300 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 SUB MOD SWAP3 POP PUSH2 0x17AD DUP4 PUSH1 0x2 PUSH1 0x1 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0x60 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x17C3 DUP4 PUSH2 0x1E0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x60 DUP7 ADD MLOAD PUSH2 0x180 DUP8 ADD MLOAD MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH32 0x2D1BA66F5941DC91017171FA69EC2BD0022A2A2D4115A009A93458FD4E26ECFB DUP5 MULMOD SWAP3 POP PUSH2 0x1847 DUP4 PUSH2 0x220 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x1E0 DUP4 ADD MLOAD DUP2 MSTORE PUSH1 0x20 PUSH2 0x1E0 DUP5 ADD ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x1E3B651C96C337F8F6266FADCEF22DC97717B5D44B445A5EF799A6CD3CC564A0 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x10B13ED45E1871FF867A120754DE5BF5C1395AD0078891E1B81F284EF6DF78CA PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x2B57D40B181C33D7331ACCCE5E5B890345B051C33F74E24AB728B18A3F7B473E PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x241A20E6FC3BC59485FA2E92365B46BF48742E8FAC0B18859306488928CDCF08 PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x220 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x20 PUSH2 0x220 DUP5 ADD ADD MLOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 DUP2 PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD SWAP1 POP DUP1 PUSH1 0xE0 DUP4 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x100 DUP4 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x120 DUP4 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x140 DUP4 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x160 DUP4 ADD MSTORE PUSH1 0x20 DUP3 PUSH2 0x180 DUP5 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL DUP3 MLOAD DUP2 AND SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C0 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x1A2F DUP5 PUSH2 0x206 JUMP JUMPDEST PUSH2 0x1A3A DUP4 DUP3 DUP7 PUSH2 0x27F JUMP JUMPDEST PUSH2 0x1A43 DUP2 PUSH2 0x785 JUMP JUMPDEST PUSH2 0x1A4D DUP4 DUP3 PUSH2 0x82A JUMP JUMPDEST PUSH2 0x1A57 DUP2 DUP6 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x1A61 DUP2 DUP6 PUSH2 0xD07 JUMP JUMPDEST PUSH2 0x1A6B DUP2 DUP6 PUSH2 0xD33 JUMP JUMPDEST PUSH2 0x1A74 DUP2 PUSH2 0x184E JUMP JUMPDEST PUSH2 0x2C0 DUP3 SUB PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1AED DUP3 PUSH2 0x1AA4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1B0C JUMPI PUSH2 0x1B0B PUSH2 0x1AB5 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B1F PUSH2 0x1A86 JUMP JUMPDEST SWAP1 POP PUSH2 0x1B2B DUP3 DUP3 PUSH2 0x1AE4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1B4B JUMPI PUSH2 0x1B4A PUSH2 0x1AB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1B54 DUP3 PUSH2 0x1AA4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B83 PUSH2 0x1B7E DUP5 PUSH2 0x1B30 JUMP JUMPDEST PUSH2 0x1B15 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1B9F JUMPI PUSH2 0x1B9E PUSH2 0x1A9F JUMP JUMPDEST JUMPDEST PUSH2 0x1BAA DUP5 DUP3 DUP6 PUSH2 0x1B61 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1BC7 JUMPI PUSH2 0x1BC6 PUSH2 0x1A9A JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1BD7 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1B70 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1BFB JUMPI PUSH2 0x1BFA PUSH2 0x1AB5 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C24 DUP2 PUSH2 0x1C11 JUMP JUMPDEST DUP2 EQ PUSH2 0x1C2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1C41 DUP2 PUSH2 0x1C1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C5A PUSH2 0x1C55 DUP5 PUSH2 0x1BE0 JUMP JUMPDEST PUSH2 0x1B15 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1C7D JUMPI PUSH2 0x1C7C PUSH2 0x1C0C JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1CA6 JUMPI DUP1 PUSH2 0x1C92 DUP9 DUP3 PUSH2 0x1C32 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1C7F JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1CC5 JUMPI PUSH2 0x1CC4 PUSH2 0x1A9A JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1CD5 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1C47 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1CF5 JUMPI PUSH2 0x1CF4 PUSH2 0x1A90 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D13 JUMPI PUSH2 0x1D12 PUSH2 0x1A95 JUMP JUMPDEST JUMPDEST PUSH2 0x1D1F DUP6 DUP3 DUP7 ADD PUSH2 0x1BB2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D40 JUMPI PUSH2 0x1D3F PUSH2 0x1A95 JUMP JUMPDEST JUMPDEST PUSH2 0x1D4C DUP6 DUP3 DUP7 ADD PUSH2 0x1CB0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D6B DUP2 PUSH2 0x1D56 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D86 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D62 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO BASEFEE 0xCA 0xE5 CALLER CALLDATALOAD 0xB2 0xE2 NOT 0xE7 0xAE 0xCF PUSH20 0x6766FC3C26B6FAE1AD2206B3DEF7FC663A56D064 PUSH20 0x6F6C634300081800330000000000000000000000 ","sourceMap":"832:23904:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5183:19551;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;5271:4;5429:724;;;5455:3;5486:1;5521;5548;5583;5601:12;5630:7;5671:334;5679:4;5671:334;;;5730:4;5727:1;5722:13;5710:25;;5784:4;5774:8;5770:19;5767:1;5763:27;5756:34;;5815:4;5811:8;;5847:3;5840:10;;5919:4;5909:8;5905:19;5903:1;5899:26;5892:33;;5951:4;5946:9;;5984:3;5976:11;;5671:334;;;6048:1;6045;6042:8;6039:27;;;6062:1;6060;6053:11;6039:27;6093:1;6090;6086:9;6083:30;;;6109:1;6106;6102:9;6098:13;;6083:30;6138:1;6131:8;;5459:694;;;;;;5429:724;;;;:::o;6395:1517::-;6468:4;6462:11;6540:5;6595:2;6592:1;6588:10;6581:5;6577:22;6652:3;6646:10;6721:2;6716:3;6712:12;6705:19;;6780:7;6826:257;6842:7;6837:3;6834:16;6826:257;;;7007:3;7001:4;6994:17;7063:1;7057:3;7051:10;7046:3;7039:26;7032:33;;6892:2;6886:4;6882:13;6874:21;;6933:2;6928:3;6924:12;6917:19;;6826:257;;;7107:15;7120:1;7115:3;7107:15;:::i;:::-;7100:22;;7284:2;7278:4;7274:13;7266:21;;7397:2;7392:3;7388:12;7381:19;;7428:5;7417:16;;7490:311;7506:7;7501:3;7498:16;7490:311;;;7690:1;7683:4;7677:11;7672:3;7665:27;7658:34;;7744:1;7738:3;7732:10;7727:3;7720:26;7713:33;;7779:3;7774;7767:16;7556:2;7550:4;7546:13;7538:21;;7597:2;7592:3;7588:12;7581:19;;7490:311;;;7894:3;7889;7882:16;6427:1485;;;;;6395:1517;;:::o;7938:162::-;7995:1;7992;7989:8;7979:107;;8031:1;8028;8021:12;8063:4;8061:1;8054:14;7979:107;7938:162;:::o;8126:668::-;8200:3;8191:6;8185:13;8182:23;8172:122;;8239:1;8236;8229:12;8271:4;8269:1;8262:14;8172:122;8311:39;8340:7;8332:6;8328:20;8322:27;8311:39;:::i;:::-;8367;8396:7;8388:6;8384:20;8378:27;8367:39;:::i;:::-;8423;8452:7;8444:6;8440:20;8434:27;8423:39;:::i;:::-;8479:40;8508:8;8500:6;8496:21;8490:28;8479:40;:::i;:::-;8536;8565:8;8557:6;8553:21;8547:28;8536:40;:::i;:::-;8593;8622:8;8614:6;8610:21;8604:28;8593:40;:::i;:::-;8650:39;8679:7;8671:6;8667:20;8661:27;8650:39;:::i;:::-;8126:668;:::o;8820:2828::-;8903:5;8925;9011:2;9002:7;8997:17;8990:25;8983:3;8977:4;8973:15;8965:51;9095:2;9087:6;9082:16;9075:24;9068:3;9062:4;9058:15;9050:50;9169:2;9166;9162:10;9154:6;9149:24;9142:32;9135:3;9129:4;9125:15;9117:58;9244:2;9241;9237:10;9229:6;9224:24;9217:32;9210:3;9204:4;9200:15;9192:58;9319:2;9316;9312:10;9304:6;9299:24;9292:32;9285:3;9279:4;9275:15;9267:58;9394:3;9391:2;9387:11;9379:6;9374:25;9367:33;9360:3;9354:4;9350:15;9342:59;9470:3;9467:2;9463:11;9455:6;9450:25;9443:33;9436:3;9430:4;9426:15;9418:59;9556:1;9550:3;9540:7;9534:4;9530:18;9520:34;9516:42;9511:47;;9602:1;9594:5;9588:4;9584:16;9576:28;9685:1;9680:2;9672:5;9666:4;9662:16;9652:31;9648:39;9639:6;9633:4;9629:17;9621:67;9768:1;9763:2;9758;9750:6;9746:15;9736:30;9732:38;9723:6;9717:4;9713:17;9705:66;9848:1;9842:3;9836;9828:6;9824:16;9814:32;9810:40;9805:45;;9891:1;9885:3;9879:4;9875:14;9867:26;9951:1;9948;9945;9938:15;9928:7;9922:4;9918:18;9910:44;10005:1;10002;9999;9992:15;9988:19;;10058:1;10055;10052;10045:15;10041:19;;10111:1;10108;10105;10098:15;10094:19;;10164:1;10161;10158;10151:15;10147:19;;10217:1;10214;10211;10204:15;10200:19;;10270:1;10267;10264;10257:15;10253:19;;10323:1;10320;10317;10310:15;10306:19;;10376:1;10373;10370;10363:15;10359:19;;10429:1;10426;10423;10416:15;10412:19;;10482:1;10479;10476;10469:15;10465:19;;10535:1;10532;10529;10522:15;10518:19;;10588:1;10585;10582;10575:15;10571:19;;10641:1;10638;10635;10628:15;10624:19;;10694:1;10691;10688;10681:15;10677:19;;10747:1;10744;10741;10734:15;10730:19;;10808:1;10801:4;10795;10791:15;10783:27;10853:1;10849;10846;10843;10839:9;10835:16;10831:24;10827:28;;10896:1;10890:3;10884:4;10880:14;10872:26;10942:1;10933:6;10927:4;10923:17;10915:29;11083:1;11077:3;11067:7;11059:6;11055:20;11045:36;11041:44;11126:2;11120:3;11114:4;11110:14;11102:27;11166:1;11162:2;11158;11151:17;11146:22;;11209:1;11203:3;11197:4;11193:14;11185:26;11247:1;11243:2;11240:1;11233:16;11228:21;;11290:1;11284:3;11278:4;11274:14;11266:26;11328:1;11324:2;11321:1;11314:16;11309:21;;11371:1;11365:3;11359:4;11355:14;11347:26;11409:1;11405:2;11402:1;11395:16;11390:21;;11452:1;11446:3;11440:4;11436:14;11428:26;11490:1;11486:2;11483:1;11476:16;11471:21;;11533:1;11527:3;11521:4;11517:14;11509:26;11631:1;11625:3;11618:4;11610:6;11606:17;11596:33;11592:41;11587:2;11581:4;11577:13;11569:65;8872:2776;;;8820:2828;;;:::o;11674:1173::-;11735:1;12272;12218;12157;12087;12043:3;12037:4;12033:14;12027:21;11986:136;11949:239;11916:329;11888:1;11856:439;11824:8;11818:4;11814:19;11786:527;12381:35;12413:1;12404:6;12398:4;12394:17;12381:35;:::i;:::-;12476:3;12470:4;12466:14;12460:21;12503:1;12498:6;;12739:1;12711:2;12674:8;12668:4;12664:20;12658:27;12626:136;12593:8;12587:4;12583:20;12555:225;11707:1140;;11674:1173;:::o;12873:651::-;12934:1;13396;13351;13268;13230:2;13224:4;13220:13;13214:20;13170:8;13164:4;13160:19;13154:26;13114:185;13080:2;13047:278;13018:356;12993:422;12987:428;;13489:2;13483:3;13477:4;13473:14;13466:26;12906:618;12873:651;;:::o;13538:2196::-;13590:5;13612:6;13635;13785:1;13757:3;13751:4;13747:14;13741:21;13709:7;13701:6;13697:20;13691:27;13663:141;13658:146;;13967:1;13938:5;13932:4;13928:16;13922:23;13890:8;13882:6;13878:21;13872:28;13844:142;13838:148;;14111:1;14080:7;14072:6;14068:20;14062:27;14038:2;14010:120;14004:126;;14268:1;14238:6;14232:4;14228:17;14222:24;14198:2;14170:117;14164:123;;14434:1;14405:5;14399:4;14395:16;14389:23;14357:8;14349:6;14345:21;14339:28;14311:142;14305:148;;14578:1;14547:7;14539:6;14535:20;14529:27;14505:2;14477:120;14471:126;;14735:1;14705:6;14699:4;14695:17;14689:24;14665:2;14637:117;14631:123;;14809:1;14805:2;14801;14794:17;14788:23;;14974:1;14944:6;14938:4;14934:17;14928:24;14897:7;14889:6;14885:20;14879:27;14851:142;14845:148;;15032:1;15028:2;15024;15017:17;15011:23;;15098:1;15086:8;15078:6;15074:21;15068:28;15064:2;15057:43;15051:49;;15160:1;15150:6;15144:4;15140:17;15134:24;15130:2;15123:39;15117:45;;15326:1;15295:6;15289:4;15285:17;15279:24;15246:8;15240:4;15236:19;15230:26;15202:143;15196:149;;15469:1;15438:6;15432:4;15428:17;15422:24;15397:2;15369:119;15363:125;;15527:1;15523:2;15519;15512:17;15506:23;;15592:1;15587:2;15583:1;15580;15576:9;15572:18;15568:26;15563:31;;15652:1;15642:6;15636:4;15632:17;15626:24;15623:1;15616:38;15611:43;;15717:1;15706:7;15700:4;15696:18;15688:31;13572:2162;;;13538:2196;;:::o;15760:132::-;15819:2;15813:9;15809:2;15802:21;15873:2;15870;15866:10;15860:17;15855:2;15851;15847:11;15840:38;15760:132;;:::o;15906:498::-;15965:4;15959:11;16005:2;15999:9;15994:3;15987:22;16060:2;16056;16052:11;16046:18;16041:2;16037:3;16033:11;16026:39;16108:2;16102:9;16097:2;16093:3;16089:11;16082:30;16163:2;16159;16155:11;16149:18;16144:2;16140:3;16136:11;16129:39;16247:2;16243;16238:3;16233;16230:1;16223:4;16216:5;16212:16;16201:49;16294:7;16284:106;;16335:1;16332;16325:12;16367:4;16365:1;16358:14;16284:106;15930:474;;15906:498;;:::o;16418:819::-;16466:11;16511:4;16505:11;16551:2;16545:9;16540:3;16533:22;16606:2;16602;16598:11;16592:18;16587:2;16583:3;16579:11;16572:39;16648:1;16643:2;16639:3;16635:11;16628:22;16725:2;16720:3;16716:2;16711:3;16708:1;16701:4;16694:5;16690:16;16679:49;16668:60;;16772:7;16762:106;;16813:1;16810;16803:12;16845:4;16843:1;16836:14;16762:106;16928:2;16922:9;16917:2;16913:3;16909:11;16902:30;16983:2;16979;16975:11;16969:18;16964:2;16960:3;16956:11;16949:39;17063:2;17059;17054:3;17049;17046:1;17039:4;17032:5;17028:16;17017:49;17006:60;;17110:7;17100:106;;17151:1;17148;17141:12;17183:4;17181:1;17174:14;17100:106;16448:789;;16418:819;;;:::o;17251:780::-;17302:11;17347:4;17341:11;17381:1;17376:3;17369:14;17420:1;17415:2;17411:3;17407:11;17400:22;17459:1;17454:2;17450:3;17446:11;17439:22;17536:2;17531:3;17527:2;17522:3;17519:1;17512:4;17505:5;17501:16;17490:49;17479:60;;17583:7;17573:106;;17624:1;17621;17614:12;17656:4;17654:1;17647:14;17573:106;17739:2;17733:9;17728:2;17724:3;17720:11;17713:30;17794:2;17790;17786:11;17780:18;17775:2;17771:3;17767:11;17760:39;17874:2;17870;17865:3;17860;17857:1;17850:4;17843:5;17839:16;17828:49;17817:60;;17921:7;17911:106;;17962:1;17959;17952:12;17994:4;17992:1;17985:14;17911:106;17284:747;;17251:780;;;;:::o;18045:441::-;18096:11;18141:4;18135:11;18175:1;18170:3;18163:14;18214:1;18209:2;18205:3;18201:11;18194:22;18253:1;18248:2;18244:3;18240:11;18233:22;18329:2;18325;18321;18316:3;18313:1;18306:4;18299:5;18295:16;18284:48;18273:59;;18376:7;18366:106;;18417:1;18414;18407:12;18449:4;18447:1;18440:14;18366:106;18078:408;;18045:441;;;;:::o;18501:206::-;18573:3;18567:4;18563:14;18594:28;18616:4;18608:6;18604:17;18601:1;18594:28;:::i;:::-;18639:54;18688:2;18682:4;18678:13;18672:20;18664:5;18656:6;18652:18;18649:1;18639:54;:::i;:::-;18536:171;18501:206;;:::o;18746:4478::-;18799:5;18821:6;18863:3;18857:4;18853:14;18997:1;18990:3;18984:4;18980:14;18974:21;18963:7;18955:6;18951:20;18945:27;18937:62;18932:67;;19016:26;19040:1;19035:3;19030;19027:1;19016:26;:::i;:::-;19105:1;19094:7;19086:6;19082:20;19076:27;19073:1;19065:42;19060:47;;19140:26;19164:1;19159:3;19154;19151:1;19140:26;:::i;:::-;19249:1;19242:3;19236:4;19232:14;19226:21;19215:7;19207:6;19203:20;19197:27;19189:62;19184:67;;19268:26;19292:1;19287:3;19282;19279:1;19268:26;:::i;:::-;19393:1;19386:3;19380:4;19376:14;19370:21;19359:7;19351:6;19347:20;19341:27;19333:62;19328:67;;19412:26;19436:1;19431:3;19426;19423:1;19412:26;:::i;:::-;19476:3;19470:4;19466:14;19460:21;19456:25;;19498:26;19522:1;19517:3;19512;19509:1;19498:26;:::i;:::-;19610:1;19599:7;19593:4;19589:18;19583:25;19572:7;19564:6;19560:20;19554:27;19547:65;19542:70;;19670:1;19660:6;19654:4;19650:17;19644:24;19641:1;19634:38;19629:43;;19733:1;19722:7;19716:4;19712:18;19706:25;19702:2;19695:40;19689:46;;19798:1;19787:7;19779:6;19775:20;19769:27;19765:2;19758:42;19752:48;;19860:1;19850:6;19844:4;19840:17;19834:24;19830:2;19823:39;19817:45;;19898:1;19894:2;19891:1;19884:16;19879:21;;19961:1;19950:7;19944:4;19940:18;19934:25;19930:2;19923:40;19917:46;;20026:1;20015:7;20007:6;20003:20;19997:27;19993:2;19986:42;19980:48;;20088:1;20078:6;20072:4;20068:17;20062:24;20058:2;20051:39;20045:45;;20126:1;20122:2;20119:1;20112:16;20107:21;;20186:1;20176:6;20170:4;20166:17;20160:24;20157:1;20150:38;20145:43;;20243:1;20236:3;20230:4;20226:14;20220:21;20217:1;20210:35;20205:40;;20329:1;20319:6;20313:4;20309:17;20303:24;20291:8;20285:4;20281:19;20275:26;20268:63;20262:69;;20391:1;20381:6;20375:4;20371:17;20365:24;20361:2;20354:39;20348:45;;20450:1;20443:3;20437:4;20433:14;20427:21;20423:2;20416:36;20410:42;;20488:1;20484:2;20481:1;20474:16;20469:21;;20544:1;20538:2;20532:4;20528:13;20522:20;20519:1;20512:34;20507:39;;20563:32;20593:1;20588:2;20580:6;20576:15;20573:1;20563:32;:::i;:::-;20696:1;20684:8;20676:6;20672:21;20666:28;20657:5;20651:4;20647:16;20641:23;20634:64;20629:69;;20759:1;20748:7;20740:6;20736:20;20730:27;20727:1;20720:41;20715:46;;20819:1;20809:6;20803:4;20799:17;20793:24;20790:1;20783:38;20778:43;;20906:1;20894:8;20886:6;20882:21;20876:28;20867:5;20861:4;20857:16;20851:23;20844:64;20838:70;;20971:1;20960:7;20952:6;20948:20;20942:27;20938:2;20931:42;20925:48;;21033:1;21023:6;21017:4;21013:17;21007:24;21003:2;20996:39;20990:45;;21071:1;21067:2;21064:1;21057:16;21052:21;;21131:1;21121:6;21115:4;21111:17;21105:24;21102:1;21095:38;21090:43;;21188:1;21181:3;21175:4;21171:14;21165:21;21162:1;21155:35;21150:40;;21247:1;21238:5;21232:4;21228:16;21222:23;21219:1;21212:37;21207:42;;21311:1;21299:8;21291:6;21287:21;21281:28;21278:1;21271:42;21266:47;;21350:1;21346;21343;21339:9;21335:17;21330:22;;21369:26;21393:1;21388:3;21383;21380:1;21369:26;:::i;:::-;21445:28;21468:3;21460:6;21456:16;21452:1;21445:28;:::i;:::-;21512:4;21506;21502:15;21496:22;21491:27;;21535:33;21566:1;21560:3;21552:6;21548:16;21545:1;21535:33;:::i;:::-;21620:1;21617;21614;21607:15;21602:20;;21639:33;21670:1;21664:3;21656:6;21652:16;21649:1;21639:33;:::i;:::-;21706:52;21752:3;21746:4;21742:14;21736:21;21731:2;21723:6;21719:15;21716:1;21706:52;:::i;:::-;21775;21821:3;21815:4;21811:14;21805:21;21800:2;21792:6;21788:15;21785:1;21775:52;:::i;:::-;21844;21890:3;21884:4;21880:14;21874:21;21869:2;21861:6;21857:15;21854:1;21844:52;:::i;:::-;21913:46;21953:3;21947:4;21943:14;21937:21;21932:3;21927;21924:1;21913:46;:::i;:::-;21976;22016:3;22010:4;22006:14;22000:21;21995:3;21990;21987:1;21976:46;:::i;:::-;22108:7;22102:4;22098:18;22092:25;22087:30;;22212:1;22208;22201:3;22195:4;22191:14;22185:21;22174:7;22166:6;22162:20;22156:27;22149:61;22146:1;22139:75;22134:80;;22309:1;22305;22298:3;22292:4;22288:14;22282:21;22271:7;22263:6;22259:20;22253:27;22246:61;22243:1;22236:75;22231:80;;22406:1;22402;22395:3;22389:4;22385:14;22379:21;22368:7;22360:6;22356:20;22350:27;22343:61;22340:1;22333:75;22328:80;;22503:1;22499;22492:3;22486:4;22482:14;22476:21;22465:7;22457:6;22453:20;22447:27;22440:61;22437:1;22430:75;22425:80;;22601:1;22597;22590:3;22584:4;22580:14;22574:21;22562:8;22554:6;22550:21;22544:28;22537:62;22534:1;22527:76;22522:81;;22699:1;22695;22688:3;22682:4;22678:14;22672:21;22660:8;22652:6;22648:21;22642:28;22635:62;22632:1;22625:76;22620:81;;22796:1;22792;22786:2;22780:4;22776:13;22770:20;22758:8;22750:6;22746:21;22740:28;22733:61;22730:1;22723:75;22718:80;;22835:1;22831;22828;22824:9;22820:17;22815:22;;22854:26;22878:1;22873:3;22868;22865:1;22854:26;:::i;:::-;22986:3;22980:4;22976:14;22970:21;22965:26;;23008:34;23040:1;23033:4;23025:6;23021:17;23018:1;23008:34;:::i;:::-;23117:1;23110:3;23104:4;23100:14;23094:21;23088:2;23082:4;23078:13;23072:20;23065:54;23060:59;;23155:1;23151:2;23148:1;23141:16;23136:21;;23174:35;23207:1;23199:5;23191:6;23187:18;23184:1;23174:35;:::i;:::-;18781:4443;;;18746:4478;;:::o;23250:915::-;23281:4;23321;23315:11;23371:3;23365:4;23361:14;23355:21;23350:3;23343:34;23440:2;23434:3;23428:4;23424:14;23420:23;23414:30;23409:2;23405:3;23401:11;23394:51;23482:4;23477:2;23473:3;23469:11;23462:25;23524:4;23519:2;23515:3;23511:11;23504:25;23567:4;23561:3;23557;23553:12;23546:26;23610:4;23604:3;23600;23596:12;23589:26;23669:3;23663:4;23659:14;23653:21;23647:3;23643;23639:12;23632:43;23727:2;23721:3;23715:4;23711:14;23707:23;23701:30;23769:2;23765:1;23761:2;23757:10;23753:19;23748:24;;23810:1;23804:3;23800;23796:12;23789:23;23850:4;23844:3;23840;23836:12;23829:26;23893:4;23887:3;23883;23879:12;23872:26;23936:4;23930:3;23926;23922:12;23915:26;23979:4;23973:3;23969;23965:12;23958:26;24080:4;24075:3;24070;24065;24062:1;24055:4;24048:5;24044:16;24033:52;24146:3;24140:10;24131:7;24127:24;24119:32;;23286:879;;;23250:915;;;:::o;:::-;24209:4;24203:11;24250:7;24244:4;24240:18;24234:4;24227:32;24285:17;24296:5;24285:17;:::i;:::-;24315:44;24348:10;24342:4;24335:5;24315:44;:::i;:::-;24372:23;24390:4;24372:23;:::i;:::-;24408:29;24426:10;24420:4;24408:29;:::i;:::-;24450:23;24468:4;24461:5;24450:23;:::i;:::-;24486:24;24505:4;24498:5;24486:24;:::i;:::-;24523;24542:4;24535:5;24523:24;:::i;:::-;24575:18;24588:4;24575:18;:::i;:::-;24642:7;24636:4;24632:18;24626:4;24619:32;24674:7;24671:1;24664:18;24704:4;24702:1;24695:14;7:75:9;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:307::-;1357:4;1447:18;1439:6;1436:30;1433:56;;;1469:18;;:::i;:::-;1433:56;1507:29;1529:6;1507:29;:::i;:::-;1499:37;;1591:4;1585;1581:15;1573:23;;1296:307;;;:::o;1609:146::-;1706:6;1701:3;1696;1683:30;1747:1;1738:6;1733:3;1729:16;1722:27;1609:146;;;:::o;1761:423::-;1838:5;1863:65;1879:48;1920:6;1879:48;:::i;:::-;1863:65;:::i;:::-;1854:74;;1951:6;1944:5;1937:21;1989:4;1982:5;1978:16;2027:3;2018:6;2013:3;2009:16;2006:25;2003:112;;;2034:79;;:::i;:::-;2003:112;2124:54;2171:6;2166:3;2161;2124:54;:::i;:::-;1844:340;1761:423;;;;;:::o;2203:338::-;2258:5;2307:3;2300:4;2292:6;2288:17;2284:27;2274:122;;2315:79;;:::i;:::-;2274:122;2432:6;2419:20;2457:78;2531:3;2523:6;2516:4;2508:6;2504:17;2457:78;:::i;:::-;2448:87;;2264:277;2203:338;;;;:::o;2547:311::-;2624:4;2714:18;2706:6;2703:30;2700:56;;;2736:18;;:::i;:::-;2700:56;2786:4;2778:6;2774:17;2766:25;;2846:4;2840;2836:15;2828:23;;2547:311;;;:::o;2864:117::-;2973:1;2970;2963:12;2987:77;3024:7;3053:5;3042:16;;2987:77;;;:::o;3070:122::-;3143:24;3161:5;3143:24;:::i;:::-;3136:5;3133:35;3123:63;;3182:1;3179;3172:12;3123:63;3070:122;:::o;3198:139::-;3244:5;3282:6;3269:20;3260:29;;3298:33;3325:5;3298:33;:::i;:::-;3198:139;;;;:::o;3360:710::-;3456:5;3481:81;3497:64;3554:6;3497:64;:::i;:::-;3481:81;:::i;:::-;3472:90;;3582:5;3611:6;3604:5;3597:21;3645:4;3638:5;3634:16;3627:23;;3698:4;3690:6;3686:17;3678:6;3674:30;3727:3;3719:6;3716:15;3713:122;;;3746:79;;:::i;:::-;3713:122;3861:6;3844:220;3878:6;3873:3;3870:15;3844:220;;;3953:3;3982:37;4015:3;4003:10;3982:37;:::i;:::-;3977:3;3970:50;4049:4;4044:3;4040:14;4033:21;;3920:144;3904:4;3899:3;3895:14;3888:21;;3844:220;;;3848:21;3462:608;;3360:710;;;;;:::o;4093:370::-;4164:5;4213:3;4206:4;4198:6;4194:17;4190:27;4180:122;;4221:79;;:::i;:::-;4180:122;4338:6;4325:20;4363:94;4453:3;4445:6;4438:4;4430:6;4426:17;4363:94;:::i;:::-;4354:103;;4170:293;4093:370;;;;:::o;4469:862::-;4571:6;4579;4628:2;4616:9;4607:7;4603:23;4599:32;4596:119;;;4634:79;;:::i;:::-;4596:119;4782:1;4771:9;4767:17;4754:31;4812:18;4804:6;4801:30;4798:117;;;4834:79;;:::i;:::-;4798:117;4939:62;4993:7;4984:6;4973:9;4969:22;4939:62;:::i;:::-;4929:72;;4725:286;5078:2;5067:9;5063:18;5050:32;5109:18;5101:6;5098:30;5095:117;;;5131:79;;:::i;:::-;5095:117;5236:78;5306:7;5297:6;5286:9;5282:22;5236:78;:::i;:::-;5226:88;;5021:303;4469:862;;;;;:::o;5337:90::-;5371:7;5414:5;5407:13;5400:21;5389:32;;5337:90;;;:::o;5433:109::-;5514:21;5529:5;5514:21;:::i;:::-;5509:3;5502:34;5433:109;;:::o;5548:210::-;5635:4;5673:2;5662:9;5658:18;5650:26;;5686:65;5748:1;5737:9;5733:17;5724:6;5686:65;:::i;:::-;5548:210;;;;:::o"},"methodIdentifiers":{"verifyProof(bytes,uint256[])":"1e8e1e13"}},"metadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"uint256[]\",\"name\":\"pubSignals\",\"type\":\"uint256[]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/workstep2Verifier.sol\":\"PlonkVerifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/workstep2Verifier.sol\":{\"keccak256\":\"0x56bc40a14dab134bde32c038bec90357fa957ddc5e67969bce2960440fe0c147\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3c7aeb093172389383c563ac0291d1c4e0df626951fe01619103e8c2191bd193\",\"dweb:/ipfs/Qmb9Fjo2oyvTkDPkXLP4EKb29GDHSt6GRKhrmC1JyLAsme\"]}},\"version\":1}"}},"contracts/workstep3Verifier.sol":{"PlonkVerifier":{"abi":[{"inputs":[{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"uint256[]","name":"pubSignals","type":"uint256[]"}],"name":"verifyProof","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50611dc2806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80631e8e1e1314610030575b600080fd5b61004a60048036038101906100459190611cde565b610060565b6040516100579190611d71565b60405180910390f35b6000611a1b565b600080600184846000805b821561009c5782840591508482028603905084955080945082820284039050829350809250610072565b60018411156100aa57600080fd5b60008612156100b95788860195505b85965050505050505092915050565b60405181602084028301815160208301925060005b82841015610120578185527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018451830991506020850194506020840193506100dd565b61014a7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183610067565b91506020850394506020840393508592505b828411156101c6577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018551830990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000184518309915080845260208503945060208403935061015c565b81845250505050505050565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610203576000805260206000f35b50565b61032081511461021a576000805260206000f35b6102286102608201516101d2565b6102366102808201516101d2565b6102446102a08201516101d2565b6102526102c08201516101d2565b6102606102e08201516101d2565b61026e6103008201516101d2565b61027c6103208201516101d2565b50565b60008060208501516102c085015260208301516102e08501526020800183015161030085015260406020018301516103208501526060602001830151610340850152608060200183015161036085015260a06020018301516103808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e06102c08601200690508060208501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020808601200660408501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001604060e08501200660008501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c06101208501200691508160608501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182820960a08501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991508160808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000180600184030106915081610260850152816102808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e0610260850120068060c08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181820992508260e08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101008601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101208601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101408601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101608601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160806101e086012006610180860152505050505050565b60017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836060860151030106618000096102a08301526107ec600261028084016100c8565b610260820151600191507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001816102a0850151096102a0840152505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102a086015109830301069050806101a0830152505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016101a08601516103208601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102c08601510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102e08601510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160408601516102a08601510890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151820990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018501030692507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028086015184099250826101c08601525050505050565b81518152602082015160208201525050565b6040518151815260208201516020820152825160408201526020830151606082015260408260808360066107d05a03fa80610bec576000805260206000f35b50505050565b6000604051835181526020840151602082015284604082015260408160608360076107d05a03fa915081610c2a576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610c5a576000805260206000f35b5050505050565b600060405183815284602082015285604082015260408160608360076107d05a03fa915081610c94576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610cc4576000805260206000f35b505050505050565b600060405183815284602082015285604082015260408360608360076107d05a03fa915081610cff576000805260206000f35b505050505050565b6101e08201610d1a6101e0830182610b9b565b610d2e610180840151610220840183610bf2565b505050565b60008061022084017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610260860151099250610db6837f073ad9ca0a63bf57aab7471be06714e14cb129b3bc1957fb205f02a2dff201447f0f0d5954bc5550bb6b8a63158299441a292523e20998bd2eeaf6817b9cf7489184610ccc565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028085015184099250610e2d837f24b75923ef66b5a38313240bf8701e5289f37ff6e54a5d9696c571cd0d7a6f7b7f13f75f7639b17b60c5dc1561ca51e09122443b14fd9b5198a3200cb73c405e7484610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610280860151099250610ea8837f0ce90799f564b37f9a7c19587ad4234c46f6afad9f4b1fb9277bed47dd9b6a117f2becb27157d1ea8e65712e5a9d3b836536cc95f8ffbe2a9a66259a05b94d8c4184610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c08601516102a0860151099250610f23837f24d590624aa64d73288cef9c5c68ddfbc43c288bfec0ea23a65e3d519deb4b457f2fe2b7a5e3301ec2548b1b9fa04dafe8bdb129027d89d2fda93c32b2ac1d615384610c61565b60c08501519250610f76837f2ad72eb4319e5ce1f126c3ee2fb7b07fcacc472b06034bc9b7b00fa5c6db3dd17f0bbacffc38b7a2d2938e833aa0b1beb2ebe94796ee3eeeaa8cde99e34b70274e84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a08601516102608601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160020991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160030991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102a0850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610180860151840892506112518360e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102c085015160208701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102e085015160208701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506114bb837f244c5fc4bd854ee2b3c1b620e013383a9e6daca6c0bab14aecd7101aba922cb67f2281748b89dcd5aeaee8e7b5573d600632e8b7d13619eca441e770f4862711ff84610c61565b6114c9610120850182610bad565b608085015192506114df83610160860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018384099250611514836101a0860183610bf2565b61152660e08601516020860183610bf2565b6115396101008601516060860183610bf2565b61154c61012086015160a0860183610bf2565b61159d6101408601517f14ce1f304c015a19fe72ccdd0c7b1aaae908e4faa13142d0d8d108e2efa497fd7f1ddf2ac14509d3ed88c5114e806890a074e2a3cf08bd6b406cd4e0c1256d6a5a84610c61565b6115ed6101608601517e701c2a27f6e67a591f1ca598c17621b64ad8830430232895ca68fe3dc5854d7f0dc88371d3444a7bbc4f3cb292e69421c549c10b86e8982b67d074006094fe0884610c61565b6101c085015192507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060c087015161032087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060e087015161026087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061010087015161028087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101208701516102a087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101408701516102c087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101608701516102e087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061018087015161030087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506117ad836002600184610c61565b606085015192506117c3836101e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160608601516101808701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb8409925061184783610220860183610bf2565b5050505050565b60006040516101e0830151815260206101e08401015160208201527f1e3b651c96c337f8f6266fadcef22dc97717b5d44b445a5ef799a6cd3cc564a060408201527f10b13ed45e1871ff867a120754de5bf5c1395ad0078891e1b81f284ef6df78ca60608201527f2b57d40b181c33d7331accce5e5b890345b051c33f74e24ab728b18a3f7b473e60808201527f241a20e6fc3bc59485fa2e92365b46bf48742e8fac0b18859306488928cdcf0860a082015261022083015160c08201526020610220840101517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47817f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47030690508060e08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101008301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101208301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6101408301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa6101608301526020826101808460086107d05a03fa825181169350505050919050565b6040516102c08101604052611a2f84610206565b611a3a83828661027f565b611a4381610785565b611a4d838261082a565b611a57818561088d565b611a618185610d07565b611a6b8185610d33565b611a748161184e565b6102c082036040528060005260206000f35b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611aed82611aa4565b810181811067ffffffffffffffff82111715611b0c57611b0b611ab5565b5b80604052505050565b6000611b1f611a86565b9050611b2b8282611ae4565b919050565b600067ffffffffffffffff821115611b4b57611b4a611ab5565b5b611b5482611aa4565b9050602081019050919050565b82818337600083830152505050565b6000611b83611b7e84611b30565b611b15565b905082815260208101848484011115611b9f57611b9e611a9f565b5b611baa848285611b61565b509392505050565b600082601f830112611bc757611bc6611a9a565b5b8135611bd7848260208601611b70565b91505092915050565b600067ffffffffffffffff821115611bfb57611bfa611ab5565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b611c2481611c11565b8114611c2f57600080fd5b50565b600081359050611c4181611c1b565b92915050565b6000611c5a611c5584611be0565b611b15565b90508083825260208201905060208402830185811115611c7d57611c7c611c0c565b5b835b81811015611ca65780611c928882611c32565b845260208401935050602081019050611c7f565b5050509392505050565b600082601f830112611cc557611cc4611a9a565b5b8135611cd5848260208601611c47565b91505092915050565b60008060408385031215611cf557611cf4611a90565b5b600083013567ffffffffffffffff811115611d1357611d12611a95565b5b611d1f85828601611bb2565b925050602083013567ffffffffffffffff811115611d4057611d3f611a95565b5b611d4c85828601611cb0565b9150509250929050565b60008115159050919050565b611d6b81611d56565b82525050565b6000602082019050611d866000830184611d62565b9291505056fea26469706673582212201ba7f68c3e2f4f61e7382b6f72a0fe80914349a958fe8936ea3db47813f5c2b764736f6c63430008180033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DC2 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1E8E1E13 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x1CDE JUMP JUMPDEST PUSH2 0x60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x57 SWAP2 SWAP1 PUSH2 0x1D71 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x1A1B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 DUP5 DUP5 PUSH1 0x0 DUP1 JUMPDEST DUP3 ISZERO PUSH2 0x9C JUMPI DUP3 DUP5 SDIV SWAP2 POP DUP5 DUP3 MUL DUP7 SUB SWAP1 POP DUP5 SWAP6 POP DUP1 SWAP5 POP DUP3 DUP3 MUL DUP5 SUB SWAP1 POP DUP3 SWAP4 POP DUP1 SWAP3 POP PUSH2 0x72 JUMP JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP7 SLT ISZERO PUSH2 0xB9 JUMPI DUP9 DUP7 ADD SWAP6 POP JUMPDEST DUP6 SWAP7 POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x20 DUP5 MUL DUP4 ADD DUP2 MLOAD PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x120 JUMPI DUP2 DUP6 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP5 MLOAD DUP4 MULMOD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xDD JUMP JUMPDEST PUSH2 0x14A PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH2 0x67 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP6 SUB SWAP5 POP PUSH1 0x20 DUP5 SUB SWAP4 POP DUP6 SWAP3 POP JUMPDEST DUP3 DUP5 GT ISZERO PUSH2 0x1C6 JUMPI PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP6 MLOAD DUP4 MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP5 MLOAD DUP4 MULMOD SWAP2 POP DUP1 DUP5 MSTORE PUSH1 0x20 DUP6 SUB SWAP5 POP PUSH1 0x20 DUP5 SUB SWAP4 POP PUSH2 0x15C JUMP JUMPDEST DUP2 DUP5 MSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x203 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH2 0x320 DUP2 MLOAD EQ PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST PUSH2 0x228 PUSH2 0x260 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x236 PUSH2 0x280 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x244 PUSH2 0x2A0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x252 PUSH2 0x2C0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x260 PUSH2 0x2E0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x26E PUSH2 0x300 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x27C PUSH2 0x320 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x2C0 DUP6 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x2E0 DUP6 ADD MSTORE PUSH1 0x20 DUP1 ADD DUP4 ADD MLOAD PUSH2 0x300 DUP6 ADD MSTORE PUSH1 0x40 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x320 DUP6 ADD MSTORE PUSH1 0x60 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x340 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x360 DUP6 ADD MSTORE PUSH1 0xA0 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x380 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xE0 PUSH2 0x2C0 DUP7 ADD KECCAK256 MOD SWAP1 POP DUP1 PUSH1 0x20 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP1 DUP7 ADD KECCAK256 MOD PUSH1 0x40 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 PUSH1 0xE0 DUP6 ADD KECCAK256 MOD PUSH1 0x0 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 PUSH2 0x120 DUP6 ADD KECCAK256 MOD SWAP2 POP DUP2 PUSH1 0x60 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP3 MULMOD PUSH1 0xA0 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP DUP2 PUSH1 0x80 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0x1 DUP5 SUB ADD MOD SWAP2 POP DUP2 PUSH2 0x260 DUP6 ADD MSTORE DUP2 PUSH2 0x280 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xE0 PUSH2 0x260 DUP6 ADD KECCAK256 MOD DUP1 PUSH1 0xC0 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP3 MULMOD SWAP3 POP DUP3 PUSH1 0xE0 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x100 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x120 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x140 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x160 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x80 PUSH2 0x1E0 DUP7 ADD KECCAK256 MOD PUSH2 0x180 DUP7 ADD MSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH1 0x60 DUP7 ADD MLOAD SUB ADD MOD PUSH2 0x8000 MULMOD PUSH2 0x2A0 DUP4 ADD MSTORE PUSH2 0x7EC PUSH1 0x2 PUSH2 0x280 DUP5 ADD PUSH2 0xC8 JUMP JUMPDEST PUSH2 0x260 DUP3 ADD MLOAD PUSH1 0x1 SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 PUSH2 0x2A0 DUP6 ADD MLOAD MULMOD PUSH2 0x2A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD MULMOD DUP4 SUB ADD MOD SWAP1 POP DUP1 PUSH2 0x1A0 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x1A0 DUP7 ADD MLOAD PUSH2 0x320 DUP7 ADD MLOAD ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2C0 DUP7 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x260 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2E0 DUP7 ADD MLOAD MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP3 ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP3 ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x300 DUP6 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP3 MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP6 ADD SUB MOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x1C0 DUP7 ADD MSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP3 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL DUP1 PUSH2 0xBEC JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC2A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC94 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xCC4 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xCFF JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP3 ADD PUSH2 0xD1A PUSH2 0x1E0 DUP4 ADD DUP3 PUSH2 0xB9B JUMP JUMPDEST PUSH2 0xD2E PUSH2 0x180 DUP5 ADD MLOAD PUSH2 0x220 DUP5 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x220 DUP5 ADD PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x260 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xDB6 DUP4 PUSH32 0x73AD9CA0A63BF57AAB7471BE06714E14CB129B3BC1957FB205F02A2DFF20144 PUSH32 0xF0D5954BC5550BB6B8A63158299441A292523E20998BD2EEAF6817B9CF74891 DUP5 PUSH2 0xCCC JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH2 0xE2D DUP4 PUSH32 0x24B75923EF66B5A38313240BF8701E5289F37FF6E54A5D9696C571CD0D7A6F7B PUSH32 0x13F75F7639B17B60C5DC1561CA51E09122443B14FD9B5198A3200CB73C405E74 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x280 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xEA8 DUP4 PUSH32 0xCE90799F564B37F9A7C19587AD4234C46F6AFAD9F4B1FB9277BED47DD9B6A11 PUSH32 0x2BECB27157D1EA8E65712E5A9D3B836536CC95F8FFBE2A9A66259A05B94D8C41 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xF23 DUP4 PUSH32 0x24D590624AA64D73288CEF9C5C68DDFBC43C288BFEC0EA23A65E3D519DEB4B45 PUSH32 0x2FE2B7A5E3301EC2548B1B9FA04DAFE8BDB129027D89D2FDA93C32B2AC1D6153 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0xC0 DUP6 ADD MLOAD SWAP3 POP PUSH2 0xF76 DUP4 PUSH32 0x2AD72EB4319E5CE1F126C3EE2FB7B07FCACC472B06034BC9B7B00FA5C6DB3DD1 PUSH32 0xBBACFFC38B7A2D2938E833AA0B1BEB2EBE94796EE3EEEAA8CDE99E34B70274E DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH2 0x260 DUP7 ADD MLOAD ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x2 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x3 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2A0 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x180 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH2 0x1251 DUP4 PUSH1 0xE0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2C0 DUP6 ADD MLOAD PUSH1 0x20 DUP8 ADD MLOAD MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x260 DUP6 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2E0 DUP6 ADD MLOAD PUSH1 0x20 DUP8 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x300 DUP6 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 SUB MOD SWAP3 POP PUSH2 0x14BB DUP4 PUSH32 0x244C5FC4BD854EE2B3C1B620E013383A9E6DACA6C0BAB14AECD7101ABA922CB6 PUSH32 0x2281748B89DCD5AEAEE8E7B5573D600632E8B7D13619ECA441E770F4862711FF DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x14C9 PUSH2 0x120 DUP6 ADD DUP3 PUSH2 0xBAD JUMP JUMPDEST PUSH1 0x80 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x14DF DUP4 PUSH2 0x160 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 DUP5 MULMOD SWAP3 POP PUSH2 0x1514 DUP4 PUSH2 0x1A0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x1526 PUSH1 0xE0 DUP7 ADD MLOAD PUSH1 0x20 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x1539 PUSH2 0x100 DUP7 ADD MLOAD PUSH1 0x60 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x154C PUSH2 0x120 DUP7 ADD MLOAD PUSH1 0xA0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x159D PUSH2 0x140 DUP7 ADD MLOAD PUSH32 0x14CE1F304C015A19FE72CCDD0C7B1AAAE908E4FAA13142D0D8D108E2EFA497FD PUSH32 0x1DDF2AC14509D3ED88C5114E806890A074E2A3CF08BD6B406CD4E0C1256D6A5A DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x15ED PUSH2 0x160 DUP7 ADD MLOAD PUSH31 0x701C2A27F6E67A591F1CA598C17621B64AD8830430232895CA68FE3DC5854D PUSH32 0xDC88371D3444A7BBC4F3CB292E69421C549C10B86E8982B67D074006094FE08 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x1C0 DUP6 ADD MLOAD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0xC0 DUP8 ADD MLOAD PUSH2 0x320 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0xE0 DUP8 ADD MLOAD PUSH2 0x260 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x100 DUP8 ADD MLOAD PUSH2 0x280 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x120 DUP8 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x140 DUP8 ADD MLOAD PUSH2 0x2C0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x160 DUP8 ADD MLOAD PUSH2 0x2E0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x180 DUP8 ADD MLOAD PUSH2 0x300 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 SUB MOD SWAP3 POP PUSH2 0x17AD DUP4 PUSH1 0x2 PUSH1 0x1 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0x60 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x17C3 DUP4 PUSH2 0x1E0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x60 DUP7 ADD MLOAD PUSH2 0x180 DUP8 ADD MLOAD MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH32 0x2D1BA66F5941DC91017171FA69EC2BD0022A2A2D4115A009A93458FD4E26ECFB DUP5 MULMOD SWAP3 POP PUSH2 0x1847 DUP4 PUSH2 0x220 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x1E0 DUP4 ADD MLOAD DUP2 MSTORE PUSH1 0x20 PUSH2 0x1E0 DUP5 ADD ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x1E3B651C96C337F8F6266FADCEF22DC97717B5D44B445A5EF799A6CD3CC564A0 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x10B13ED45E1871FF867A120754DE5BF5C1395AD0078891E1B81F284EF6DF78CA PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x2B57D40B181C33D7331ACCCE5E5B890345B051C33F74E24AB728B18A3F7B473E PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x241A20E6FC3BC59485FA2E92365B46BF48742E8FAC0B18859306488928CDCF08 PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x220 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x20 PUSH2 0x220 DUP5 ADD ADD MLOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 DUP2 PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD SWAP1 POP DUP1 PUSH1 0xE0 DUP4 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x100 DUP4 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x120 DUP4 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x140 DUP4 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x160 DUP4 ADD MSTORE PUSH1 0x20 DUP3 PUSH2 0x180 DUP5 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL DUP3 MLOAD DUP2 AND SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C0 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x1A2F DUP5 PUSH2 0x206 JUMP JUMPDEST PUSH2 0x1A3A DUP4 DUP3 DUP7 PUSH2 0x27F JUMP JUMPDEST PUSH2 0x1A43 DUP2 PUSH2 0x785 JUMP JUMPDEST PUSH2 0x1A4D DUP4 DUP3 PUSH2 0x82A JUMP JUMPDEST PUSH2 0x1A57 DUP2 DUP6 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x1A61 DUP2 DUP6 PUSH2 0xD07 JUMP JUMPDEST PUSH2 0x1A6B DUP2 DUP6 PUSH2 0xD33 JUMP JUMPDEST PUSH2 0x1A74 DUP2 PUSH2 0x184E JUMP JUMPDEST PUSH2 0x2C0 DUP3 SUB PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1AED DUP3 PUSH2 0x1AA4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1B0C JUMPI PUSH2 0x1B0B PUSH2 0x1AB5 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B1F PUSH2 0x1A86 JUMP JUMPDEST SWAP1 POP PUSH2 0x1B2B DUP3 DUP3 PUSH2 0x1AE4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1B4B JUMPI PUSH2 0x1B4A PUSH2 0x1AB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1B54 DUP3 PUSH2 0x1AA4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B83 PUSH2 0x1B7E DUP5 PUSH2 0x1B30 JUMP JUMPDEST PUSH2 0x1B15 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1B9F JUMPI PUSH2 0x1B9E PUSH2 0x1A9F JUMP JUMPDEST JUMPDEST PUSH2 0x1BAA DUP5 DUP3 DUP6 PUSH2 0x1B61 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1BC7 JUMPI PUSH2 0x1BC6 PUSH2 0x1A9A JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1BD7 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1B70 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1BFB JUMPI PUSH2 0x1BFA PUSH2 0x1AB5 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C24 DUP2 PUSH2 0x1C11 JUMP JUMPDEST DUP2 EQ PUSH2 0x1C2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1C41 DUP2 PUSH2 0x1C1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C5A PUSH2 0x1C55 DUP5 PUSH2 0x1BE0 JUMP JUMPDEST PUSH2 0x1B15 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1C7D JUMPI PUSH2 0x1C7C PUSH2 0x1C0C JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1CA6 JUMPI DUP1 PUSH2 0x1C92 DUP9 DUP3 PUSH2 0x1C32 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1C7F JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1CC5 JUMPI PUSH2 0x1CC4 PUSH2 0x1A9A JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1CD5 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1C47 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1CF5 JUMPI PUSH2 0x1CF4 PUSH2 0x1A90 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D13 JUMPI PUSH2 0x1D12 PUSH2 0x1A95 JUMP JUMPDEST JUMPDEST PUSH2 0x1D1F DUP6 DUP3 DUP7 ADD PUSH2 0x1BB2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D40 JUMPI PUSH2 0x1D3F PUSH2 0x1A95 JUMP JUMPDEST JUMPDEST PUSH2 0x1D4C DUP6 DUP3 DUP7 ADD PUSH2 0x1CB0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D6B DUP2 PUSH2 0x1D56 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D86 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D62 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL 0xA7 0xF6 DUP13 RETURNDATACOPY 0x2F 0x4F PUSH2 0xE738 0x2B PUSH16 0x72A0FE80914349A958FE8936EA3DB478 SGT CREATE2 0xC2 0xB7 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ","sourceMap":"832:23904:8:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@verifyProof_1271":{"entryPoint":96,"id":1271,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":7239,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":7024,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":7344,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":7090,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":7218,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptrt_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":7390,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":7522,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":7537,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":6933,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":6790,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":7136,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":6960,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":7510,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":7185,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":7009,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":6884,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":6837,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":6810,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":7180,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":6815,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":6805,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":6800,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":6820,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_uint256":{"entryPoint":7195,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5761:9","nodeType":"YulBlock","src":"0:5761:9","statements":[{"body":{"nativeSrc":"47:35:9","nodeType":"YulBlock","src":"47:35:9","statements":[{"nativeSrc":"57:19:9","nodeType":"YulAssignment","src":"57:19:9","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:9","nodeType":"YulLiteral","src":"73:2:9","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:9","nodeType":"YulIdentifier","src":"67:5:9"},"nativeSrc":"67:9:9","nodeType":"YulFunctionCall","src":"67:9:9"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:9","nodeType":"YulIdentifier","src":"57:6:9"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:9","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:9","nodeType":"YulTypedName","src":"40:6:9","type":""}],"src":"7:75:9"},{"body":{"nativeSrc":"177:28:9","nodeType":"YulBlock","src":"177:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:9","nodeType":"YulLiteral","src":"194:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:9","nodeType":"YulLiteral","src":"197:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:9","nodeType":"YulIdentifier","src":"187:6:9"},"nativeSrc":"187:12:9","nodeType":"YulFunctionCall","src":"187:12:9"},"nativeSrc":"187:12:9","nodeType":"YulExpressionStatement","src":"187:12:9"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:9","nodeType":"YulFunctionDefinition","src":"88:117:9"},{"body":{"nativeSrc":"300:28:9","nodeType":"YulBlock","src":"300:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:9","nodeType":"YulLiteral","src":"317:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:9","nodeType":"YulLiteral","src":"320:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:9","nodeType":"YulIdentifier","src":"310:6:9"},"nativeSrc":"310:12:9","nodeType":"YulFunctionCall","src":"310:12:9"},"nativeSrc":"310:12:9","nodeType":"YulExpressionStatement","src":"310:12:9"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:9","nodeType":"YulFunctionDefinition","src":"211:117:9"},{"body":{"nativeSrc":"423:28:9","nodeType":"YulBlock","src":"423:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:9","nodeType":"YulLiteral","src":"440:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:9","nodeType":"YulLiteral","src":"443:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:9","nodeType":"YulIdentifier","src":"433:6:9"},"nativeSrc":"433:12:9","nodeType":"YulFunctionCall","src":"433:12:9"},"nativeSrc":"433:12:9","nodeType":"YulExpressionStatement","src":"433:12:9"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:9","nodeType":"YulFunctionDefinition","src":"334:117:9"},{"body":{"nativeSrc":"546:28:9","nodeType":"YulBlock","src":"546:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:9","nodeType":"YulLiteral","src":"563:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:9","nodeType":"YulLiteral","src":"566:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:9","nodeType":"YulIdentifier","src":"556:6:9"},"nativeSrc":"556:12:9","nodeType":"YulFunctionCall","src":"556:12:9"},"nativeSrc":"556:12:9","nodeType":"YulExpressionStatement","src":"556:12:9"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"457:117:9","nodeType":"YulFunctionDefinition","src":"457:117:9"},{"body":{"nativeSrc":"628:54:9","nodeType":"YulBlock","src":"628:54:9","statements":[{"nativeSrc":"638:38:9","nodeType":"YulAssignment","src":"638:38:9","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:9","nodeType":"YulIdentifier","src":"656:5:9"},{"kind":"number","nativeSrc":"663:2:9","nodeType":"YulLiteral","src":"663:2:9","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"652:3:9","nodeType":"YulIdentifier","src":"652:3:9"},"nativeSrc":"652:14:9","nodeType":"YulFunctionCall","src":"652:14:9"},{"arguments":[{"kind":"number","nativeSrc":"672:2:9","nodeType":"YulLiteral","src":"672:2:9","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"668:3:9","nodeType":"YulIdentifier","src":"668:3:9"},"nativeSrc":"668:7:9","nodeType":"YulFunctionCall","src":"668:7:9"}],"functionName":{"name":"and","nativeSrc":"648:3:9","nodeType":"YulIdentifier","src":"648:3:9"},"nativeSrc":"648:28:9","nodeType":"YulFunctionCall","src":"648:28:9"},"variableNames":[{"name":"result","nativeSrc":"638:6:9","nodeType":"YulIdentifier","src":"638:6:9"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"580:102:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"611:5:9","nodeType":"YulTypedName","src":"611:5:9","type":""}],"returnVariables":[{"name":"result","nativeSrc":"621:6:9","nodeType":"YulTypedName","src":"621:6:9","type":""}],"src":"580:102:9"},{"body":{"nativeSrc":"716:152:9","nodeType":"YulBlock","src":"716:152:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"733:1:9","nodeType":"YulLiteral","src":"733:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"736:77:9","nodeType":"YulLiteral","src":"736:77:9","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"726:6:9","nodeType":"YulIdentifier","src":"726:6:9"},"nativeSrc":"726:88:9","nodeType":"YulFunctionCall","src":"726:88:9"},"nativeSrc":"726:88:9","nodeType":"YulExpressionStatement","src":"726:88:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"830:1:9","nodeType":"YulLiteral","src":"830:1:9","type":"","value":"4"},{"kind":"number","nativeSrc":"833:4:9","nodeType":"YulLiteral","src":"833:4:9","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"823:6:9","nodeType":"YulIdentifier","src":"823:6:9"},"nativeSrc":"823:15:9","nodeType":"YulFunctionCall","src":"823:15:9"},"nativeSrc":"823:15:9","nodeType":"YulExpressionStatement","src":"823:15:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"854:1:9","nodeType":"YulLiteral","src":"854:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"857:4:9","nodeType":"YulLiteral","src":"857:4:9","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"847:6:9","nodeType":"YulIdentifier","src":"847:6:9"},"nativeSrc":"847:15:9","nodeType":"YulFunctionCall","src":"847:15:9"},"nativeSrc":"847:15:9","nodeType":"YulExpressionStatement","src":"847:15:9"}]},"name":"panic_error_0x41","nativeSrc":"688:180:9","nodeType":"YulFunctionDefinition","src":"688:180:9"},{"body":{"nativeSrc":"917:238:9","nodeType":"YulBlock","src":"917:238:9","statements":[{"nativeSrc":"927:58:9","nodeType":"YulVariableDeclaration","src":"927:58:9","value":{"arguments":[{"name":"memPtr","nativeSrc":"949:6:9","nodeType":"YulIdentifier","src":"949:6:9"},{"arguments":[{"name":"size","nativeSrc":"979:4:9","nodeType":"YulIdentifier","src":"979:4:9"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"957:21:9","nodeType":"YulIdentifier","src":"957:21:9"},"nativeSrc":"957:27:9","nodeType":"YulFunctionCall","src":"957:27:9"}],"functionName":{"name":"add","nativeSrc":"945:3:9","nodeType":"YulIdentifier","src":"945:3:9"},"nativeSrc":"945:40:9","nodeType":"YulFunctionCall","src":"945:40:9"},"variables":[{"name":"newFreePtr","nativeSrc":"931:10:9","nodeType":"YulTypedName","src":"931:10:9","type":""}]},{"body":{"nativeSrc":"1096:22:9","nodeType":"YulBlock","src":"1096:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1098:16:9","nodeType":"YulIdentifier","src":"1098:16:9"},"nativeSrc":"1098:18:9","nodeType":"YulFunctionCall","src":"1098:18:9"},"nativeSrc":"1098:18:9","nodeType":"YulExpressionStatement","src":"1098:18:9"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1039:10:9","nodeType":"YulIdentifier","src":"1039:10:9"},{"kind":"number","nativeSrc":"1051:18:9","nodeType":"YulLiteral","src":"1051:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1036:2:9","nodeType":"YulIdentifier","src":"1036:2:9"},"nativeSrc":"1036:34:9","nodeType":"YulFunctionCall","src":"1036:34:9"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1075:10:9","nodeType":"YulIdentifier","src":"1075:10:9"},{"name":"memPtr","nativeSrc":"1087:6:9","nodeType":"YulIdentifier","src":"1087:6:9"}],"functionName":{"name":"lt","nativeSrc":"1072:2:9","nodeType":"YulIdentifier","src":"1072:2:9"},"nativeSrc":"1072:22:9","nodeType":"YulFunctionCall","src":"1072:22:9"}],"functionName":{"name":"or","nativeSrc":"1033:2:9","nodeType":"YulIdentifier","src":"1033:2:9"},"nativeSrc":"1033:62:9","nodeType":"YulFunctionCall","src":"1033:62:9"},"nativeSrc":"1030:88:9","nodeType":"YulIf","src":"1030:88:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1134:2:9","nodeType":"YulLiteral","src":"1134:2:9","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1138:10:9","nodeType":"YulIdentifier","src":"1138:10:9"}],"functionName":{"name":"mstore","nativeSrc":"1127:6:9","nodeType":"YulIdentifier","src":"1127:6:9"},"nativeSrc":"1127:22:9","nodeType":"YulFunctionCall","src":"1127:22:9"},"nativeSrc":"1127:22:9","nodeType":"YulExpressionStatement","src":"1127:22:9"}]},"name":"finalize_allocation","nativeSrc":"874:281:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"903:6:9","nodeType":"YulTypedName","src":"903:6:9","type":""},{"name":"size","nativeSrc":"911:4:9","nodeType":"YulTypedName","src":"911:4:9","type":""}],"src":"874:281:9"},{"body":{"nativeSrc":"1202:88:9","nodeType":"YulBlock","src":"1202:88:9","statements":[{"nativeSrc":"1212:30:9","nodeType":"YulAssignment","src":"1212:30:9","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1222:18:9","nodeType":"YulIdentifier","src":"1222:18:9"},"nativeSrc":"1222:20:9","nodeType":"YulFunctionCall","src":"1222:20:9"},"variableNames":[{"name":"memPtr","nativeSrc":"1212:6:9","nodeType":"YulIdentifier","src":"1212:6:9"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1271:6:9","nodeType":"YulIdentifier","src":"1271:6:9"},{"name":"size","nativeSrc":"1279:4:9","nodeType":"YulIdentifier","src":"1279:4:9"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1251:19:9","nodeType":"YulIdentifier","src":"1251:19:9"},"nativeSrc":"1251:33:9","nodeType":"YulFunctionCall","src":"1251:33:9"},"nativeSrc":"1251:33:9","nodeType":"YulExpressionStatement","src":"1251:33:9"}]},"name":"allocate_memory","nativeSrc":"1161:129:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1186:4:9","nodeType":"YulTypedName","src":"1186:4:9","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1195:6:9","nodeType":"YulTypedName","src":"1195:6:9","type":""}],"src":"1161:129:9"},{"body":{"nativeSrc":"1362:241:9","nodeType":"YulBlock","src":"1362:241:9","statements":[{"body":{"nativeSrc":"1467:22:9","nodeType":"YulBlock","src":"1467:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1469:16:9","nodeType":"YulIdentifier","src":"1469:16:9"},"nativeSrc":"1469:18:9","nodeType":"YulFunctionCall","src":"1469:18:9"},"nativeSrc":"1469:18:9","nodeType":"YulExpressionStatement","src":"1469:18:9"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1439:6:9","nodeType":"YulIdentifier","src":"1439:6:9"},{"kind":"number","nativeSrc":"1447:18:9","nodeType":"YulLiteral","src":"1447:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1436:2:9","nodeType":"YulIdentifier","src":"1436:2:9"},"nativeSrc":"1436:30:9","nodeType":"YulFunctionCall","src":"1436:30:9"},"nativeSrc":"1433:56:9","nodeType":"YulIf","src":"1433:56:9"},{"nativeSrc":"1499:37:9","nodeType":"YulAssignment","src":"1499:37:9","value":{"arguments":[{"name":"length","nativeSrc":"1529:6:9","nodeType":"YulIdentifier","src":"1529:6:9"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1507:21:9","nodeType":"YulIdentifier","src":"1507:21:9"},"nativeSrc":"1507:29:9","nodeType":"YulFunctionCall","src":"1507:29:9"},"variableNames":[{"name":"size","nativeSrc":"1499:4:9","nodeType":"YulIdentifier","src":"1499:4:9"}]},{"nativeSrc":"1573:23:9","nodeType":"YulAssignment","src":"1573:23:9","value":{"arguments":[{"name":"size","nativeSrc":"1585:4:9","nodeType":"YulIdentifier","src":"1585:4:9"},{"kind":"number","nativeSrc":"1591:4:9","nodeType":"YulLiteral","src":"1591:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1581:3:9","nodeType":"YulIdentifier","src":"1581:3:9"},"nativeSrc":"1581:15:9","nodeType":"YulFunctionCall","src":"1581:15:9"},"variableNames":[{"name":"size","nativeSrc":"1573:4:9","nodeType":"YulIdentifier","src":"1573:4:9"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1296:307:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1346:6:9","nodeType":"YulTypedName","src":"1346:6:9","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1357:4:9","nodeType":"YulTypedName","src":"1357:4:9","type":""}],"src":"1296:307:9"},{"body":{"nativeSrc":"1673:82:9","nodeType":"YulBlock","src":"1673:82:9","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1696:3:9","nodeType":"YulIdentifier","src":"1696:3:9"},{"name":"src","nativeSrc":"1701:3:9","nodeType":"YulIdentifier","src":"1701:3:9"},{"name":"length","nativeSrc":"1706:6:9","nodeType":"YulIdentifier","src":"1706:6:9"}],"functionName":{"name":"calldatacopy","nativeSrc":"1683:12:9","nodeType":"YulIdentifier","src":"1683:12:9"},"nativeSrc":"1683:30:9","nodeType":"YulFunctionCall","src":"1683:30:9"},"nativeSrc":"1683:30:9","nodeType":"YulExpressionStatement","src":"1683:30:9"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1733:3:9","nodeType":"YulIdentifier","src":"1733:3:9"},{"name":"length","nativeSrc":"1738:6:9","nodeType":"YulIdentifier","src":"1738:6:9"}],"functionName":{"name":"add","nativeSrc":"1729:3:9","nodeType":"YulIdentifier","src":"1729:3:9"},"nativeSrc":"1729:16:9","nodeType":"YulFunctionCall","src":"1729:16:9"},{"kind":"number","nativeSrc":"1747:1:9","nodeType":"YulLiteral","src":"1747:1:9","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1722:6:9","nodeType":"YulIdentifier","src":"1722:6:9"},"nativeSrc":"1722:27:9","nodeType":"YulFunctionCall","src":"1722:27:9"},"nativeSrc":"1722:27:9","nodeType":"YulExpressionStatement","src":"1722:27:9"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"1609:146:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1655:3:9","nodeType":"YulTypedName","src":"1655:3:9","type":""},{"name":"dst","nativeSrc":"1660:3:9","nodeType":"YulTypedName","src":"1660:3:9","type":""},{"name":"length","nativeSrc":"1665:6:9","nodeType":"YulTypedName","src":"1665:6:9","type":""}],"src":"1609:146:9"},{"body":{"nativeSrc":"1844:340:9","nodeType":"YulBlock","src":"1844:340:9","statements":[{"nativeSrc":"1854:74:9","nodeType":"YulAssignment","src":"1854:74:9","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1920:6:9","nodeType":"YulIdentifier","src":"1920:6:9"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1879:40:9","nodeType":"YulIdentifier","src":"1879:40:9"},"nativeSrc":"1879:48:9","nodeType":"YulFunctionCall","src":"1879:48:9"}],"functionName":{"name":"allocate_memory","nativeSrc":"1863:15:9","nodeType":"YulIdentifier","src":"1863:15:9"},"nativeSrc":"1863:65:9","nodeType":"YulFunctionCall","src":"1863:65:9"},"variableNames":[{"name":"array","nativeSrc":"1854:5:9","nodeType":"YulIdentifier","src":"1854:5:9"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"1944:5:9","nodeType":"YulIdentifier","src":"1944:5:9"},{"name":"length","nativeSrc":"1951:6:9","nodeType":"YulIdentifier","src":"1951:6:9"}],"functionName":{"name":"mstore","nativeSrc":"1937:6:9","nodeType":"YulIdentifier","src":"1937:6:9"},"nativeSrc":"1937:21:9","nodeType":"YulFunctionCall","src":"1937:21:9"},"nativeSrc":"1937:21:9","nodeType":"YulExpressionStatement","src":"1937:21:9"},{"nativeSrc":"1967:27:9","nodeType":"YulVariableDeclaration","src":"1967:27:9","value":{"arguments":[{"name":"array","nativeSrc":"1982:5:9","nodeType":"YulIdentifier","src":"1982:5:9"},{"kind":"number","nativeSrc":"1989:4:9","nodeType":"YulLiteral","src":"1989:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1978:3:9","nodeType":"YulIdentifier","src":"1978:3:9"},"nativeSrc":"1978:16:9","nodeType":"YulFunctionCall","src":"1978:16:9"},"variables":[{"name":"dst","nativeSrc":"1971:3:9","nodeType":"YulTypedName","src":"1971:3:9","type":""}]},{"body":{"nativeSrc":"2032:83:9","nodeType":"YulBlock","src":"2032:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2034:77:9","nodeType":"YulIdentifier","src":"2034:77:9"},"nativeSrc":"2034:79:9","nodeType":"YulFunctionCall","src":"2034:79:9"},"nativeSrc":"2034:79:9","nodeType":"YulExpressionStatement","src":"2034:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2013:3:9","nodeType":"YulIdentifier","src":"2013:3:9"},{"name":"length","nativeSrc":"2018:6:9","nodeType":"YulIdentifier","src":"2018:6:9"}],"functionName":{"name":"add","nativeSrc":"2009:3:9","nodeType":"YulIdentifier","src":"2009:3:9"},"nativeSrc":"2009:16:9","nodeType":"YulFunctionCall","src":"2009:16:9"},{"name":"end","nativeSrc":"2027:3:9","nodeType":"YulIdentifier","src":"2027:3:9"}],"functionName":{"name":"gt","nativeSrc":"2006:2:9","nodeType":"YulIdentifier","src":"2006:2:9"},"nativeSrc":"2006:25:9","nodeType":"YulFunctionCall","src":"2006:25:9"},"nativeSrc":"2003:112:9","nodeType":"YulIf","src":"2003:112:9"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2161:3:9","nodeType":"YulIdentifier","src":"2161:3:9"},{"name":"dst","nativeSrc":"2166:3:9","nodeType":"YulIdentifier","src":"2166:3:9"},{"name":"length","nativeSrc":"2171:6:9","nodeType":"YulIdentifier","src":"2171:6:9"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"2124:36:9","nodeType":"YulIdentifier","src":"2124:36:9"},"nativeSrc":"2124:54:9","nodeType":"YulFunctionCall","src":"2124:54:9"},"nativeSrc":"2124:54:9","nodeType":"YulExpressionStatement","src":"2124:54:9"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"1761:423:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1817:3:9","nodeType":"YulTypedName","src":"1817:3:9","type":""},{"name":"length","nativeSrc":"1822:6:9","nodeType":"YulTypedName","src":"1822:6:9","type":""},{"name":"end","nativeSrc":"1830:3:9","nodeType":"YulTypedName","src":"1830:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1838:5:9","nodeType":"YulTypedName","src":"1838:5:9","type":""}],"src":"1761:423:9"},{"body":{"nativeSrc":"2264:277:9","nodeType":"YulBlock","src":"2264:277:9","statements":[{"body":{"nativeSrc":"2313:83:9","nodeType":"YulBlock","src":"2313:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2315:77:9","nodeType":"YulIdentifier","src":"2315:77:9"},"nativeSrc":"2315:79:9","nodeType":"YulFunctionCall","src":"2315:79:9"},"nativeSrc":"2315:79:9","nodeType":"YulExpressionStatement","src":"2315:79:9"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2292:6:9","nodeType":"YulIdentifier","src":"2292:6:9"},{"kind":"number","nativeSrc":"2300:4:9","nodeType":"YulLiteral","src":"2300:4:9","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2288:3:9","nodeType":"YulIdentifier","src":"2288:3:9"},"nativeSrc":"2288:17:9","nodeType":"YulFunctionCall","src":"2288:17:9"},{"name":"end","nativeSrc":"2307:3:9","nodeType":"YulIdentifier","src":"2307:3:9"}],"functionName":{"name":"slt","nativeSrc":"2284:3:9","nodeType":"YulIdentifier","src":"2284:3:9"},"nativeSrc":"2284:27:9","nodeType":"YulFunctionCall","src":"2284:27:9"}],"functionName":{"name":"iszero","nativeSrc":"2277:6:9","nodeType":"YulIdentifier","src":"2277:6:9"},"nativeSrc":"2277:35:9","nodeType":"YulFunctionCall","src":"2277:35:9"},"nativeSrc":"2274:122:9","nodeType":"YulIf","src":"2274:122:9"},{"nativeSrc":"2405:34:9","nodeType":"YulVariableDeclaration","src":"2405:34:9","value":{"arguments":[{"name":"offset","nativeSrc":"2432:6:9","nodeType":"YulIdentifier","src":"2432:6:9"}],"functionName":{"name":"calldataload","nativeSrc":"2419:12:9","nodeType":"YulIdentifier","src":"2419:12:9"},"nativeSrc":"2419:20:9","nodeType":"YulFunctionCall","src":"2419:20:9"},"variables":[{"name":"length","nativeSrc":"2409:6:9","nodeType":"YulTypedName","src":"2409:6:9","type":""}]},{"nativeSrc":"2448:87:9","nodeType":"YulAssignment","src":"2448:87:9","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2508:6:9","nodeType":"YulIdentifier","src":"2508:6:9"},{"kind":"number","nativeSrc":"2516:4:9","nodeType":"YulLiteral","src":"2516:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2504:3:9","nodeType":"YulIdentifier","src":"2504:3:9"},"nativeSrc":"2504:17:9","nodeType":"YulFunctionCall","src":"2504:17:9"},{"name":"length","nativeSrc":"2523:6:9","nodeType":"YulIdentifier","src":"2523:6:9"},{"name":"end","nativeSrc":"2531:3:9","nodeType":"YulIdentifier","src":"2531:3:9"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"2457:46:9","nodeType":"YulIdentifier","src":"2457:46:9"},"nativeSrc":"2457:78:9","nodeType":"YulFunctionCall","src":"2457:78:9"},"variableNames":[{"name":"array","nativeSrc":"2448:5:9","nodeType":"YulIdentifier","src":"2448:5:9"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"2203:338:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2242:6:9","nodeType":"YulTypedName","src":"2242:6:9","type":""},{"name":"end","nativeSrc":"2250:3:9","nodeType":"YulTypedName","src":"2250:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2258:5:9","nodeType":"YulTypedName","src":"2258:5:9","type":""}],"src":"2203:338:9"},{"body":{"nativeSrc":"2629:229:9","nodeType":"YulBlock","src":"2629:229:9","statements":[{"body":{"nativeSrc":"2734:22:9","nodeType":"YulBlock","src":"2734:22:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2736:16:9","nodeType":"YulIdentifier","src":"2736:16:9"},"nativeSrc":"2736:18:9","nodeType":"YulFunctionCall","src":"2736:18:9"},"nativeSrc":"2736:18:9","nodeType":"YulExpressionStatement","src":"2736:18:9"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2706:6:9","nodeType":"YulIdentifier","src":"2706:6:9"},{"kind":"number","nativeSrc":"2714:18:9","nodeType":"YulLiteral","src":"2714:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2703:2:9","nodeType":"YulIdentifier","src":"2703:2:9"},"nativeSrc":"2703:30:9","nodeType":"YulFunctionCall","src":"2703:30:9"},"nativeSrc":"2700:56:9","nodeType":"YulIf","src":"2700:56:9"},{"nativeSrc":"2766:25:9","nodeType":"YulAssignment","src":"2766:25:9","value":{"arguments":[{"name":"length","nativeSrc":"2778:6:9","nodeType":"YulIdentifier","src":"2778:6:9"},{"kind":"number","nativeSrc":"2786:4:9","nodeType":"YulLiteral","src":"2786:4:9","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"2774:3:9","nodeType":"YulIdentifier","src":"2774:3:9"},"nativeSrc":"2774:17:9","nodeType":"YulFunctionCall","src":"2774:17:9"},"variableNames":[{"name":"size","nativeSrc":"2766:4:9","nodeType":"YulIdentifier","src":"2766:4:9"}]},{"nativeSrc":"2828:23:9","nodeType":"YulAssignment","src":"2828:23:9","value":{"arguments":[{"name":"size","nativeSrc":"2840:4:9","nodeType":"YulIdentifier","src":"2840:4:9"},{"kind":"number","nativeSrc":"2846:4:9","nodeType":"YulLiteral","src":"2846:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2836:3:9","nodeType":"YulIdentifier","src":"2836:3:9"},"nativeSrc":"2836:15:9","nodeType":"YulFunctionCall","src":"2836:15:9"},"variableNames":[{"name":"size","nativeSrc":"2828:4:9","nodeType":"YulIdentifier","src":"2828:4:9"}]}]},"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"2547:311:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"2613:6:9","nodeType":"YulTypedName","src":"2613:6:9","type":""}],"returnVariables":[{"name":"size","nativeSrc":"2624:4:9","nodeType":"YulTypedName","src":"2624:4:9","type":""}],"src":"2547:311:9"},{"body":{"nativeSrc":"2953:28:9","nodeType":"YulBlock","src":"2953:28:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2970:1:9","nodeType":"YulLiteral","src":"2970:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"2973:1:9","nodeType":"YulLiteral","src":"2973:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2963:6:9","nodeType":"YulIdentifier","src":"2963:6:9"},"nativeSrc":"2963:12:9","nodeType":"YulFunctionCall","src":"2963:12:9"},"nativeSrc":"2963:12:9","nodeType":"YulExpressionStatement","src":"2963:12:9"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2864:117:9","nodeType":"YulFunctionDefinition","src":"2864:117:9"},{"body":{"nativeSrc":"3032:32:9","nodeType":"YulBlock","src":"3032:32:9","statements":[{"nativeSrc":"3042:16:9","nodeType":"YulAssignment","src":"3042:16:9","value":{"name":"value","nativeSrc":"3053:5:9","nodeType":"YulIdentifier","src":"3053:5:9"},"variableNames":[{"name":"cleaned","nativeSrc":"3042:7:9","nodeType":"YulIdentifier","src":"3042:7:9"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2987:77:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3014:5:9","nodeType":"YulTypedName","src":"3014:5:9","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3024:7:9","nodeType":"YulTypedName","src":"3024:7:9","type":""}],"src":"2987:77:9"},{"body":{"nativeSrc":"3113:79:9","nodeType":"YulBlock","src":"3113:79:9","statements":[{"body":{"nativeSrc":"3170:16:9","nodeType":"YulBlock","src":"3170:16:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3179:1:9","nodeType":"YulLiteral","src":"3179:1:9","type":"","value":"0"},{"kind":"number","nativeSrc":"3182:1:9","nodeType":"YulLiteral","src":"3182:1:9","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3172:6:9","nodeType":"YulIdentifier","src":"3172:6:9"},"nativeSrc":"3172:12:9","nodeType":"YulFunctionCall","src":"3172:12:9"},"nativeSrc":"3172:12:9","nodeType":"YulExpressionStatement","src":"3172:12:9"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3136:5:9","nodeType":"YulIdentifier","src":"3136:5:9"},{"arguments":[{"name":"value","nativeSrc":"3161:5:9","nodeType":"YulIdentifier","src":"3161:5:9"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3143:17:9","nodeType":"YulIdentifier","src":"3143:17:9"},"nativeSrc":"3143:24:9","nodeType":"YulFunctionCall","src":"3143:24:9"}],"functionName":{"name":"eq","nativeSrc":"3133:2:9","nodeType":"YulIdentifier","src":"3133:2:9"},"nativeSrc":"3133:35:9","nodeType":"YulFunctionCall","src":"3133:35:9"}],"functionName":{"name":"iszero","nativeSrc":"3126:6:9","nodeType":"YulIdentifier","src":"3126:6:9"},"nativeSrc":"3126:43:9","nodeType":"YulFunctionCall","src":"3126:43:9"},"nativeSrc":"3123:63:9","nodeType":"YulIf","src":"3123:63:9"}]},"name":"validator_revert_t_uint256","nativeSrc":"3070:122:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3106:5:9","nodeType":"YulTypedName","src":"3106:5:9","type":""}],"src":"3070:122:9"},{"body":{"nativeSrc":"3250:87:9","nodeType":"YulBlock","src":"3250:87:9","statements":[{"nativeSrc":"3260:29:9","nodeType":"YulAssignment","src":"3260:29:9","value":{"arguments":[{"name":"offset","nativeSrc":"3282:6:9","nodeType":"YulIdentifier","src":"3282:6:9"}],"functionName":{"name":"calldataload","nativeSrc":"3269:12:9","nodeType":"YulIdentifier","src":"3269:12:9"},"nativeSrc":"3269:20:9","nodeType":"YulFunctionCall","src":"3269:20:9"},"variableNames":[{"name":"value","nativeSrc":"3260:5:9","nodeType":"YulIdentifier","src":"3260:5:9"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3325:5:9","nodeType":"YulIdentifier","src":"3325:5:9"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3298:26:9","nodeType":"YulIdentifier","src":"3298:26:9"},"nativeSrc":"3298:33:9","nodeType":"YulFunctionCall","src":"3298:33:9"},"nativeSrc":"3298:33:9","nodeType":"YulExpressionStatement","src":"3298:33:9"}]},"name":"abi_decode_t_uint256","nativeSrc":"3198:139:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3228:6:9","nodeType":"YulTypedName","src":"3228:6:9","type":""},{"name":"end","nativeSrc":"3236:3:9","nodeType":"YulTypedName","src":"3236:3:9","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3244:5:9","nodeType":"YulTypedName","src":"3244:5:9","type":""}],"src":"3198:139:9"},{"body":{"nativeSrc":"3462:608:9","nodeType":"YulBlock","src":"3462:608:9","statements":[{"nativeSrc":"3472:90:9","nodeType":"YulAssignment","src":"3472:90:9","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3554:6:9","nodeType":"YulIdentifier","src":"3554:6:9"}],"functionName":{"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"3497:56:9","nodeType":"YulIdentifier","src":"3497:56:9"},"nativeSrc":"3497:64:9","nodeType":"YulFunctionCall","src":"3497:64:9"}],"functionName":{"name":"allocate_memory","nativeSrc":"3481:15:9","nodeType":"YulIdentifier","src":"3481:15:9"},"nativeSrc":"3481:81:9","nodeType":"YulFunctionCall","src":"3481:81:9"},"variableNames":[{"name":"array","nativeSrc":"3472:5:9","nodeType":"YulIdentifier","src":"3472:5:9"}]},{"nativeSrc":"3571:16:9","nodeType":"YulVariableDeclaration","src":"3571:16:9","value":{"name":"array","nativeSrc":"3582:5:9","nodeType":"YulIdentifier","src":"3582:5:9"},"variables":[{"name":"dst","nativeSrc":"3575:3:9","nodeType":"YulTypedName","src":"3575:3:9","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"3604:5:9","nodeType":"YulIdentifier","src":"3604:5:9"},{"name":"length","nativeSrc":"3611:6:9","nodeType":"YulIdentifier","src":"3611:6:9"}],"functionName":{"name":"mstore","nativeSrc":"3597:6:9","nodeType":"YulIdentifier","src":"3597:6:9"},"nativeSrc":"3597:21:9","nodeType":"YulFunctionCall","src":"3597:21:9"},"nativeSrc":"3597:21:9","nodeType":"YulExpressionStatement","src":"3597:21:9"},{"nativeSrc":"3627:23:9","nodeType":"YulAssignment","src":"3627:23:9","value":{"arguments":[{"name":"array","nativeSrc":"3638:5:9","nodeType":"YulIdentifier","src":"3638:5:9"},{"kind":"number","nativeSrc":"3645:4:9","nodeType":"YulLiteral","src":"3645:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3634:3:9","nodeType":"YulIdentifier","src":"3634:3:9"},"nativeSrc":"3634:16:9","nodeType":"YulFunctionCall","src":"3634:16:9"},"variableNames":[{"name":"dst","nativeSrc":"3627:3:9","nodeType":"YulIdentifier","src":"3627:3:9"}]},{"nativeSrc":"3660:44:9","nodeType":"YulVariableDeclaration","src":"3660:44:9","value":{"arguments":[{"name":"offset","nativeSrc":"3678:6:9","nodeType":"YulIdentifier","src":"3678:6:9"},{"arguments":[{"name":"length","nativeSrc":"3690:6:9","nodeType":"YulIdentifier","src":"3690:6:9"},{"kind":"number","nativeSrc":"3698:4:9","nodeType":"YulLiteral","src":"3698:4:9","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"3686:3:9","nodeType":"YulIdentifier","src":"3686:3:9"},"nativeSrc":"3686:17:9","nodeType":"YulFunctionCall","src":"3686:17:9"}],"functionName":{"name":"add","nativeSrc":"3674:3:9","nodeType":"YulIdentifier","src":"3674:3:9"},"nativeSrc":"3674:30:9","nodeType":"YulFunctionCall","src":"3674:30:9"},"variables":[{"name":"srcEnd","nativeSrc":"3664:6:9","nodeType":"YulTypedName","src":"3664:6:9","type":""}]},{"body":{"nativeSrc":"3732:103:9","nodeType":"YulBlock","src":"3732:103:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3746:77:9","nodeType":"YulIdentifier","src":"3746:77:9"},"nativeSrc":"3746:79:9","nodeType":"YulFunctionCall","src":"3746:79:9"},"nativeSrc":"3746:79:9","nodeType":"YulExpressionStatement","src":"3746:79:9"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"3719:6:9","nodeType":"YulIdentifier","src":"3719:6:9"},{"name":"end","nativeSrc":"3727:3:9","nodeType":"YulIdentifier","src":"3727:3:9"}],"functionName":{"name":"gt","nativeSrc":"3716:2:9","nodeType":"YulIdentifier","src":"3716:2:9"},"nativeSrc":"3716:15:9","nodeType":"YulFunctionCall","src":"3716:15:9"},"nativeSrc":"3713:122:9","nodeType":"YulIf","src":"3713:122:9"},{"body":{"nativeSrc":"3920:144:9","nodeType":"YulBlock","src":"3920:144:9","statements":[{"nativeSrc":"3935:21:9","nodeType":"YulVariableDeclaration","src":"3935:21:9","value":{"name":"src","nativeSrc":"3953:3:9","nodeType":"YulIdentifier","src":"3953:3:9"},"variables":[{"name":"elementPos","nativeSrc":"3939:10:9","nodeType":"YulTypedName","src":"3939:10:9","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"3977:3:9","nodeType":"YulIdentifier","src":"3977:3:9"},{"arguments":[{"name":"elementPos","nativeSrc":"4003:10:9","nodeType":"YulIdentifier","src":"4003:10:9"},{"name":"end","nativeSrc":"4015:3:9","nodeType":"YulIdentifier","src":"4015:3:9"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3982:20:9","nodeType":"YulIdentifier","src":"3982:20:9"},"nativeSrc":"3982:37:9","nodeType":"YulFunctionCall","src":"3982:37:9"}],"functionName":{"name":"mstore","nativeSrc":"3970:6:9","nodeType":"YulIdentifier","src":"3970:6:9"},"nativeSrc":"3970:50:9","nodeType":"YulFunctionCall","src":"3970:50:9"},"nativeSrc":"3970:50:9","nodeType":"YulExpressionStatement","src":"3970:50:9"},{"nativeSrc":"4033:21:9","nodeType":"YulAssignment","src":"4033:21:9","value":{"arguments":[{"name":"dst","nativeSrc":"4044:3:9","nodeType":"YulIdentifier","src":"4044:3:9"},{"kind":"number","nativeSrc":"4049:4:9","nodeType":"YulLiteral","src":"4049:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4040:3:9","nodeType":"YulIdentifier","src":"4040:3:9"},"nativeSrc":"4040:14:9","nodeType":"YulFunctionCall","src":"4040:14:9"},"variableNames":[{"name":"dst","nativeSrc":"4033:3:9","nodeType":"YulIdentifier","src":"4033:3:9"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"3873:3:9","nodeType":"YulIdentifier","src":"3873:3:9"},{"name":"srcEnd","nativeSrc":"3878:6:9","nodeType":"YulIdentifier","src":"3878:6:9"}],"functionName":{"name":"lt","nativeSrc":"3870:2:9","nodeType":"YulIdentifier","src":"3870:2:9"},"nativeSrc":"3870:15:9","nodeType":"YulFunctionCall","src":"3870:15:9"},"nativeSrc":"3844:220:9","nodeType":"YulForLoop","post":{"nativeSrc":"3886:25:9","nodeType":"YulBlock","src":"3886:25:9","statements":[{"nativeSrc":"3888:21:9","nodeType":"YulAssignment","src":"3888:21:9","value":{"arguments":[{"name":"src","nativeSrc":"3899:3:9","nodeType":"YulIdentifier","src":"3899:3:9"},{"kind":"number","nativeSrc":"3904:4:9","nodeType":"YulLiteral","src":"3904:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3895:3:9","nodeType":"YulIdentifier","src":"3895:3:9"},"nativeSrc":"3895:14:9","nodeType":"YulFunctionCall","src":"3895:14:9"},"variableNames":[{"name":"src","nativeSrc":"3888:3:9","nodeType":"YulIdentifier","src":"3888:3:9"}]}]},"pre":{"nativeSrc":"3848:21:9","nodeType":"YulBlock","src":"3848:21:9","statements":[{"nativeSrc":"3850:17:9","nodeType":"YulVariableDeclaration","src":"3850:17:9","value":{"name":"offset","nativeSrc":"3861:6:9","nodeType":"YulIdentifier","src":"3861:6:9"},"variables":[{"name":"src","nativeSrc":"3854:3:9","nodeType":"YulTypedName","src":"3854:3:9","type":""}]}]},"src":"3844:220:9"}]},"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"3360:710:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3432:6:9","nodeType":"YulTypedName","src":"3432:6:9","type":""},{"name":"length","nativeSrc":"3440:6:9","nodeType":"YulTypedName","src":"3440:6:9","type":""},{"name":"end","nativeSrc":"3448:3:9","nodeType":"YulTypedName","src":"3448:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3456:5:9","nodeType":"YulTypedName","src":"3456:5:9","type":""}],"src":"3360:710:9"},{"body":{"nativeSrc":"4170:293:9","nodeType":"YulBlock","src":"4170:293:9","statements":[{"body":{"nativeSrc":"4219:83:9","nodeType":"YulBlock","src":"4219:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4221:77:9","nodeType":"YulIdentifier","src":"4221:77:9"},"nativeSrc":"4221:79:9","nodeType":"YulFunctionCall","src":"4221:79:9"},"nativeSrc":"4221:79:9","nodeType":"YulExpressionStatement","src":"4221:79:9"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4198:6:9","nodeType":"YulIdentifier","src":"4198:6:9"},{"kind":"number","nativeSrc":"4206:4:9","nodeType":"YulLiteral","src":"4206:4:9","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4194:3:9","nodeType":"YulIdentifier","src":"4194:3:9"},"nativeSrc":"4194:17:9","nodeType":"YulFunctionCall","src":"4194:17:9"},{"name":"end","nativeSrc":"4213:3:9","nodeType":"YulIdentifier","src":"4213:3:9"}],"functionName":{"name":"slt","nativeSrc":"4190:3:9","nodeType":"YulIdentifier","src":"4190:3:9"},"nativeSrc":"4190:27:9","nodeType":"YulFunctionCall","src":"4190:27:9"}],"functionName":{"name":"iszero","nativeSrc":"4183:6:9","nodeType":"YulIdentifier","src":"4183:6:9"},"nativeSrc":"4183:35:9","nodeType":"YulFunctionCall","src":"4183:35:9"},"nativeSrc":"4180:122:9","nodeType":"YulIf","src":"4180:122:9"},{"nativeSrc":"4311:34:9","nodeType":"YulVariableDeclaration","src":"4311:34:9","value":{"arguments":[{"name":"offset","nativeSrc":"4338:6:9","nodeType":"YulIdentifier","src":"4338:6:9"}],"functionName":{"name":"calldataload","nativeSrc":"4325:12:9","nodeType":"YulIdentifier","src":"4325:12:9"},"nativeSrc":"4325:20:9","nodeType":"YulFunctionCall","src":"4325:20:9"},"variables":[{"name":"length","nativeSrc":"4315:6:9","nodeType":"YulTypedName","src":"4315:6:9","type":""}]},{"nativeSrc":"4354:103:9","nodeType":"YulAssignment","src":"4354:103:9","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4430:6:9","nodeType":"YulIdentifier","src":"4430:6:9"},{"kind":"number","nativeSrc":"4438:4:9","nodeType":"YulLiteral","src":"4438:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4426:3:9","nodeType":"YulIdentifier","src":"4426:3:9"},"nativeSrc":"4426:17:9","nodeType":"YulFunctionCall","src":"4426:17:9"},{"name":"length","nativeSrc":"4445:6:9","nodeType":"YulIdentifier","src":"4445:6:9"},{"name":"end","nativeSrc":"4453:3:9","nodeType":"YulIdentifier","src":"4453:3:9"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"4363:62:9","nodeType":"YulIdentifier","src":"4363:62:9"},"nativeSrc":"4363:94:9","nodeType":"YulFunctionCall","src":"4363:94:9"},"variableNames":[{"name":"array","nativeSrc":"4354:5:9","nodeType":"YulIdentifier","src":"4354:5:9"}]}]},"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"4093:370:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4148:6:9","nodeType":"YulTypedName","src":"4148:6:9","type":""},{"name":"end","nativeSrc":"4156:3:9","nodeType":"YulTypedName","src":"4156:3:9","type":""}],"returnVariables":[{"name":"array","nativeSrc":"4164:5:9","nodeType":"YulTypedName","src":"4164:5:9","type":""}],"src":"4093:370:9"},{"body":{"nativeSrc":"4586:745:9","nodeType":"YulBlock","src":"4586:745:9","statements":[{"body":{"nativeSrc":"4632:83:9","nodeType":"YulBlock","src":"4632:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4634:77:9","nodeType":"YulIdentifier","src":"4634:77:9"},"nativeSrc":"4634:79:9","nodeType":"YulFunctionCall","src":"4634:79:9"},"nativeSrc":"4634:79:9","nodeType":"YulExpressionStatement","src":"4634:79:9"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4607:7:9","nodeType":"YulIdentifier","src":"4607:7:9"},{"name":"headStart","nativeSrc":"4616:9:9","nodeType":"YulIdentifier","src":"4616:9:9"}],"functionName":{"name":"sub","nativeSrc":"4603:3:9","nodeType":"YulIdentifier","src":"4603:3:9"},"nativeSrc":"4603:23:9","nodeType":"YulFunctionCall","src":"4603:23:9"},{"kind":"number","nativeSrc":"4628:2:9","nodeType":"YulLiteral","src":"4628:2:9","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4599:3:9","nodeType":"YulIdentifier","src":"4599:3:9"},"nativeSrc":"4599:32:9","nodeType":"YulFunctionCall","src":"4599:32:9"},"nativeSrc":"4596:119:9","nodeType":"YulIf","src":"4596:119:9"},{"nativeSrc":"4725:286:9","nodeType":"YulBlock","src":"4725:286:9","statements":[{"nativeSrc":"4740:45:9","nodeType":"YulVariableDeclaration","src":"4740:45:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4771:9:9","nodeType":"YulIdentifier","src":"4771:9:9"},{"kind":"number","nativeSrc":"4782:1:9","nodeType":"YulLiteral","src":"4782:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4767:3:9","nodeType":"YulIdentifier","src":"4767:3:9"},"nativeSrc":"4767:17:9","nodeType":"YulFunctionCall","src":"4767:17:9"}],"functionName":{"name":"calldataload","nativeSrc":"4754:12:9","nodeType":"YulIdentifier","src":"4754:12:9"},"nativeSrc":"4754:31:9","nodeType":"YulFunctionCall","src":"4754:31:9"},"variables":[{"name":"offset","nativeSrc":"4744:6:9","nodeType":"YulTypedName","src":"4744:6:9","type":""}]},{"body":{"nativeSrc":"4832:83:9","nodeType":"YulBlock","src":"4832:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4834:77:9","nodeType":"YulIdentifier","src":"4834:77:9"},"nativeSrc":"4834:79:9","nodeType":"YulFunctionCall","src":"4834:79:9"},"nativeSrc":"4834:79:9","nodeType":"YulExpressionStatement","src":"4834:79:9"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4804:6:9","nodeType":"YulIdentifier","src":"4804:6:9"},{"kind":"number","nativeSrc":"4812:18:9","nodeType":"YulLiteral","src":"4812:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4801:2:9","nodeType":"YulIdentifier","src":"4801:2:9"},"nativeSrc":"4801:30:9","nodeType":"YulFunctionCall","src":"4801:30:9"},"nativeSrc":"4798:117:9","nodeType":"YulIf","src":"4798:117:9"},{"nativeSrc":"4929:72:9","nodeType":"YulAssignment","src":"4929:72:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4973:9:9","nodeType":"YulIdentifier","src":"4973:9:9"},{"name":"offset","nativeSrc":"4984:6:9","nodeType":"YulIdentifier","src":"4984:6:9"}],"functionName":{"name":"add","nativeSrc":"4969:3:9","nodeType":"YulIdentifier","src":"4969:3:9"},"nativeSrc":"4969:22:9","nodeType":"YulFunctionCall","src":"4969:22:9"},{"name":"dataEnd","nativeSrc":"4993:7:9","nodeType":"YulIdentifier","src":"4993:7:9"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"4939:29:9","nodeType":"YulIdentifier","src":"4939:29:9"},"nativeSrc":"4939:62:9","nodeType":"YulFunctionCall","src":"4939:62:9"},"variableNames":[{"name":"value0","nativeSrc":"4929:6:9","nodeType":"YulIdentifier","src":"4929:6:9"}]}]},{"nativeSrc":"5021:303:9","nodeType":"YulBlock","src":"5021:303:9","statements":[{"nativeSrc":"5036:46:9","nodeType":"YulVariableDeclaration","src":"5036:46:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5067:9:9","nodeType":"YulIdentifier","src":"5067:9:9"},{"kind":"number","nativeSrc":"5078:2:9","nodeType":"YulLiteral","src":"5078:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5063:3:9","nodeType":"YulIdentifier","src":"5063:3:9"},"nativeSrc":"5063:18:9","nodeType":"YulFunctionCall","src":"5063:18:9"}],"functionName":{"name":"calldataload","nativeSrc":"5050:12:9","nodeType":"YulIdentifier","src":"5050:12:9"},"nativeSrc":"5050:32:9","nodeType":"YulFunctionCall","src":"5050:32:9"},"variables":[{"name":"offset","nativeSrc":"5040:6:9","nodeType":"YulTypedName","src":"5040:6:9","type":""}]},{"body":{"nativeSrc":"5129:83:9","nodeType":"YulBlock","src":"5129:83:9","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5131:77:9","nodeType":"YulIdentifier","src":"5131:77:9"},"nativeSrc":"5131:79:9","nodeType":"YulFunctionCall","src":"5131:79:9"},"nativeSrc":"5131:79:9","nodeType":"YulExpressionStatement","src":"5131:79:9"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5101:6:9","nodeType":"YulIdentifier","src":"5101:6:9"},{"kind":"number","nativeSrc":"5109:18:9","nodeType":"YulLiteral","src":"5109:18:9","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5098:2:9","nodeType":"YulIdentifier","src":"5098:2:9"},"nativeSrc":"5098:30:9","nodeType":"YulFunctionCall","src":"5098:30:9"},"nativeSrc":"5095:117:9","nodeType":"YulIf","src":"5095:117:9"},{"nativeSrc":"5226:88:9","nodeType":"YulAssignment","src":"5226:88:9","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5286:9:9","nodeType":"YulIdentifier","src":"5286:9:9"},{"name":"offset","nativeSrc":"5297:6:9","nodeType":"YulIdentifier","src":"5297:6:9"}],"functionName":{"name":"add","nativeSrc":"5282:3:9","nodeType":"YulIdentifier","src":"5282:3:9"},"nativeSrc":"5282:22:9","nodeType":"YulFunctionCall","src":"5282:22:9"},{"name":"dataEnd","nativeSrc":"5306:7:9","nodeType":"YulIdentifier","src":"5306:7:9"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"5236:45:9","nodeType":"YulIdentifier","src":"5236:45:9"},"nativeSrc":"5236:78:9","nodeType":"YulFunctionCall","src":"5236:78:9"},"variableNames":[{"name":"value1","nativeSrc":"5226:6:9","nodeType":"YulIdentifier","src":"5226:6:9"}]}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptrt_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"4469:862:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4548:9:9","nodeType":"YulTypedName","src":"4548:9:9","type":""},{"name":"dataEnd","nativeSrc":"4559:7:9","nodeType":"YulTypedName","src":"4559:7:9","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4571:6:9","nodeType":"YulTypedName","src":"4571:6:9","type":""},{"name":"value1","nativeSrc":"4579:6:9","nodeType":"YulTypedName","src":"4579:6:9","type":""}],"src":"4469:862:9"},{"body":{"nativeSrc":"5379:48:9","nodeType":"YulBlock","src":"5379:48:9","statements":[{"nativeSrc":"5389:32:9","nodeType":"YulAssignment","src":"5389:32:9","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5414:5:9","nodeType":"YulIdentifier","src":"5414:5:9"}],"functionName":{"name":"iszero","nativeSrc":"5407:6:9","nodeType":"YulIdentifier","src":"5407:6:9"},"nativeSrc":"5407:13:9","nodeType":"YulFunctionCall","src":"5407:13:9"}],"functionName":{"name":"iszero","nativeSrc":"5400:6:9","nodeType":"YulIdentifier","src":"5400:6:9"},"nativeSrc":"5400:21:9","nodeType":"YulFunctionCall","src":"5400:21:9"},"variableNames":[{"name":"cleaned","nativeSrc":"5389:7:9","nodeType":"YulIdentifier","src":"5389:7:9"}]}]},"name":"cleanup_t_bool","nativeSrc":"5337:90:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5361:5:9","nodeType":"YulTypedName","src":"5361:5:9","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5371:7:9","nodeType":"YulTypedName","src":"5371:7:9","type":""}],"src":"5337:90:9"},{"body":{"nativeSrc":"5492:50:9","nodeType":"YulBlock","src":"5492:50:9","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5509:3:9","nodeType":"YulIdentifier","src":"5509:3:9"},{"arguments":[{"name":"value","nativeSrc":"5529:5:9","nodeType":"YulIdentifier","src":"5529:5:9"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"5514:14:9","nodeType":"YulIdentifier","src":"5514:14:9"},"nativeSrc":"5514:21:9","nodeType":"YulFunctionCall","src":"5514:21:9"}],"functionName":{"name":"mstore","nativeSrc":"5502:6:9","nodeType":"YulIdentifier","src":"5502:6:9"},"nativeSrc":"5502:34:9","nodeType":"YulFunctionCall","src":"5502:34:9"},"nativeSrc":"5502:34:9","nodeType":"YulExpressionStatement","src":"5502:34:9"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"5433:109:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5480:5:9","nodeType":"YulTypedName","src":"5480:5:9","type":""},{"name":"pos","nativeSrc":"5487:3:9","nodeType":"YulTypedName","src":"5487:3:9","type":""}],"src":"5433:109:9"},{"body":{"nativeSrc":"5640:118:9","nodeType":"YulBlock","src":"5640:118:9","statements":[{"nativeSrc":"5650:26:9","nodeType":"YulAssignment","src":"5650:26:9","value":{"arguments":[{"name":"headStart","nativeSrc":"5662:9:9","nodeType":"YulIdentifier","src":"5662:9:9"},{"kind":"number","nativeSrc":"5673:2:9","nodeType":"YulLiteral","src":"5673:2:9","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5658:3:9","nodeType":"YulIdentifier","src":"5658:3:9"},"nativeSrc":"5658:18:9","nodeType":"YulFunctionCall","src":"5658:18:9"},"variableNames":[{"name":"tail","nativeSrc":"5650:4:9","nodeType":"YulIdentifier","src":"5650:4:9"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5724:6:9","nodeType":"YulIdentifier","src":"5724:6:9"},{"arguments":[{"name":"headStart","nativeSrc":"5737:9:9","nodeType":"YulIdentifier","src":"5737:9:9"},{"kind":"number","nativeSrc":"5748:1:9","nodeType":"YulLiteral","src":"5748:1:9","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5733:3:9","nodeType":"YulIdentifier","src":"5733:3:9"},"nativeSrc":"5733:17:9","nodeType":"YulFunctionCall","src":"5733:17:9"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"5686:37:9","nodeType":"YulIdentifier","src":"5686:37:9"},"nativeSrc":"5686:65:9","nodeType":"YulFunctionCall","src":"5686:65:9"},"nativeSrc":"5686:65:9","nodeType":"YulExpressionStatement","src":"5686:65:9"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"5548:210:9","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5612:9:9","nodeType":"YulTypedName","src":"5612:9:9","type":""},{"name":"value0","nativeSrc":"5624:6:9","nodeType":"YulTypedName","src":"5624:6:9","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5635:4:9","nodeType":"YulTypedName","src":"5635:4:9","type":""}],"src":"5548:210:9"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // uint256[]\n function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_uint256(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_bytes_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n","id":9,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c80631e8e1e1314610030575b600080fd5b61004a60048036038101906100459190611cde565b610060565b6040516100579190611d71565b60405180910390f35b6000611a1b565b600080600184846000805b821561009c5782840591508482028603905084955080945082820284039050829350809250610072565b60018411156100aa57600080fd5b60008612156100b95788860195505b85965050505050505092915050565b60405181602084028301815160208301925060005b82841015610120578185527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018451830991506020850194506020840193506100dd565b61014a7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183610067565b91506020850394506020840393508592505b828411156101c6577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018551830990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000184518309915080845260208503945060208403935061015c565b81845250505050505050565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610203576000805260206000f35b50565b61032081511461021a576000805260206000f35b6102286102608201516101d2565b6102366102808201516101d2565b6102446102a08201516101d2565b6102526102c08201516101d2565b6102606102e08201516101d2565b61026e6103008201516101d2565b61027c6103208201516101d2565b50565b60008060208501516102c085015260208301516102e08501526020800183015161030085015260406020018301516103208501526060602001830151610340850152608060200183015161036085015260a06020018301516103808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e06102c08601200690508060208501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020808601200660408501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001604060e08501200660008501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c06101208501200691508160608501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182820960a08501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991508160808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000180600184030106915081610260850152816102808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e0610260850120068060c08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181820992508260e08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101008601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101208601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101408601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101608601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160806101e086012006610180860152505050505050565b60017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836060860151030106618000096102a08301526107ec600261028084016100c8565b610260820151600191507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001816102a0850151096102a0840152505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102a086015109830301069050806101a0830152505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016101a08601516103208601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102c08601510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102e08601510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160408601516102a08601510890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151820990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018501030692507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028086015184099250826101c08601525050505050565b81518152602082015160208201525050565b6040518151815260208201516020820152825160408201526020830151606082015260408260808360066107d05a03fa80610bec576000805260206000f35b50505050565b6000604051835181526020840151602082015284604082015260408160608360076107d05a03fa915081610c2a576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610c5a576000805260206000f35b5050505050565b600060405183815284602082015285604082015260408160608360076107d05a03fa915081610c94576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610cc4576000805260206000f35b505050505050565b600060405183815284602082015285604082015260408360608360076107d05a03fa915081610cff576000805260206000f35b505050505050565b6101e08201610d1a6101e0830182610b9b565b610d2e610180840151610220840183610bf2565b505050565b60008061022084017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610260860151099250610db6837f073ad9ca0a63bf57aab7471be06714e14cb129b3bc1957fb205f02a2dff201447f0f0d5954bc5550bb6b8a63158299441a292523e20998bd2eeaf6817b9cf7489184610ccc565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028085015184099250610e2d837f24b75923ef66b5a38313240bf8701e5289f37ff6e54a5d9696c571cd0d7a6f7b7f13f75f7639b17b60c5dc1561ca51e09122443b14fd9b5198a3200cb73c405e7484610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610280860151099250610ea8837f0ce90799f564b37f9a7c19587ad4234c46f6afad9f4b1fb9277bed47dd9b6a117f2becb27157d1ea8e65712e5a9d3b836536cc95f8ffbe2a9a66259a05b94d8c4184610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c08601516102a0860151099250610f23837f24d590624aa64d73288cef9c5c68ddfbc43c288bfec0ea23a65e3d519deb4b457f2fe2b7a5e3301ec2548b1b9fa04dafe8bdb129027d89d2fda93c32b2ac1d615384610c61565b60c08501519250610f76837f2ad72eb4319e5ce1f126c3ee2fb7b07fcacc472b06034bc9b7b00fa5c6db3dd17f0bbacffc38b7a2d2938e833aa0b1beb2ebe94796ee3eeeaa8cde99e34b70274e84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a08601516102608601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160020991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160030991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102a0850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610180860151840892506112518360e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102c085015160208701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102e085015160208701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506114bb837f244c5fc4bd854ee2b3c1b620e013383a9e6daca6c0bab14aecd7101aba922cb67f2281748b89dcd5aeaee8e7b5573d600632e8b7d13619eca441e770f4862711ff84610c61565b6114c9610120850182610bad565b608085015192506114df83610160860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018384099250611514836101a0860183610bf2565b61152660e08601516020860183610bf2565b6115396101008601516060860183610bf2565b61154c61012086015160a0860183610bf2565b61159d6101408601517f14ce1f304c015a19fe72ccdd0c7b1aaae908e4faa13142d0d8d108e2efa497fd7f1ddf2ac14509d3ed88c5114e806890a074e2a3cf08bd6b406cd4e0c1256d6a5a84610c61565b6115ed6101608601517e701c2a27f6e67a591f1ca598c17621b64ad8830430232895ca68fe3dc5854d7f0dc88371d3444a7bbc4f3cb292e69421c549c10b86e8982b67d074006094fe0884610c61565b6101c085015192507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060c087015161032087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060e087015161026087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061010087015161028087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101208701516102a087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101408701516102c087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101608701516102e087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061018087015161030087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506117ad836002600184610c61565b606085015192506117c3836101e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160608601516101808701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb8409925061184783610220860183610bf2565b5050505050565b60006040516101e0830151815260206101e08401015160208201527f1e3b651c96c337f8f6266fadcef22dc97717b5d44b445a5ef799a6cd3cc564a060408201527f10b13ed45e1871ff867a120754de5bf5c1395ad0078891e1b81f284ef6df78ca60608201527f2b57d40b181c33d7331accce5e5b890345b051c33f74e24ab728b18a3f7b473e60808201527f241a20e6fc3bc59485fa2e92365b46bf48742e8fac0b18859306488928cdcf0860a082015261022083015160c08201526020610220840101517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47817f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47030690508060e08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101008301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101208301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6101408301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa6101608301526020826101808460086107d05a03fa825181169350505050919050565b6040516102c08101604052611a2f84610206565b611a3a83828661027f565b611a4381610785565b611a4d838261082a565b611a57818561088d565b611a618185610d07565b611a6b8185610d33565b611a748161184e565b6102c082036040528060005260206000f35b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611aed82611aa4565b810181811067ffffffffffffffff82111715611b0c57611b0b611ab5565b5b80604052505050565b6000611b1f611a86565b9050611b2b8282611ae4565b919050565b600067ffffffffffffffff821115611b4b57611b4a611ab5565b5b611b5482611aa4565b9050602081019050919050565b82818337600083830152505050565b6000611b83611b7e84611b30565b611b15565b905082815260208101848484011115611b9f57611b9e611a9f565b5b611baa848285611b61565b509392505050565b600082601f830112611bc757611bc6611a9a565b5b8135611bd7848260208601611b70565b91505092915050565b600067ffffffffffffffff821115611bfb57611bfa611ab5565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b611c2481611c11565b8114611c2f57600080fd5b50565b600081359050611c4181611c1b565b92915050565b6000611c5a611c5584611be0565b611b15565b90508083825260208201905060208402830185811115611c7d57611c7c611c0c565b5b835b81811015611ca65780611c928882611c32565b845260208401935050602081019050611c7f565b5050509392505050565b600082601f830112611cc557611cc4611a9a565b5b8135611cd5848260208601611c47565b91505092915050565b60008060408385031215611cf557611cf4611a90565b5b600083013567ffffffffffffffff811115611d1357611d12611a95565b5b611d1f85828601611bb2565b925050602083013567ffffffffffffffff811115611d4057611d3f611a95565b5b611d4c85828601611cb0565b9150509250929050565b60008115159050919050565b611d6b81611d56565b82525050565b6000602082019050611d866000830184611d62565b9291505056fea26469706673582212201ba7f68c3e2f4f61e7382b6f72a0fe80914349a958fe8936ea3db47813f5c2b764736f6c63430008180033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1E8E1E13 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x1CDE JUMP JUMPDEST PUSH2 0x60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x57 SWAP2 SWAP1 PUSH2 0x1D71 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x1A1B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 DUP5 DUP5 PUSH1 0x0 DUP1 JUMPDEST DUP3 ISZERO PUSH2 0x9C JUMPI DUP3 DUP5 SDIV SWAP2 POP DUP5 DUP3 MUL DUP7 SUB SWAP1 POP DUP5 SWAP6 POP DUP1 SWAP5 POP DUP3 DUP3 MUL DUP5 SUB SWAP1 POP DUP3 SWAP4 POP DUP1 SWAP3 POP PUSH2 0x72 JUMP JUMPDEST PUSH1 0x1 DUP5 GT ISZERO PUSH2 0xAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP7 SLT ISZERO PUSH2 0xB9 JUMPI DUP9 DUP7 ADD SWAP6 POP JUMPDEST DUP6 SWAP7 POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x20 DUP5 MUL DUP4 ADD DUP2 MLOAD PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x0 JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x120 JUMPI DUP2 DUP6 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP5 MLOAD DUP4 MULMOD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xDD JUMP JUMPDEST PUSH2 0x14A PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH2 0x67 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP6 SUB SWAP5 POP PUSH1 0x20 DUP5 SUB SWAP4 POP DUP6 SWAP3 POP JUMPDEST DUP3 DUP5 GT ISZERO PUSH2 0x1C6 JUMPI PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP6 MLOAD DUP4 MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP5 MLOAD DUP4 MULMOD SWAP2 POP DUP1 DUP5 MSTORE PUSH1 0x20 DUP6 SUB SWAP5 POP PUSH1 0x20 DUP5 SUB SWAP4 POP PUSH2 0x15C JUMP JUMPDEST DUP2 DUP5 MSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x203 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH2 0x320 DUP2 MLOAD EQ PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST PUSH2 0x228 PUSH2 0x260 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x236 PUSH2 0x280 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x244 PUSH2 0x2A0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x252 PUSH2 0x2C0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x260 PUSH2 0x2E0 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x26E PUSH2 0x300 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST PUSH2 0x27C PUSH2 0x320 DUP3 ADD MLOAD PUSH2 0x1D2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x2C0 DUP6 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x2E0 DUP6 ADD MSTORE PUSH1 0x20 DUP1 ADD DUP4 ADD MLOAD PUSH2 0x300 DUP6 ADD MSTORE PUSH1 0x40 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x320 DUP6 ADD MSTORE PUSH1 0x60 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x340 DUP6 ADD MSTORE PUSH1 0x80 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x360 DUP6 ADD MSTORE PUSH1 0xA0 PUSH1 0x20 ADD DUP4 ADD MLOAD PUSH2 0x380 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xE0 PUSH2 0x2C0 DUP7 ADD KECCAK256 MOD SWAP1 POP DUP1 PUSH1 0x20 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP1 DUP7 ADD KECCAK256 MOD PUSH1 0x40 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 PUSH1 0xE0 DUP6 ADD KECCAK256 MOD PUSH1 0x0 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 PUSH2 0x120 DUP6 ADD KECCAK256 MOD SWAP2 POP DUP2 PUSH1 0x60 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP3 MULMOD PUSH1 0xA0 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP4 MULMOD SWAP2 POP DUP2 PUSH1 0x80 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0x1 DUP5 SUB ADD MOD SWAP2 POP DUP2 PUSH2 0x260 DUP6 ADD MSTORE DUP2 PUSH2 0x280 DUP6 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xE0 PUSH2 0x260 DUP6 ADD KECCAK256 MOD DUP1 PUSH1 0xC0 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP3 MULMOD SWAP3 POP DUP3 PUSH1 0xE0 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x100 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x120 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x140 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x160 DUP7 ADD MSTORE PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x80 PUSH2 0x1E0 DUP7 ADD KECCAK256 MOD PUSH2 0x180 DUP7 ADD MSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH1 0x60 DUP7 ADD MLOAD SUB ADD MOD PUSH2 0x8000 MULMOD PUSH2 0x2A0 DUP4 ADD MSTORE PUSH2 0x7EC PUSH1 0x2 PUSH2 0x280 DUP5 ADD PUSH2 0xC8 JUMP JUMPDEST PUSH2 0x260 DUP3 ADD MLOAD PUSH1 0x1 SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 PUSH2 0x2A0 DUP6 ADD MLOAD MULMOD PUSH2 0x2A0 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD MULMOD DUP4 SUB ADD MOD SWAP1 POP DUP1 PUSH2 0x1A0 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x1A0 DUP7 ADD MLOAD PUSH2 0x320 DUP7 ADD MLOAD ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2C0 DUP7 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x260 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD PUSH2 0x2E0 DUP7 ADD MLOAD MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP3 ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP3 ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD ADDMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x300 DUP6 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP3 MULMOD SWAP1 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP6 ADD SUB MOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP DUP3 PUSH2 0x1C0 DUP7 ADD MSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP3 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL DUP1 PUSH2 0xBEC JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC2A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5A JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC94 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xCC4 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xCFF JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1E0 DUP3 ADD PUSH2 0xD1A PUSH2 0x1E0 DUP4 ADD DUP3 PUSH2 0xB9B JUMP JUMPDEST PUSH2 0xD2E PUSH2 0x180 DUP5 ADD MLOAD PUSH2 0x220 DUP5 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x220 DUP5 ADD PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x260 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xDB6 DUP4 PUSH32 0x73AD9CA0A63BF57AAB7471BE06714E14CB129B3BC1957FB205F02A2DFF20144 PUSH32 0xF0D5954BC5550BB6B8A63158299441A292523E20998BD2EEAF6817B9CF74891 DUP5 PUSH2 0xCCC JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH2 0xE2D DUP4 PUSH32 0x24B75923EF66B5A38313240BF8701E5289F37FF6E54A5D9696C571CD0D7A6F7B PUSH32 0x13F75F7639B17B60C5DC1561CA51E09122443B14FD9B5198A3200CB73C405E74 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x280 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xEA8 DUP4 PUSH32 0xCE90799F564B37F9A7C19587AD4234C46F6AFAD9F4B1FB9277BED47DD9B6A11 PUSH32 0x2BECB27157D1EA8E65712E5A9D3B836536CC95F8FFBE2A9A66259A05B94D8C41 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP7 ADD MLOAD MULMOD SWAP3 POP PUSH2 0xF23 DUP4 PUSH32 0x24D590624AA64D73288CEF9C5C68DDFBC43C288BFEC0EA23A65E3D519DEB4B45 PUSH32 0x2FE2B7A5E3301EC2548B1B9FA04DAFE8BDB129027D89D2FDA93C32B2AC1D6153 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0xC0 DUP6 ADD MLOAD SWAP3 POP PUSH2 0xF76 DUP4 PUSH32 0x2AD72EB4319E5CE1F126C3EE2FB7B07FCACC472B06034BC9B7B00FA5C6DB3DD1 PUSH32 0xBBACFFC38B7A2D2938E833AA0B1BEB2EBE94796EE3EEEAA8CDE99E34B70274E DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH2 0x260 DUP7 ADD MLOAD ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x2 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x3 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2A0 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP4 MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x180 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH2 0x1251 DUP4 PUSH1 0xE0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2C0 DUP6 ADD MLOAD PUSH1 0x20 DUP8 ADD MLOAD MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x260 DUP6 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x2E0 DUP6 ADD MLOAD PUSH1 0x20 DUP8 ADD MLOAD MULMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x280 DUP6 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x40 DUP7 ADD MLOAD DUP4 ADDMOD SWAP2 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP3 DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0xC0 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x20 DUP7 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH2 0x300 DUP6 ADD MLOAD DUP5 MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 SUB MOD SWAP3 POP PUSH2 0x14BB DUP4 PUSH32 0x244C5FC4BD854EE2B3C1B620E013383A9E6DACA6C0BAB14AECD7101ABA922CB6 PUSH32 0x2281748B89DCD5AEAEE8E7B5573D600632E8B7D13619ECA441E770F4862711FF DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x14C9 PUSH2 0x120 DUP6 ADD DUP3 PUSH2 0xBAD JUMP JUMPDEST PUSH1 0x80 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x14DF DUP4 PUSH2 0x160 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 DUP5 MULMOD SWAP3 POP PUSH2 0x1514 DUP4 PUSH2 0x1A0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x1526 PUSH1 0xE0 DUP7 ADD MLOAD PUSH1 0x20 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x1539 PUSH2 0x100 DUP7 ADD MLOAD PUSH1 0x60 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x154C PUSH2 0x120 DUP7 ADD MLOAD PUSH1 0xA0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH2 0x159D PUSH2 0x140 DUP7 ADD MLOAD PUSH32 0x14CE1F304C015A19FE72CCDD0C7B1AAAE908E4FAA13142D0D8D108E2EFA497FD PUSH32 0x1DDF2AC14509D3ED88C5114E806890A074E2A3CF08BD6B406CD4E0C1256D6A5A DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x15ED PUSH2 0x160 DUP7 ADD MLOAD PUSH31 0x701C2A27F6E67A591F1CA598C17621B64AD8830430232895CA68FE3DC5854D PUSH32 0xDC88371D3444A7BBC4F3CB292E69421C549C10B86E8982B67D074006094FE08 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH2 0x1C0 DUP6 ADD MLOAD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0xC0 DUP8 ADD MLOAD PUSH2 0x320 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH1 0xE0 DUP8 ADD MLOAD PUSH2 0x260 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x100 DUP8 ADD MLOAD PUSH2 0x280 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x120 DUP8 ADD MLOAD PUSH2 0x2A0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x140 DUP8 ADD MLOAD PUSH2 0x2C0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x160 DUP8 ADD MLOAD PUSH2 0x2E0 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP1 PUSH2 0x180 DUP8 ADD MLOAD PUSH2 0x300 DUP8 ADD MLOAD MULMOD DUP5 ADDMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP4 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 SUB MOD SWAP3 POP PUSH2 0x17AD DUP4 PUSH1 0x2 PUSH1 0x1 DUP5 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0x60 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x17C3 DUP4 PUSH2 0x1E0 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH1 0x60 DUP7 ADD MLOAD PUSH2 0x180 DUP8 ADD MLOAD MULMOD SWAP3 POP PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 PUSH32 0x2D1BA66F5941DC91017171FA69EC2BD0022A2A2D4115A009A93458FD4E26ECFB DUP5 MULMOD SWAP3 POP PUSH2 0x1847 DUP4 PUSH2 0x220 DUP7 ADD DUP4 PUSH2 0xBF2 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x1E0 DUP4 ADD MLOAD DUP2 MSTORE PUSH1 0x20 PUSH2 0x1E0 DUP5 ADD ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x1E3B651C96C337F8F6266FADCEF22DC97717B5D44B445A5EF799A6CD3CC564A0 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x10B13ED45E1871FF867A120754DE5BF5C1395AD0078891E1B81F284EF6DF78CA PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x2B57D40B181C33D7331ACCCE5E5B890345B051C33F74E24AB728B18A3F7B473E PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x241A20E6FC3BC59485FA2E92365B46BF48742E8FAC0B18859306488928CDCF08 PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x220 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x20 PUSH2 0x220 DUP5 ADD ADD MLOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 DUP2 PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD SWAP1 POP DUP1 PUSH1 0xE0 DUP4 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x100 DUP4 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x120 DUP4 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x140 DUP4 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x160 DUP4 ADD MSTORE PUSH1 0x20 DUP3 PUSH2 0x180 DUP5 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL DUP3 MLOAD DUP2 AND SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C0 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x1A2F DUP5 PUSH2 0x206 JUMP JUMPDEST PUSH2 0x1A3A DUP4 DUP3 DUP7 PUSH2 0x27F JUMP JUMPDEST PUSH2 0x1A43 DUP2 PUSH2 0x785 JUMP JUMPDEST PUSH2 0x1A4D DUP4 DUP3 PUSH2 0x82A JUMP JUMPDEST PUSH2 0x1A57 DUP2 DUP6 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x1A61 DUP2 DUP6 PUSH2 0xD07 JUMP JUMPDEST PUSH2 0x1A6B DUP2 DUP6 PUSH2 0xD33 JUMP JUMPDEST PUSH2 0x1A74 DUP2 PUSH2 0x184E JUMP JUMPDEST PUSH2 0x2C0 DUP3 SUB PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1AED DUP3 PUSH2 0x1AA4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1B0C JUMPI PUSH2 0x1B0B PUSH2 0x1AB5 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B1F PUSH2 0x1A86 JUMP JUMPDEST SWAP1 POP PUSH2 0x1B2B DUP3 DUP3 PUSH2 0x1AE4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1B4B JUMPI PUSH2 0x1B4A PUSH2 0x1AB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1B54 DUP3 PUSH2 0x1AA4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B83 PUSH2 0x1B7E DUP5 PUSH2 0x1B30 JUMP JUMPDEST PUSH2 0x1B15 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1B9F JUMPI PUSH2 0x1B9E PUSH2 0x1A9F JUMP JUMPDEST JUMPDEST PUSH2 0x1BAA DUP5 DUP3 DUP6 PUSH2 0x1B61 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1BC7 JUMPI PUSH2 0x1BC6 PUSH2 0x1A9A JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1BD7 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1B70 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1BFB JUMPI PUSH2 0x1BFA PUSH2 0x1AB5 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C24 DUP2 PUSH2 0x1C11 JUMP JUMPDEST DUP2 EQ PUSH2 0x1C2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1C41 DUP2 PUSH2 0x1C1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C5A PUSH2 0x1C55 DUP5 PUSH2 0x1BE0 JUMP JUMPDEST PUSH2 0x1B15 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1C7D JUMPI PUSH2 0x1C7C PUSH2 0x1C0C JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1CA6 JUMPI DUP1 PUSH2 0x1C92 DUP9 DUP3 PUSH2 0x1C32 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1C7F JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1CC5 JUMPI PUSH2 0x1CC4 PUSH2 0x1A9A JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1CD5 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1C47 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1CF5 JUMPI PUSH2 0x1CF4 PUSH2 0x1A90 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D13 JUMPI PUSH2 0x1D12 PUSH2 0x1A95 JUMP JUMPDEST JUMPDEST PUSH2 0x1D1F DUP6 DUP3 DUP7 ADD PUSH2 0x1BB2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D40 JUMPI PUSH2 0x1D3F PUSH2 0x1A95 JUMP JUMPDEST JUMPDEST PUSH2 0x1D4C DUP6 DUP3 DUP7 ADD PUSH2 0x1CB0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D6B DUP2 PUSH2 0x1D56 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D86 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D62 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL 0xA7 0xF6 DUP13 RETURNDATACOPY 0x2F 0x4F PUSH2 0xE738 0x2B PUSH16 0x72A0FE80914349A958FE8936EA3DB478 SGT CREATE2 0xC2 0xB7 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ","sourceMap":"832:23904:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5183:19551;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;5271:4;5429:724;;;5455:3;5486:1;5521;5548;5583;5601:12;5630:7;5671:334;5679:4;5671:334;;;5730:4;5727:1;5722:13;5710:25;;5784:4;5774:8;5770:19;5767:1;5763:27;5756:34;;5815:4;5811:8;;5847:3;5840:10;;5919:4;5909:8;5905:19;5903:1;5899:26;5892:33;;5951:4;5946:9;;5984:3;5976:11;;5671:334;;;6048:1;6045;6042:8;6039:27;;;6062:1;6060;6053:11;6039:27;6093:1;6090;6086:9;6083:30;;;6109:1;6106;6102:9;6098:13;;6083:30;6138:1;6131:8;;5459:694;;;;;;5429:724;;;;:::o;6395:1517::-;6468:4;6462:11;6540:5;6595:2;6592:1;6588:10;6581:5;6577:22;6652:3;6646:10;6721:2;6716:3;6712:12;6705:19;;6780:7;6826:257;6842:7;6837:3;6834:16;6826:257;;;7007:3;7001:4;6994:17;7063:1;7057:3;7051:10;7046:3;7039:26;7032:33;;6892:2;6886:4;6882:13;6874:21;;6933:2;6928:3;6924:12;6917:19;;6826:257;;;7107:15;7120:1;7115:3;7107:15;:::i;:::-;7100:22;;7284:2;7278:4;7274:13;7266:21;;7397:2;7392:3;7388:12;7381:19;;7428:5;7417:16;;7490:311;7506:7;7501:3;7498:16;7490:311;;;7690:1;7683:4;7677:11;7672:3;7665:27;7658:34;;7744:1;7738:3;7732:10;7727:3;7720:26;7713:33;;7779:3;7774;7767:16;7556:2;7550:4;7546:13;7538:21;;7597:2;7592:3;7588:12;7581:19;;7490:311;;;7894:3;7889;7882:16;6427:1485;;;;;6395:1517;;:::o;7938:162::-;7995:1;7992;7989:8;7979:107;;8031:1;8028;8021:12;8063:4;8061:1;8054:14;7979:107;7938:162;:::o;8126:668::-;8200:3;8191:6;8185:13;8182:23;8172:122;;8239:1;8236;8229:12;8271:4;8269:1;8262:14;8172:122;8311:39;8340:7;8332:6;8328:20;8322:27;8311:39;:::i;:::-;8367;8396:7;8388:6;8384:20;8378:27;8367:39;:::i;:::-;8423;8452:7;8444:6;8440:20;8434:27;8423:39;:::i;:::-;8479:40;8508:8;8500:6;8496:21;8490:28;8479:40;:::i;:::-;8536;8565:8;8557:6;8553:21;8547:28;8536:40;:::i;:::-;8593;8622:8;8614:6;8610:21;8604:28;8593:40;:::i;:::-;8650:39;8679:7;8671:6;8667:20;8661:27;8650:39;:::i;:::-;8126:668;:::o;8820:2828::-;8903:5;8925;9011:2;9002:7;8997:17;8990:25;8983:3;8977:4;8973:15;8965:51;9095:2;9087:6;9082:16;9075:24;9068:3;9062:4;9058:15;9050:50;9169:2;9166;9162:10;9154:6;9149:24;9142:32;9135:3;9129:4;9125:15;9117:58;9244:2;9241;9237:10;9229:6;9224:24;9217:32;9210:3;9204:4;9200:15;9192:58;9319:2;9316;9312:10;9304:6;9299:24;9292:32;9285:3;9279:4;9275:15;9267:58;9394:3;9391:2;9387:11;9379:6;9374:25;9367:33;9360:3;9354:4;9350:15;9342:59;9470:3;9467:2;9463:11;9455:6;9450:25;9443:33;9436:3;9430:4;9426:15;9418:59;9556:1;9550:3;9540:7;9534:4;9530:18;9520:34;9516:42;9511:47;;9602:1;9594:5;9588:4;9584:16;9576:28;9685:1;9680:2;9672:5;9666:4;9662:16;9652:31;9648:39;9639:6;9633:4;9629:17;9621:67;9768:1;9763:2;9758;9750:6;9746:15;9736:30;9732:38;9723:6;9717:4;9713:17;9705:66;9848:1;9842:3;9836;9828:6;9824:16;9814:32;9810:40;9805:45;;9891:1;9885:3;9879:4;9875:14;9867:26;9951:1;9948;9945;9938:15;9928:7;9922:4;9918:18;9910:44;10005:1;10002;9999;9992:15;9988:19;;10058:1;10055;10052;10045:15;10041:19;;10111:1;10108;10105;10098:15;10094:19;;10164:1;10161;10158;10151:15;10147:19;;10217:1;10214;10211;10204:15;10200:19;;10270:1;10267;10264;10257:15;10253:19;;10323:1;10320;10317;10310:15;10306:19;;10376:1;10373;10370;10363:15;10359:19;;10429:1;10426;10423;10416:15;10412:19;;10482:1;10479;10476;10469:15;10465:19;;10535:1;10532;10529;10522:15;10518:19;;10588:1;10585;10582;10575:15;10571:19;;10641:1;10638;10635;10628:15;10624:19;;10694:1;10691;10688;10681:15;10677:19;;10747:1;10744;10741;10734:15;10730:19;;10808:1;10801:4;10795;10791:15;10783:27;10853:1;10849;10846;10843;10839:9;10835:16;10831:24;10827:28;;10896:1;10890:3;10884:4;10880:14;10872:26;10942:1;10933:6;10927:4;10923:17;10915:29;11083:1;11077:3;11067:7;11059:6;11055:20;11045:36;11041:44;11126:2;11120:3;11114:4;11110:14;11102:27;11166:1;11162:2;11158;11151:17;11146:22;;11209:1;11203:3;11197:4;11193:14;11185:26;11247:1;11243:2;11240:1;11233:16;11228:21;;11290:1;11284:3;11278:4;11274:14;11266:26;11328:1;11324:2;11321:1;11314:16;11309:21;;11371:1;11365:3;11359:4;11355:14;11347:26;11409:1;11405:2;11402:1;11395:16;11390:21;;11452:1;11446:3;11440:4;11436:14;11428:26;11490:1;11486:2;11483:1;11476:16;11471:21;;11533:1;11527:3;11521:4;11517:14;11509:26;11631:1;11625:3;11618:4;11610:6;11606:17;11596:33;11592:41;11587:2;11581:4;11577:13;11569:65;8872:2776;;;8820:2828;;;:::o;11674:1173::-;11735:1;12272;12218;12157;12087;12043:3;12037:4;12033:14;12027:21;11986:136;11949:239;11916:329;11888:1;11856:439;11824:8;11818:4;11814:19;11786:527;12381:35;12413:1;12404:6;12398:4;12394:17;12381:35;:::i;:::-;12476:3;12470:4;12466:14;12460:21;12503:1;12498:6;;12739:1;12711:2;12674:8;12668:4;12664:20;12658:27;12626:136;12593:8;12587:4;12583:20;12555:225;11707:1140;;11674:1173;:::o;12873:651::-;12934:1;13396;13351;13268;13230:2;13224:4;13220:13;13214:20;13170:8;13164:4;13160:19;13154:26;13114:185;13080:2;13047:278;13018:356;12993:422;12987:428;;13489:2;13483:3;13477:4;13473:14;13466:26;12906:618;12873:651;;:::o;13538:2196::-;13590:5;13612:6;13635;13785:1;13757:3;13751:4;13747:14;13741:21;13709:7;13701:6;13697:20;13691:27;13663:141;13658:146;;13967:1;13938:5;13932:4;13928:16;13922:23;13890:8;13882:6;13878:21;13872:28;13844:142;13838:148;;14111:1;14080:7;14072:6;14068:20;14062:27;14038:2;14010:120;14004:126;;14268:1;14238:6;14232:4;14228:17;14222:24;14198:2;14170:117;14164:123;;14434:1;14405:5;14399:4;14395:16;14389:23;14357:8;14349:6;14345:21;14339:28;14311:142;14305:148;;14578:1;14547:7;14539:6;14535:20;14529:27;14505:2;14477:120;14471:126;;14735:1;14705:6;14699:4;14695:17;14689:24;14665:2;14637:117;14631:123;;14809:1;14805:2;14801;14794:17;14788:23;;14974:1;14944:6;14938:4;14934:17;14928:24;14897:7;14889:6;14885:20;14879:27;14851:142;14845:148;;15032:1;15028:2;15024;15017:17;15011:23;;15098:1;15086:8;15078:6;15074:21;15068:28;15064:2;15057:43;15051:49;;15160:1;15150:6;15144:4;15140:17;15134:24;15130:2;15123:39;15117:45;;15326:1;15295:6;15289:4;15285:17;15279:24;15246:8;15240:4;15236:19;15230:26;15202:143;15196:149;;15469:1;15438:6;15432:4;15428:17;15422:24;15397:2;15369:119;15363:125;;15527:1;15523:2;15519;15512:17;15506:23;;15592:1;15587:2;15583:1;15580;15576:9;15572:18;15568:26;15563:31;;15652:1;15642:6;15636:4;15632:17;15626:24;15623:1;15616:38;15611:43;;15717:1;15706:7;15700:4;15696:18;15688:31;13572:2162;;;13538:2196;;:::o;15760:132::-;15819:2;15813:9;15809:2;15802:21;15873:2;15870;15866:10;15860:17;15855:2;15851;15847:11;15840:38;15760:132;;:::o;15906:498::-;15965:4;15959:11;16005:2;15999:9;15994:3;15987:22;16060:2;16056;16052:11;16046:18;16041:2;16037:3;16033:11;16026:39;16108:2;16102:9;16097:2;16093:3;16089:11;16082:30;16163:2;16159;16155:11;16149:18;16144:2;16140:3;16136:11;16129:39;16247:2;16243;16238:3;16233;16230:1;16223:4;16216:5;16212:16;16201:49;16294:7;16284:106;;16335:1;16332;16325:12;16367:4;16365:1;16358:14;16284:106;15930:474;;15906:498;;:::o;16418:819::-;16466:11;16511:4;16505:11;16551:2;16545:9;16540:3;16533:22;16606:2;16602;16598:11;16592:18;16587:2;16583:3;16579:11;16572:39;16648:1;16643:2;16639:3;16635:11;16628:22;16725:2;16720:3;16716:2;16711:3;16708:1;16701:4;16694:5;16690:16;16679:49;16668:60;;16772:7;16762:106;;16813:1;16810;16803:12;16845:4;16843:1;16836:14;16762:106;16928:2;16922:9;16917:2;16913:3;16909:11;16902:30;16983:2;16979;16975:11;16969:18;16964:2;16960:3;16956:11;16949:39;17063:2;17059;17054:3;17049;17046:1;17039:4;17032:5;17028:16;17017:49;17006:60;;17110:7;17100:106;;17151:1;17148;17141:12;17183:4;17181:1;17174:14;17100:106;16448:789;;16418:819;;;:::o;17251:780::-;17302:11;17347:4;17341:11;17381:1;17376:3;17369:14;17420:1;17415:2;17411:3;17407:11;17400:22;17459:1;17454:2;17450:3;17446:11;17439:22;17536:2;17531:3;17527:2;17522:3;17519:1;17512:4;17505:5;17501:16;17490:49;17479:60;;17583:7;17573:106;;17624:1;17621;17614:12;17656:4;17654:1;17647:14;17573:106;17739:2;17733:9;17728:2;17724:3;17720:11;17713:30;17794:2;17790;17786:11;17780:18;17775:2;17771:3;17767:11;17760:39;17874:2;17870;17865:3;17860;17857:1;17850:4;17843:5;17839:16;17828:49;17817:60;;17921:7;17911:106;;17962:1;17959;17952:12;17994:4;17992:1;17985:14;17911:106;17284:747;;17251:780;;;;:::o;18045:441::-;18096:11;18141:4;18135:11;18175:1;18170:3;18163:14;18214:1;18209:2;18205:3;18201:11;18194:22;18253:1;18248:2;18244:3;18240:11;18233:22;18329:2;18325;18321;18316:3;18313:1;18306:4;18299:5;18295:16;18284:48;18273:59;;18376:7;18366:106;;18417:1;18414;18407:12;18449:4;18447:1;18440:14;18366:106;18078:408;;18045:441;;;;:::o;18501:206::-;18573:3;18567:4;18563:14;18594:28;18616:4;18608:6;18604:17;18601:1;18594:28;:::i;:::-;18639:54;18688:2;18682:4;18678:13;18672:20;18664:5;18656:6;18652:18;18649:1;18639:54;:::i;:::-;18536:171;18501:206;;:::o;18746:4478::-;18799:5;18821:6;18863:3;18857:4;18853:14;18997:1;18990:3;18984:4;18980:14;18974:21;18963:7;18955:6;18951:20;18945:27;18937:62;18932:67;;19016:26;19040:1;19035:3;19030;19027:1;19016:26;:::i;:::-;19105:1;19094:7;19086:6;19082:20;19076:27;19073:1;19065:42;19060:47;;19140:26;19164:1;19159:3;19154;19151:1;19140:26;:::i;:::-;19249:1;19242:3;19236:4;19232:14;19226:21;19215:7;19207:6;19203:20;19197:27;19189:62;19184:67;;19268:26;19292:1;19287:3;19282;19279:1;19268:26;:::i;:::-;19393:1;19386:3;19380:4;19376:14;19370:21;19359:7;19351:6;19347:20;19341:27;19333:62;19328:67;;19412:26;19436:1;19431:3;19426;19423:1;19412:26;:::i;:::-;19476:3;19470:4;19466:14;19460:21;19456:25;;19498:26;19522:1;19517:3;19512;19509:1;19498:26;:::i;:::-;19610:1;19599:7;19593:4;19589:18;19583:25;19572:7;19564:6;19560:20;19554:27;19547:65;19542:70;;19670:1;19660:6;19654:4;19650:17;19644:24;19641:1;19634:38;19629:43;;19733:1;19722:7;19716:4;19712:18;19706:25;19702:2;19695:40;19689:46;;19798:1;19787:7;19779:6;19775:20;19769:27;19765:2;19758:42;19752:48;;19860:1;19850:6;19844:4;19840:17;19834:24;19830:2;19823:39;19817:45;;19898:1;19894:2;19891:1;19884:16;19879:21;;19961:1;19950:7;19944:4;19940:18;19934:25;19930:2;19923:40;19917:46;;20026:1;20015:7;20007:6;20003:20;19997:27;19993:2;19986:42;19980:48;;20088:1;20078:6;20072:4;20068:17;20062:24;20058:2;20051:39;20045:45;;20126:1;20122:2;20119:1;20112:16;20107:21;;20186:1;20176:6;20170:4;20166:17;20160:24;20157:1;20150:38;20145:43;;20243:1;20236:3;20230:4;20226:14;20220:21;20217:1;20210:35;20205:40;;20329:1;20319:6;20313:4;20309:17;20303:24;20291:8;20285:4;20281:19;20275:26;20268:63;20262:69;;20391:1;20381:6;20375:4;20371:17;20365:24;20361:2;20354:39;20348:45;;20450:1;20443:3;20437:4;20433:14;20427:21;20423:2;20416:36;20410:42;;20488:1;20484:2;20481:1;20474:16;20469:21;;20544:1;20538:2;20532:4;20528:13;20522:20;20519:1;20512:34;20507:39;;20563:32;20593:1;20588:2;20580:6;20576:15;20573:1;20563:32;:::i;:::-;20696:1;20684:8;20676:6;20672:21;20666:28;20657:5;20651:4;20647:16;20641:23;20634:64;20629:69;;20759:1;20748:7;20740:6;20736:20;20730:27;20727:1;20720:41;20715:46;;20819:1;20809:6;20803:4;20799:17;20793:24;20790:1;20783:38;20778:43;;20906:1;20894:8;20886:6;20882:21;20876:28;20867:5;20861:4;20857:16;20851:23;20844:64;20838:70;;20971:1;20960:7;20952:6;20948:20;20942:27;20938:2;20931:42;20925:48;;21033:1;21023:6;21017:4;21013:17;21007:24;21003:2;20996:39;20990:45;;21071:1;21067:2;21064:1;21057:16;21052:21;;21131:1;21121:6;21115:4;21111:17;21105:24;21102:1;21095:38;21090:43;;21188:1;21181:3;21175:4;21171:14;21165:21;21162:1;21155:35;21150:40;;21247:1;21238:5;21232:4;21228:16;21222:23;21219:1;21212:37;21207:42;;21311:1;21299:8;21291:6;21287:21;21281:28;21278:1;21271:42;21266:47;;21350:1;21346;21343;21339:9;21335:17;21330:22;;21369:26;21393:1;21388:3;21383;21380:1;21369:26;:::i;:::-;21445:28;21468:3;21460:6;21456:16;21452:1;21445:28;:::i;:::-;21512:4;21506;21502:15;21496:22;21491:27;;21535:33;21566:1;21560:3;21552:6;21548:16;21545:1;21535:33;:::i;:::-;21620:1;21617;21614;21607:15;21602:20;;21639:33;21670:1;21664:3;21656:6;21652:16;21649:1;21639:33;:::i;:::-;21706:52;21752:3;21746:4;21742:14;21736:21;21731:2;21723:6;21719:15;21716:1;21706:52;:::i;:::-;21775;21821:3;21815:4;21811:14;21805:21;21800:2;21792:6;21788:15;21785:1;21775:52;:::i;:::-;21844;21890:3;21884:4;21880:14;21874:21;21869:2;21861:6;21857:15;21854:1;21844:52;:::i;:::-;21913:46;21953:3;21947:4;21943:14;21937:21;21932:3;21927;21924:1;21913:46;:::i;:::-;21976;22016:3;22010:4;22006:14;22000:21;21995:3;21990;21987:1;21976:46;:::i;:::-;22108:7;22102:4;22098:18;22092:25;22087:30;;22212:1;22208;22201:3;22195:4;22191:14;22185:21;22174:7;22166:6;22162:20;22156:27;22149:61;22146:1;22139:75;22134:80;;22309:1;22305;22298:3;22292:4;22288:14;22282:21;22271:7;22263:6;22259:20;22253:27;22246:61;22243:1;22236:75;22231:80;;22406:1;22402;22395:3;22389:4;22385:14;22379:21;22368:7;22360:6;22356:20;22350:27;22343:61;22340:1;22333:75;22328:80;;22503:1;22499;22492:3;22486:4;22482:14;22476:21;22465:7;22457:6;22453:20;22447:27;22440:61;22437:1;22430:75;22425:80;;22601:1;22597;22590:3;22584:4;22580:14;22574:21;22562:8;22554:6;22550:21;22544:28;22537:62;22534:1;22527:76;22522:81;;22699:1;22695;22688:3;22682:4;22678:14;22672:21;22660:8;22652:6;22648:21;22642:28;22635:62;22632:1;22625:76;22620:81;;22796:1;22792;22786:2;22780:4;22776:13;22770:20;22758:8;22750:6;22746:21;22740:28;22733:61;22730:1;22723:75;22718:80;;22835:1;22831;22828;22824:9;22820:17;22815:22;;22854:26;22878:1;22873:3;22868;22865:1;22854:26;:::i;:::-;22986:3;22980:4;22976:14;22970:21;22965:26;;23008:34;23040:1;23033:4;23025:6;23021:17;23018:1;23008:34;:::i;:::-;23117:1;23110:3;23104:4;23100:14;23094:21;23088:2;23082:4;23078:13;23072:20;23065:54;23060:59;;23155:1;23151:2;23148:1;23141:16;23136:21;;23174:35;23207:1;23199:5;23191:6;23187:18;23184:1;23174:35;:::i;:::-;18781:4443;;;18746:4478;;:::o;23250:915::-;23281:4;23321;23315:11;23371:3;23365:4;23361:14;23355:21;23350:3;23343:34;23440:2;23434:3;23428:4;23424:14;23420:23;23414:30;23409:2;23405:3;23401:11;23394:51;23482:4;23477:2;23473:3;23469:11;23462:25;23524:4;23519:2;23515:3;23511:11;23504:25;23567:4;23561:3;23557;23553:12;23546:26;23610:4;23604:3;23600;23596:12;23589:26;23669:3;23663:4;23659:14;23653:21;23647:3;23643;23639:12;23632:43;23727:2;23721:3;23715:4;23711:14;23707:23;23701:30;23769:2;23765:1;23761:2;23757:10;23753:19;23748:24;;23810:1;23804:3;23800;23796:12;23789:23;23850:4;23844:3;23840;23836:12;23829:26;23893:4;23887:3;23883;23879:12;23872:26;23936:4;23930:3;23926;23922:12;23915:26;23979:4;23973:3;23969;23965:12;23958:26;24080:4;24075:3;24070;24065;24062:1;24055:4;24048:5;24044:16;24033:52;24146:3;24140:10;24131:7;24127:24;24119:32;;23286:879;;;23250:915;;;:::o;:::-;24209:4;24203:11;24250:7;24244:4;24240:18;24234:4;24227:32;24285:17;24296:5;24285:17;:::i;:::-;24315:44;24348:10;24342:4;24335:5;24315:44;:::i;:::-;24372:23;24390:4;24372:23;:::i;:::-;24408:29;24426:10;24420:4;24408:29;:::i;:::-;24450:23;24468:4;24461:5;24450:23;:::i;:::-;24486:24;24505:4;24498:5;24486:24;:::i;:::-;24523;24542:4;24535:5;24523:24;:::i;:::-;24575:18;24588:4;24575:18;:::i;:::-;24642:7;24636:4;24632:18;24626:4;24619:32;24674:7;24671:1;24664:18;24704:4;24702:1;24695:14;7:75:9;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:307::-;1357:4;1447:18;1439:6;1436:30;1433:56;;;1469:18;;:::i;:::-;1433:56;1507:29;1529:6;1507:29;:::i;:::-;1499:37;;1591:4;1585;1581:15;1573:23;;1296:307;;;:::o;1609:146::-;1706:6;1701:3;1696;1683:30;1747:1;1738:6;1733:3;1729:16;1722:27;1609:146;;;:::o;1761:423::-;1838:5;1863:65;1879:48;1920:6;1879:48;:::i;:::-;1863:65;:::i;:::-;1854:74;;1951:6;1944:5;1937:21;1989:4;1982:5;1978:16;2027:3;2018:6;2013:3;2009:16;2006:25;2003:112;;;2034:79;;:::i;:::-;2003:112;2124:54;2171:6;2166:3;2161;2124:54;:::i;:::-;1844:340;1761:423;;;;;:::o;2203:338::-;2258:5;2307:3;2300:4;2292:6;2288:17;2284:27;2274:122;;2315:79;;:::i;:::-;2274:122;2432:6;2419:20;2457:78;2531:3;2523:6;2516:4;2508:6;2504:17;2457:78;:::i;:::-;2448:87;;2264:277;2203:338;;;;:::o;2547:311::-;2624:4;2714:18;2706:6;2703:30;2700:56;;;2736:18;;:::i;:::-;2700:56;2786:4;2778:6;2774:17;2766:25;;2846:4;2840;2836:15;2828:23;;2547:311;;;:::o;2864:117::-;2973:1;2970;2963:12;2987:77;3024:7;3053:5;3042:16;;2987:77;;;:::o;3070:122::-;3143:24;3161:5;3143:24;:::i;:::-;3136:5;3133:35;3123:63;;3182:1;3179;3172:12;3123:63;3070:122;:::o;3198:139::-;3244:5;3282:6;3269:20;3260:29;;3298:33;3325:5;3298:33;:::i;:::-;3198:139;;;;:::o;3360:710::-;3456:5;3481:81;3497:64;3554:6;3497:64;:::i;:::-;3481:81;:::i;:::-;3472:90;;3582:5;3611:6;3604:5;3597:21;3645:4;3638:5;3634:16;3627:23;;3698:4;3690:6;3686:17;3678:6;3674:30;3727:3;3719:6;3716:15;3713:122;;;3746:79;;:::i;:::-;3713:122;3861:6;3844:220;3878:6;3873:3;3870:15;3844:220;;;3953:3;3982:37;4015:3;4003:10;3982:37;:::i;:::-;3977:3;3970:50;4049:4;4044:3;4040:14;4033:21;;3920:144;3904:4;3899:3;3895:14;3888:21;;3844:220;;;3848:21;3462:608;;3360:710;;;;;:::o;4093:370::-;4164:5;4213:3;4206:4;4198:6;4194:17;4190:27;4180:122;;4221:79;;:::i;:::-;4180:122;4338:6;4325:20;4363:94;4453:3;4445:6;4438:4;4430:6;4426:17;4363:94;:::i;:::-;4354:103;;4170:293;4093:370;;;;:::o;4469:862::-;4571:6;4579;4628:2;4616:9;4607:7;4603:23;4599:32;4596:119;;;4634:79;;:::i;:::-;4596:119;4782:1;4771:9;4767:17;4754:31;4812:18;4804:6;4801:30;4798:117;;;4834:79;;:::i;:::-;4798:117;4939:62;4993:7;4984:6;4973:9;4969:22;4939:62;:::i;:::-;4929:72;;4725:286;5078:2;5067:9;5063:18;5050:32;5109:18;5101:6;5098:30;5095:117;;;5131:79;;:::i;:::-;5095:117;5236:78;5306:7;5297:6;5286:9;5282:22;5236:78;:::i;:::-;5226:88;;5021:303;4469:862;;;;;:::o;5337:90::-;5371:7;5414:5;5407:13;5400:21;5389:32;;5337:90;;;:::o;5433:109::-;5514:21;5529:5;5514:21;:::i;:::-;5509:3;5502:34;5433:109;;:::o;5548:210::-;5635:4;5673:2;5662:9;5658:18;5650:26;;5686:65;5748:1;5737:9;5733:17;5724:6;5686:65;:::i;:::-;5548:210;;;;:::o"},"methodIdentifiers":{"verifyProof(bytes,uint256[])":"1e8e1e13"}},"metadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"uint256[]\",\"name\":\"pubSignals\",\"type\":\"uint256[]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/workstep3Verifier.sol\":\"PlonkVerifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/workstep3Verifier.sol\":{\"keccak256\":\"0x68efae25d205284adca1e3641032414aa14bf116a223ac2dba555273677f022c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0fd611a09de61d2f0ebc6a2ce3055b845ccdd262f3cae32ac00436122f5362dc\",\"dweb:/ipfs/QmTVGwvpBsVuTtQ45BrLUvjoy2LCxycLQEdADXTZc1JfVK\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/examples/bri-3/ccsmArtifacts/contracts/CcsmBpiStateAnchor.sol/CcsmBpiStateAnchor.dbg.json b/examples/bri-3/ccsmArtifacts/contracts/CcsmBpiStateAnchor.sol/CcsmBpiStateAnchor.dbg.json new file mode 100644 index 000000000..a27c57efe --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/contracts/CcsmBpiStateAnchor.sol/CcsmBpiStateAnchor.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/a7326b529c767f8dc53ea81689820584.json" +} diff --git a/examples/bri-3/ccsmArtifacts/CcsmBpiStateAnchor.json b/examples/bri-3/ccsmArtifacts/contracts/CcsmBpiStateAnchor.sol/CcsmBpiStateAnchor.json similarity index 57% rename from examples/bri-3/ccsmArtifacts/CcsmBpiStateAnchor.json rename to examples/bri-3/ccsmArtifacts/contracts/CcsmBpiStateAnchor.sol/CcsmBpiStateAnchor.json index ddee3f176..b408133f5 100644 --- a/examples/bri-3/ccsmArtifacts/CcsmBpiStateAnchor.json +++ b/examples/bri-3/ccsmArtifacts/contracts/CcsmBpiStateAnchor.sol/CcsmBpiStateAnchor.json @@ -1,7 +1,7 @@ { "_format": "hh-sol-artifact-1", "contractName": "CcsmBpiStateAnchor", - "sourceName": "src/bri/ccsm/contracts/CcsmBpiStateAnchor.sol", + "sourceName": "contracts/CcsmBpiStateAnchor.sol", "abi": [ { "inputs": [ @@ -328,8 +328,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162001b8438038062001b8483398181016040528101906200003791906200042b565b6200004c6000801b33620000c860201b60201c565b5060005b8151811015620000c057620000a97fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758383815181106200009557620000946200047c565b5b6020026020010151620000c860201b60201c565b508080620000b790620004e4565b91505062000050565b505062000531565b6000620000dc8383620001cb60201b60201c565b620001c057600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200015c6200023560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050620001c5565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620002a18262000256565b810181811067ffffffffffffffff82111715620002c357620002c262000267565b5b80604052505050565b6000620002d86200023d565b9050620002e6828262000296565b919050565b600067ffffffffffffffff82111562000309576200030862000267565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200034c826200031f565b9050919050565b6200035e816200033f565b81146200036a57600080fd5b50565b6000815190506200037e8162000353565b92915050565b60006200039b6200039584620002eb565b620002cc565b90508083825260208201905060208402830185811115620003c157620003c06200031a565b5b835b81811015620003ee5780620003d988826200036d565b845260208401935050602081019050620003c3565b5050509392505050565b600082601f83011262000410576200040f62000251565b5b81516200042284826020860162000384565b91505092915050565b60006020828403121562000444576200044362000247565b5b600082015167ffffffffffffffff8111156200046557620004646200024c565b5b6200047384828501620003f8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000620004f182620004da565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620005265762000525620004ab565b5b600182019050919050565b61164380620005416000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063513ec2f811610071578063513ec2f81461016257806375b238fc14610192578063890f10a0146101b057806391d14854146101e0578063a217fddf14610210578063d547741f1461022e576100a9565b806301ffc9a7146100ae578063248a9ca3146100de5780632588cd551461010e5780632f2ff15d1461012a57806336568abe14610146575b600080fd5b6100c860048036038101906100c39190610ad0565b61024a565b6040516100d59190610b18565b60405180910390f35b6100f860048036038101906100f39190610b69565b6102c4565b6040516101059190610ba5565b60405180910390f35b61012860048036038101906101239190610c25565b6102e3565b005b610144600480360381019061013f9190610d04565b6104ed565b005b610160600480360381019061015b9190610d04565b61050f565b005b61017c60048036038101906101779190610e85565b61058a565b6040516101899190610f4d565b60405180910390f35b61019a610640565b6040516101a79190610ba5565b60405180910390f35b6101ca60048036038101906101c59190610f6f565b610664565b6040516101d79190610f4d565b60405180910390f35b6101fa60048036038101906101f59190610d04565b610717565b6040516102079190610b18565b60405180910390f35b610218610781565b6040516102259190610ba5565b60405180910390f35b61024860048036038101906102439190610d04565b610788565b005b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102bd57506102bc826107aa565b5b9050919050565b6000806000838152602001908152602001600020600101549050919050565b61030d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533610717565b61034c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103439061102e565b60405180910390fd5b60008484905011610392576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103899061109a565b60405180910390fd5b602484849050106103d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061112c565b60405180910390fd5b6000828290501161041e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041590611198565b60405180910390fd5b610100828290501115610466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045d9061122a565b60405180910390fd5b81816001868660405161047a92919061127a565b908152602001604051809103902091826104959291906114b4565b5083836040516104a692919061127a565b60405180910390207f6468084a45bfadcd3a84169a78a1a25c53317fc97f185e4037e0696cfc913ccc83836040516104df9291906115b1565b60405180910390a250505050565b6104f6826102c4565b6104ff81610814565b6105098383610828565b50505050565b610517610919565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461057b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105858282610921565b505050565b60018180516020810182018051848252602083016020850120818352809550505050505060009150905080546105bf906112cd565b80601f01602080910402602001604051908101604052809291908181526020018280546105eb906112cd565b80156106385780601f1061060d57610100808354040283529160200191610638565b820191906000526020600020905b81548152906001019060200180831161061b57829003601f168201915b505050505081565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b60606001838360405161067892919061127a565b90815260200160405180910390208054610691906112cd565b80601f01602080910402602001604051908101604052809291908181526020018280546106bd906112cd565b801561070a5780601f106106df5761010080835404028352916020019161070a565b820191906000526020600020905b8154815290600101906020018083116106ed57829003601f168201915b5050505050905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b610791826102c4565b61079a81610814565b6107a48383610921565b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61082581610820610919565b610a13565b50565b60006108348383610717565b61090e57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506108ab610919565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610913565b600090505b92915050565b600033905090565b600061092d8383610717565b15610a0857600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506109a5610919565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610a0d565b600090505b92915050565b610a1d8282610717565b610a605780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610a579291906115e4565b60405180910390fd5b5050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610aad81610a78565b8114610ab857600080fd5b50565b600081359050610aca81610aa4565b92915050565b600060208284031215610ae657610ae5610a6e565b5b6000610af484828501610abb565b91505092915050565b60008115159050919050565b610b1281610afd565b82525050565b6000602082019050610b2d6000830184610b09565b92915050565b6000819050919050565b610b4681610b33565b8114610b5157600080fd5b50565b600081359050610b6381610b3d565b92915050565b600060208284031215610b7f57610b7e610a6e565b5b6000610b8d84828501610b54565b91505092915050565b610b9f81610b33565b82525050565b6000602082019050610bba6000830184610b96565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610be557610be4610bc0565b5b8235905067ffffffffffffffff811115610c0257610c01610bc5565b5b602083019150836001820283011115610c1e57610c1d610bca565b5b9250929050565b60008060008060408587031215610c3f57610c3e610a6e565b5b600085013567ffffffffffffffff811115610c5d57610c5c610a73565b5b610c6987828801610bcf565b9450945050602085013567ffffffffffffffff811115610c8c57610c8b610a73565b5b610c9887828801610bcf565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cd182610ca6565b9050919050565b610ce181610cc6565b8114610cec57600080fd5b50565b600081359050610cfe81610cd8565b92915050565b60008060408385031215610d1b57610d1a610a6e565b5b6000610d2985828601610b54565b9250506020610d3a85828601610cef565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610d9282610d49565b810181811067ffffffffffffffff82111715610db157610db0610d5a565b5b80604052505050565b6000610dc4610a64565b9050610dd08282610d89565b919050565b600067ffffffffffffffff821115610df057610def610d5a565b5b610df982610d49565b9050602081019050919050565b82818337600083830152505050565b6000610e28610e2384610dd5565b610dba565b905082815260208101848484011115610e4457610e43610d44565b5b610e4f848285610e06565b509392505050565b600082601f830112610e6c57610e6b610bc0565b5b8135610e7c848260208601610e15565b91505092915050565b600060208284031215610e9b57610e9a610a6e565b5b600082013567ffffffffffffffff811115610eb957610eb8610a73565b5b610ec584828501610e57565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610f08578082015181840152602081019050610eed565b60008484015250505050565b6000610f1f82610ece565b610f298185610ed9565b9350610f39818560208601610eea565b610f4281610d49565b840191505092915050565b60006020820190508181036000830152610f678184610f14565b905092915050565b60008060208385031215610f8657610f85610a6e565b5b600083013567ffffffffffffffff811115610fa457610fa3610a73565b5b610fb085828601610bcf565b92509250509250929050565b7f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000611018602183610ed9565b915061102382610fbc565b604082019050919050565b600060208201905081810360008301526110478161100b565b9050919050565b7f576f726b67726f757049642063616e6e6f7420626520656d7074790000000000600082015250565b6000611084601b83610ed9565b915061108f8261104e565b602082019050919050565b600060208201905081810360008301526110b381611077565b9050919050565b7f576f726b67726f757049642063616e6e6f74206578636565642033362062797460008201527f6573000000000000000000000000000000000000000000000000000000000000602082015250565b6000611116602283610ed9565b9150611121826110ba565b604082019050919050565b6000602082019050818103600083015261114581611109565b9050919050565b7f416e63686f72486173682063616e6e6f7420626520656d707479000000000000600082015250565b6000611182601a83610ed9565b915061118d8261114c565b602082019050919050565b600060208201905081810360008301526111b181611175565b9050919050565b7f416e63686f72486173682063616e6e6f7420657863656564203235362062797460008201527f6573000000000000000000000000000000000000000000000000000000000000602082015250565b6000611214602283610ed9565b915061121f826111b8565b604082019050919050565b6000602082019050818103600083015261124381611207565b9050919050565b600081905092915050565b6000611261838561124a565b935061126e838584610e06565b82840190509392505050565b6000611287828486611255565b91508190509392505050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806112e557607f821691505b6020821081036112f8576112f761129e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026113607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611323565b61136a8683611323565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006113b16113ac6113a784611382565b61138c565b611382565b9050919050565b6000819050919050565b6113cb83611396565b6113df6113d7826113b8565b848454611330565b825550505050565b600090565b6113f46113e7565b6113ff8184846113c2565b505050565b5b81811015611423576114186000826113ec565b600181019050611405565b5050565b601f82111561146857611439816112fe565b61144284611313565b81016020851015611451578190505b61146561145d85611313565b830182611404565b50505b505050565b600082821c905092915050565b600061148b6000198460080261146d565b1980831691505092915050565b60006114a4838361147a565b9150826002028217905092915050565b6114be8383611293565b67ffffffffffffffff8111156114d7576114d6610d5a565b5b6114e182546112cd565b6114ec828285611427565b6000601f83116001811461151b5760008415611509578287013590505b6115138582611498565b86555061157b565b601f198416611529866112fe565b60005b828110156115515784890135825560018201915060208501945060208101905061152c565b8683101561156e578489013561156a601f89168261147a565b8355505b6001600288020188555050505b50505050505050565b60006115908385610ed9565b935061159d838584610e06565b6115a683610d49565b840190509392505050565b600060208201905081810360008301526115cc818486611584565b90509392505050565b6115de81610cc6565b82525050565b60006040820190506115f960008301856115d5565b6116066020830184610b96565b939250505056fea2646970667358221220398d681d049bf182f5cdf9c7ccbfff49c472631ea7fd7aa7def7b30e6140094e64736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c8063513ec2f811610071578063513ec2f81461016257806375b238fc14610192578063890f10a0146101b057806391d14854146101e0578063a217fddf14610210578063d547741f1461022e576100a9565b806301ffc9a7146100ae578063248a9ca3146100de5780632588cd551461010e5780632f2ff15d1461012a57806336568abe14610146575b600080fd5b6100c860048036038101906100c39190610ad0565b61024a565b6040516100d59190610b18565b60405180910390f35b6100f860048036038101906100f39190610b69565b6102c4565b6040516101059190610ba5565b60405180910390f35b61012860048036038101906101239190610c25565b6102e3565b005b610144600480360381019061013f9190610d04565b6104ed565b005b610160600480360381019061015b9190610d04565b61050f565b005b61017c60048036038101906101779190610e85565b61058a565b6040516101899190610f4d565b60405180910390f35b61019a610640565b6040516101a79190610ba5565b60405180910390f35b6101ca60048036038101906101c59190610f6f565b610664565b6040516101d79190610f4d565b60405180910390f35b6101fa60048036038101906101f59190610d04565b610717565b6040516102079190610b18565b60405180910390f35b610218610781565b6040516102259190610ba5565b60405180910390f35b61024860048036038101906102439190610d04565b610788565b005b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102bd57506102bc826107aa565b5b9050919050565b6000806000838152602001908152602001600020600101549050919050565b61030d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533610717565b61034c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103439061102e565b60405180910390fd5b60008484905011610392576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103899061109a565b60405180910390fd5b602484849050106103d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061112c565b60405180910390fd5b6000828290501161041e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041590611198565b60405180910390fd5b610100828290501115610466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045d9061122a565b60405180910390fd5b81816001868660405161047a92919061127a565b908152602001604051809103902091826104959291906114b4565b5083836040516104a692919061127a565b60405180910390207f6468084a45bfadcd3a84169a78a1a25c53317fc97f185e4037e0696cfc913ccc83836040516104df9291906115b1565b60405180910390a250505050565b6104f6826102c4565b6104ff81610814565b6105098383610828565b50505050565b610517610919565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461057b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105858282610921565b505050565b60018180516020810182018051848252602083016020850120818352809550505050505060009150905080546105bf906112cd565b80601f01602080910402602001604051908101604052809291908181526020018280546105eb906112cd565b80156106385780601f1061060d57610100808354040283529160200191610638565b820191906000526020600020905b81548152906001019060200180831161061b57829003601f168201915b505050505081565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b60606001838360405161067892919061127a565b90815260200160405180910390208054610691906112cd565b80601f01602080910402602001604051908101604052809291908181526020018280546106bd906112cd565b801561070a5780601f106106df5761010080835404028352916020019161070a565b820191906000526020600020905b8154815290600101906020018083116106ed57829003601f168201915b5050505050905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b610791826102c4565b61079a81610814565b6107a48383610921565b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61082581610820610919565b610a13565b50565b60006108348383610717565b61090e57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506108ab610919565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610913565b600090505b92915050565b600033905090565b600061092d8383610717565b15610a0857600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506109a5610919565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610a0d565b600090505b92915050565b610a1d8282610717565b610a605780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610a579291906115e4565b60405180910390fd5b5050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610aad81610a78565b8114610ab857600080fd5b50565b600081359050610aca81610aa4565b92915050565b600060208284031215610ae657610ae5610a6e565b5b6000610af484828501610abb565b91505092915050565b60008115159050919050565b610b1281610afd565b82525050565b6000602082019050610b2d6000830184610b09565b92915050565b6000819050919050565b610b4681610b33565b8114610b5157600080fd5b50565b600081359050610b6381610b3d565b92915050565b600060208284031215610b7f57610b7e610a6e565b5b6000610b8d84828501610b54565b91505092915050565b610b9f81610b33565b82525050565b6000602082019050610bba6000830184610b96565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610be557610be4610bc0565b5b8235905067ffffffffffffffff811115610c0257610c01610bc5565b5b602083019150836001820283011115610c1e57610c1d610bca565b5b9250929050565b60008060008060408587031215610c3f57610c3e610a6e565b5b600085013567ffffffffffffffff811115610c5d57610c5c610a73565b5b610c6987828801610bcf565b9450945050602085013567ffffffffffffffff811115610c8c57610c8b610a73565b5b610c9887828801610bcf565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cd182610ca6565b9050919050565b610ce181610cc6565b8114610cec57600080fd5b50565b600081359050610cfe81610cd8565b92915050565b60008060408385031215610d1b57610d1a610a6e565b5b6000610d2985828601610b54565b9250506020610d3a85828601610cef565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610d9282610d49565b810181811067ffffffffffffffff82111715610db157610db0610d5a565b5b80604052505050565b6000610dc4610a64565b9050610dd08282610d89565b919050565b600067ffffffffffffffff821115610df057610def610d5a565b5b610df982610d49565b9050602081019050919050565b82818337600083830152505050565b6000610e28610e2384610dd5565b610dba565b905082815260208101848484011115610e4457610e43610d44565b5b610e4f848285610e06565b509392505050565b600082601f830112610e6c57610e6b610bc0565b5b8135610e7c848260208601610e15565b91505092915050565b600060208284031215610e9b57610e9a610a6e565b5b600082013567ffffffffffffffff811115610eb957610eb8610a73565b5b610ec584828501610e57565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610f08578082015181840152602081019050610eed565b60008484015250505050565b6000610f1f82610ece565b610f298185610ed9565b9350610f39818560208601610eea565b610f4281610d49565b840191505092915050565b60006020820190508181036000830152610f678184610f14565b905092915050565b60008060208385031215610f8657610f85610a6e565b5b600083013567ffffffffffffffff811115610fa457610fa3610a73565b5b610fb085828601610bcf565b92509250509250929050565b7f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000611018602183610ed9565b915061102382610fbc565b604082019050919050565b600060208201905081810360008301526110478161100b565b9050919050565b7f576f726b67726f757049642063616e6e6f7420626520656d7074790000000000600082015250565b6000611084601b83610ed9565b915061108f8261104e565b602082019050919050565b600060208201905081810360008301526110b381611077565b9050919050565b7f576f726b67726f757049642063616e6e6f74206578636565642033362062797460008201527f6573000000000000000000000000000000000000000000000000000000000000602082015250565b6000611116602283610ed9565b9150611121826110ba565b604082019050919050565b6000602082019050818103600083015261114581611109565b9050919050565b7f416e63686f72486173682063616e6e6f7420626520656d707479000000000000600082015250565b6000611182601a83610ed9565b915061118d8261114c565b602082019050919050565b600060208201905081810360008301526111b181611175565b9050919050565b7f416e63686f72486173682063616e6e6f7420657863656564203235362062797460008201527f6573000000000000000000000000000000000000000000000000000000000000602082015250565b6000611214602283610ed9565b915061121f826111b8565b604082019050919050565b6000602082019050818103600083015261124381611207565b9050919050565b600081905092915050565b6000611261838561124a565b935061126e838584610e06565b82840190509392505050565b6000611287828486611255565b91508190509392505050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806112e557607f821691505b6020821081036112f8576112f761129e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026113607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611323565b61136a8683611323565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006113b16113ac6113a784611382565b61138c565b611382565b9050919050565b6000819050919050565b6113cb83611396565b6113df6113d7826113b8565b848454611330565b825550505050565b600090565b6113f46113e7565b6113ff8184846113c2565b505050565b5b81811015611423576114186000826113ec565b600181019050611405565b5050565b601f82111561146857611439816112fe565b61144284611313565b81016020851015611451578190505b61146561145d85611313565b830182611404565b50505b505050565b600082821c905092915050565b600061148b6000198460080261146d565b1980831691505092915050565b60006114a4838361147a565b9150826002028217905092915050565b6114be8383611293565b67ffffffffffffffff8111156114d7576114d6610d5a565b5b6114e182546112cd565b6114ec828285611427565b6000601f83116001811461151b5760008415611509578287013590505b6115138582611498565b86555061157b565b601f198416611529866112fe565b60005b828110156115515784890135825560018201915060208501945060208101905061152c565b8683101561156e578489013561156a601f89168261147a565b8355505b6001600288020188555050505b50505050505050565b60006115908385610ed9565b935061159d838584610e06565b6115a683610d49565b840190509392505050565b600060208201905081810360008301526115cc818486611584565b90509392505050565b6115de81610cc6565b82525050565b60006040820190506115f960008301856115d5565b6116066020830184610b96565b939250505056fea2646970667358221220398d681d049bf182f5cdf9c7ccbfff49c472631ea7fd7aa7def7b30e6140094e64736f6c63430008140033", + "bytecode": "0x60806040523480156200001157600080fd5b5060405162001af638038062001af6833981810160405281019062000037919062000423565b6200004c6000801b33620000c060201b60201c565b5060005b8151811015620000b857620000a97fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583838151811062000095576200009462000474565b5b6020026020010151620000c060201b60201c565b50808060010191505062000050565b5050620004a3565b6000620000d48383620001c360201b60201c565b620001b857600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620001546200022d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050620001bd565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000299826200024e565b810181811067ffffffffffffffff82111715620002bb57620002ba6200025f565b5b80604052505050565b6000620002d062000235565b9050620002de82826200028e565b919050565b600067ffffffffffffffff8211156200030157620003006200025f565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003448262000317565b9050919050565b620003568162000337565b81146200036257600080fd5b50565b60008151905062000376816200034b565b92915050565b6000620003936200038d84620002e3565b620002c4565b90508083825260208201905060208402830185811115620003b957620003b862000312565b5b835b81811015620003e65780620003d1888262000365565b845260208401935050602081019050620003bb565b5050509392505050565b600082601f83011262000408576200040762000249565b5b81516200041a8482602086016200037c565b91505092915050565b6000602082840312156200043c576200043b6200023f565b5b600082015167ffffffffffffffff8111156200045d576200045c62000244565b5b6200046b84828501620003f0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b61164380620004b36000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063513ec2f811610071578063513ec2f81461016257806375b238fc14610192578063890f10a0146101b057806391d14854146101e0578063a217fddf14610210578063d547741f1461022e576100a9565b806301ffc9a7146100ae578063248a9ca3146100de5780632588cd551461010e5780632f2ff15d1461012a57806336568abe14610146575b600080fd5b6100c860048036038101906100c39190610ad0565b61024a565b6040516100d59190610b18565b60405180910390f35b6100f860048036038101906100f39190610b69565b6102c4565b6040516101059190610ba5565b60405180910390f35b61012860048036038101906101239190610c25565b6102e3565b005b610144600480360381019061013f9190610d04565b6104ed565b005b610160600480360381019061015b9190610d04565b61050f565b005b61017c60048036038101906101779190610e85565b61058a565b6040516101899190610f4d565b60405180910390f35b61019a610640565b6040516101a79190610ba5565b60405180910390f35b6101ca60048036038101906101c59190610f6f565b610664565b6040516101d79190610f4d565b60405180910390f35b6101fa60048036038101906101f59190610d04565b610717565b6040516102079190610b18565b60405180910390f35b610218610781565b6040516102259190610ba5565b60405180910390f35b61024860048036038101906102439190610d04565b610788565b005b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102bd57506102bc826107aa565b5b9050919050565b6000806000838152602001908152602001600020600101549050919050565b61030d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533610717565b61034c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103439061102e565b60405180910390fd5b60008484905011610392576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103899061109a565b60405180910390fd5b602484849050106103d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061112c565b60405180910390fd5b6000828290501161041e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041590611198565b60405180910390fd5b610100828290501115610466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045d9061122a565b60405180910390fd5b81816001868660405161047a92919061127a565b908152602001604051809103902091826104959291906114b4565b5083836040516104a692919061127a565b60405180910390207f6468084a45bfadcd3a84169a78a1a25c53317fc97f185e4037e0696cfc913ccc83836040516104df9291906115b1565b60405180910390a250505050565b6104f6826102c4565b6104ff81610814565b6105098383610828565b50505050565b610517610919565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461057b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105858282610921565b505050565b60018180516020810182018051848252602083016020850120818352809550505050505060009150905080546105bf906112cd565b80601f01602080910402602001604051908101604052809291908181526020018280546105eb906112cd565b80156106385780601f1061060d57610100808354040283529160200191610638565b820191906000526020600020905b81548152906001019060200180831161061b57829003601f168201915b505050505081565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b60606001838360405161067892919061127a565b90815260200160405180910390208054610691906112cd565b80601f01602080910402602001604051908101604052809291908181526020018280546106bd906112cd565b801561070a5780601f106106df5761010080835404028352916020019161070a565b820191906000526020600020905b8154815290600101906020018083116106ed57829003601f168201915b5050505050905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b610791826102c4565b61079a81610814565b6107a48383610921565b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61082581610820610919565b610a13565b50565b60006108348383610717565b61090e57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506108ab610919565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610913565b600090505b92915050565b600033905090565b600061092d8383610717565b15610a0857600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506109a5610919565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610a0d565b600090505b92915050565b610a1d8282610717565b610a605780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610a579291906115e4565b60405180910390fd5b5050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610aad81610a78565b8114610ab857600080fd5b50565b600081359050610aca81610aa4565b92915050565b600060208284031215610ae657610ae5610a6e565b5b6000610af484828501610abb565b91505092915050565b60008115159050919050565b610b1281610afd565b82525050565b6000602082019050610b2d6000830184610b09565b92915050565b6000819050919050565b610b4681610b33565b8114610b5157600080fd5b50565b600081359050610b6381610b3d565b92915050565b600060208284031215610b7f57610b7e610a6e565b5b6000610b8d84828501610b54565b91505092915050565b610b9f81610b33565b82525050565b6000602082019050610bba6000830184610b96565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610be557610be4610bc0565b5b8235905067ffffffffffffffff811115610c0257610c01610bc5565b5b602083019150836001820283011115610c1e57610c1d610bca565b5b9250929050565b60008060008060408587031215610c3f57610c3e610a6e565b5b600085013567ffffffffffffffff811115610c5d57610c5c610a73565b5b610c6987828801610bcf565b9450945050602085013567ffffffffffffffff811115610c8c57610c8b610a73565b5b610c9887828801610bcf565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cd182610ca6565b9050919050565b610ce181610cc6565b8114610cec57600080fd5b50565b600081359050610cfe81610cd8565b92915050565b60008060408385031215610d1b57610d1a610a6e565b5b6000610d2985828601610b54565b9250506020610d3a85828601610cef565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610d9282610d49565b810181811067ffffffffffffffff82111715610db157610db0610d5a565b5b80604052505050565b6000610dc4610a64565b9050610dd08282610d89565b919050565b600067ffffffffffffffff821115610df057610def610d5a565b5b610df982610d49565b9050602081019050919050565b82818337600083830152505050565b6000610e28610e2384610dd5565b610dba565b905082815260208101848484011115610e4457610e43610d44565b5b610e4f848285610e06565b509392505050565b600082601f830112610e6c57610e6b610bc0565b5b8135610e7c848260208601610e15565b91505092915050565b600060208284031215610e9b57610e9a610a6e565b5b600082013567ffffffffffffffff811115610eb957610eb8610a73565b5b610ec584828501610e57565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610f08578082015181840152602081019050610eed565b60008484015250505050565b6000610f1f82610ece565b610f298185610ed9565b9350610f39818560208601610eea565b610f4281610d49565b840191505092915050565b60006020820190508181036000830152610f678184610f14565b905092915050565b60008060208385031215610f8657610f85610a6e565b5b600083013567ffffffffffffffff811115610fa457610fa3610a73565b5b610fb085828601610bcf565b92509250509250929050565b7f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000611018602183610ed9565b915061102382610fbc565b604082019050919050565b600060208201905081810360008301526110478161100b565b9050919050565b7f576f726b67726f757049642063616e6e6f7420626520656d7074790000000000600082015250565b6000611084601b83610ed9565b915061108f8261104e565b602082019050919050565b600060208201905081810360008301526110b381611077565b9050919050565b7f576f726b67726f757049642063616e6e6f74206578636565642033362062797460008201527f6573000000000000000000000000000000000000000000000000000000000000602082015250565b6000611116602283610ed9565b9150611121826110ba565b604082019050919050565b6000602082019050818103600083015261114581611109565b9050919050565b7f416e63686f72486173682063616e6e6f7420626520656d707479000000000000600082015250565b6000611182601a83610ed9565b915061118d8261114c565b602082019050919050565b600060208201905081810360008301526111b181611175565b9050919050565b7f416e63686f72486173682063616e6e6f7420657863656564203235362062797460008201527f6573000000000000000000000000000000000000000000000000000000000000602082015250565b6000611214602283610ed9565b915061121f826111b8565b604082019050919050565b6000602082019050818103600083015261124381611207565b9050919050565b600081905092915050565b6000611261838561124a565b935061126e838584610e06565b82840190509392505050565b6000611287828486611255565b91508190509392505050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806112e557607f821691505b6020821081036112f8576112f761129e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026113607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611323565b61136a8683611323565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006113b16113ac6113a784611382565b61138c565b611382565b9050919050565b6000819050919050565b6113cb83611396565b6113df6113d7826113b8565b848454611330565b825550505050565b600090565b6113f46113e7565b6113ff8184846113c2565b505050565b5b81811015611423576114186000826113ec565b600181019050611405565b5050565b601f82111561146857611439816112fe565b61144284611313565b81016020851015611451578190505b61146561145d85611313565b830182611404565b50505b505050565b600082821c905092915050565b600061148b6000198460080261146d565b1980831691505092915050565b60006114a4838361147a565b9150826002028217905092915050565b6114be8383611293565b67ffffffffffffffff8111156114d7576114d6610d5a565b5b6114e182546112cd565b6114ec828285611427565b6000601f83116001811461151b5760008415611509578287013590505b6115138582611498565b86555061157b565b601f198416611529866112fe565b60005b828110156115515784890135825560018201915060208501945060208101905061152c565b8683101561156e578489013561156a601f89168261147a565b8355505b6001600288020188555050505b50505050505050565b60006115908385610ed9565b935061159d838584610e06565b6115a683610d49565b840190509392505050565b600060208201905081810360008301526115cc818486611584565b90509392505050565b6115de81610cc6565b82525050565b60006040820190506115f960008301856115d5565b6116066020830184610b96565b939250505056fea2646970667358221220f8c24b9a708f806781b283ffab6daf29e867efc617c1bcd49d12341e3658079464736f6c63430008180033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c8063513ec2f811610071578063513ec2f81461016257806375b238fc14610192578063890f10a0146101b057806391d14854146101e0578063a217fddf14610210578063d547741f1461022e576100a9565b806301ffc9a7146100ae578063248a9ca3146100de5780632588cd551461010e5780632f2ff15d1461012a57806336568abe14610146575b600080fd5b6100c860048036038101906100c39190610ad0565b61024a565b6040516100d59190610b18565b60405180910390f35b6100f860048036038101906100f39190610b69565b6102c4565b6040516101059190610ba5565b60405180910390f35b61012860048036038101906101239190610c25565b6102e3565b005b610144600480360381019061013f9190610d04565b6104ed565b005b610160600480360381019061015b9190610d04565b61050f565b005b61017c60048036038101906101779190610e85565b61058a565b6040516101899190610f4d565b60405180910390f35b61019a610640565b6040516101a79190610ba5565b60405180910390f35b6101ca60048036038101906101c59190610f6f565b610664565b6040516101d79190610f4d565b60405180910390f35b6101fa60048036038101906101f59190610d04565b610717565b6040516102079190610b18565b60405180910390f35b610218610781565b6040516102259190610ba5565b60405180910390f35b61024860048036038101906102439190610d04565b610788565b005b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102bd57506102bc826107aa565b5b9050919050565b6000806000838152602001908152602001600020600101549050919050565b61030d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533610717565b61034c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103439061102e565b60405180910390fd5b60008484905011610392576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103899061109a565b60405180910390fd5b602484849050106103d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf9061112c565b60405180910390fd5b6000828290501161041e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041590611198565b60405180910390fd5b610100828290501115610466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045d9061122a565b60405180910390fd5b81816001868660405161047a92919061127a565b908152602001604051809103902091826104959291906114b4565b5083836040516104a692919061127a565b60405180910390207f6468084a45bfadcd3a84169a78a1a25c53317fc97f185e4037e0696cfc913ccc83836040516104df9291906115b1565b60405180910390a250505050565b6104f6826102c4565b6104ff81610814565b6105098383610828565b50505050565b610517610919565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461057b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105858282610921565b505050565b60018180516020810182018051848252602083016020850120818352809550505050505060009150905080546105bf906112cd565b80601f01602080910402602001604051908101604052809291908181526020018280546105eb906112cd565b80156106385780601f1061060d57610100808354040283529160200191610638565b820191906000526020600020905b81548152906001019060200180831161061b57829003601f168201915b505050505081565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b60606001838360405161067892919061127a565b90815260200160405180910390208054610691906112cd565b80601f01602080910402602001604051908101604052809291908181526020018280546106bd906112cd565b801561070a5780601f106106df5761010080835404028352916020019161070a565b820191906000526020600020905b8154815290600101906020018083116106ed57829003601f168201915b5050505050905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b610791826102c4565b61079a81610814565b6107a48383610921565b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61082581610820610919565b610a13565b50565b60006108348383610717565b61090e57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506108ab610919565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610913565b600090505b92915050565b600033905090565b600061092d8383610717565b15610a0857600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506109a5610919565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610a0d565b600090505b92915050565b610a1d8282610717565b610a605780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610a579291906115e4565b60405180910390fd5b5050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610aad81610a78565b8114610ab857600080fd5b50565b600081359050610aca81610aa4565b92915050565b600060208284031215610ae657610ae5610a6e565b5b6000610af484828501610abb565b91505092915050565b60008115159050919050565b610b1281610afd565b82525050565b6000602082019050610b2d6000830184610b09565b92915050565b6000819050919050565b610b4681610b33565b8114610b5157600080fd5b50565b600081359050610b6381610b3d565b92915050565b600060208284031215610b7f57610b7e610a6e565b5b6000610b8d84828501610b54565b91505092915050565b610b9f81610b33565b82525050565b6000602082019050610bba6000830184610b96565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610be557610be4610bc0565b5b8235905067ffffffffffffffff811115610c0257610c01610bc5565b5b602083019150836001820283011115610c1e57610c1d610bca565b5b9250929050565b60008060008060408587031215610c3f57610c3e610a6e565b5b600085013567ffffffffffffffff811115610c5d57610c5c610a73565b5b610c6987828801610bcf565b9450945050602085013567ffffffffffffffff811115610c8c57610c8b610a73565b5b610c9887828801610bcf565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cd182610ca6565b9050919050565b610ce181610cc6565b8114610cec57600080fd5b50565b600081359050610cfe81610cd8565b92915050565b60008060408385031215610d1b57610d1a610a6e565b5b6000610d2985828601610b54565b9250506020610d3a85828601610cef565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610d9282610d49565b810181811067ffffffffffffffff82111715610db157610db0610d5a565b5b80604052505050565b6000610dc4610a64565b9050610dd08282610d89565b919050565b600067ffffffffffffffff821115610df057610def610d5a565b5b610df982610d49565b9050602081019050919050565b82818337600083830152505050565b6000610e28610e2384610dd5565b610dba565b905082815260208101848484011115610e4457610e43610d44565b5b610e4f848285610e06565b509392505050565b600082601f830112610e6c57610e6b610bc0565b5b8135610e7c848260208601610e15565b91505092915050565b600060208284031215610e9b57610e9a610a6e565b5b600082013567ffffffffffffffff811115610eb957610eb8610a73565b5b610ec584828501610e57565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610f08578082015181840152602081019050610eed565b60008484015250505050565b6000610f1f82610ece565b610f298185610ed9565b9350610f39818560208601610eea565b610f4281610d49565b840191505092915050565b60006020820190508181036000830152610f678184610f14565b905092915050565b60008060208385031215610f8657610f85610a6e565b5b600083013567ffffffffffffffff811115610fa457610fa3610a73565b5b610fb085828601610bcf565b92509250509250929050565b7f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000611018602183610ed9565b915061102382610fbc565b604082019050919050565b600060208201905081810360008301526110478161100b565b9050919050565b7f576f726b67726f757049642063616e6e6f7420626520656d7074790000000000600082015250565b6000611084601b83610ed9565b915061108f8261104e565b602082019050919050565b600060208201905081810360008301526110b381611077565b9050919050565b7f576f726b67726f757049642063616e6e6f74206578636565642033362062797460008201527f6573000000000000000000000000000000000000000000000000000000000000602082015250565b6000611116602283610ed9565b9150611121826110ba565b604082019050919050565b6000602082019050818103600083015261114581611109565b9050919050565b7f416e63686f72486173682063616e6e6f7420626520656d707479000000000000600082015250565b6000611182601a83610ed9565b915061118d8261114c565b602082019050919050565b600060208201905081810360008301526111b181611175565b9050919050565b7f416e63686f72486173682063616e6e6f7420657863656564203235362062797460008201527f6573000000000000000000000000000000000000000000000000000000000000602082015250565b6000611214602283610ed9565b915061121f826111b8565b604082019050919050565b6000602082019050818103600083015261124381611207565b9050919050565b600081905092915050565b6000611261838561124a565b935061126e838584610e06565b82840190509392505050565b6000611287828486611255565b91508190509392505050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806112e557607f821691505b6020821081036112f8576112f761129e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026113607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611323565b61136a8683611323565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006113b16113ac6113a784611382565b61138c565b611382565b9050919050565b6000819050919050565b6113cb83611396565b6113df6113d7826113b8565b848454611330565b825550505050565b600090565b6113f46113e7565b6113ff8184846113c2565b505050565b5b81811015611423576114186000826113ec565b600181019050611405565b5050565b601f82111561146857611439816112fe565b61144284611313565b81016020851015611451578190505b61146561145d85611313565b830182611404565b50505b505050565b600082821c905092915050565b600061148b6000198460080261146d565b1980831691505092915050565b60006114a4838361147a565b9150826002028217905092915050565b6114be8383611293565b67ffffffffffffffff8111156114d7576114d6610d5a565b5b6114e182546112cd565b6114ec828285611427565b6000601f83116001811461151b5760008415611509578287013590505b6115138582611498565b86555061157b565b601f198416611529866112fe565b60005b828110156115515784890135825560018201915060208501945060208101905061152c565b8683101561156e578489013561156a601f89168261147a565b8355505b6001600288020188555050505b50505050505050565b60006115908385610ed9565b935061159d838584610e06565b6115a683610d49565b840190509392505050565b600060208201905081810360008301526115cc818486611584565b90509392505050565b6115de81610cc6565b82525050565b60006040820190506115f960008301856115d5565b6116066020830184610b96565b939250505056fea2646970667358221220f8c24b9a708f806781b283ffab6daf29e867efc617c1bcd49d12341e3658079464736f6c63430008180033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/examples/bri-3/ccsmArtifacts/contracts/workstep1Verifier.sol/PlonkVerifier.dbg.json b/examples/bri-3/ccsmArtifacts/contracts/workstep1Verifier.sol/PlonkVerifier.dbg.json new file mode 100644 index 000000000..a27c57efe --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/contracts/workstep1Verifier.sol/PlonkVerifier.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/a7326b529c767f8dc53ea81689820584.json" +} diff --git a/examples/bri-3/ccsmArtifacts/contracts/workstep1Verifier.sol/PlonkVerifier.json b/examples/bri-3/ccsmArtifacts/contracts/workstep1Verifier.sol/PlonkVerifier.json new file mode 100644 index 000000000..7afb4ae3f --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/contracts/workstep1Verifier.sol/PlonkVerifier.json @@ -0,0 +1,35 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "PlonkVerifier", + "sourceName": "contracts/workstep1Verifier.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + }, + { + "internalType": "uint256[]", + "name": "pubSignals", + "type": "uint256[]" + } + ], + "name": "verifyProof", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50611dc3806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80631e8e1e1314610030575b600080fd5b61004a60048036038101906100459190611cdf565b610060565b6040516100579190611d72565b60405180910390f35b6000611a1c565b600080600184846000805b821561009c5782840591508482028603905084955080945082820284039050829350809250610072565b60018411156100aa57600080fd5b60008612156100b95788860195505b85965050505050505092915050565b60405181602084028301815160208301925060005b82841015610120578185527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018451830991506020850194506020840193506100dd565b61014a7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183610067565b91506020850394506020840393508592505b828411156101c6577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018551830990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000184518309915080845260208503945060208403935061015c565b81845250505050505050565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610203576000805260206000f35b50565b61032081511461021a576000805260206000f35b6102286102608201516101d2565b6102366102808201516101d2565b6102446102a08201516101d2565b6102526102c08201516101d2565b6102606102e08201516101d2565b61026e6103008201516101d2565b61027c6103208201516101d2565b50565b60008060208501516102c085015260208301516102e08501526020800183015161030085015260406020018301516103208501526060602001830151610340850152608060200183015161036085015260a06020018301516103808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e06102c08601200690508060208501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020808601200660408501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001604060e08501200660008501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c06101208501200691508160608501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182820960a08501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991508160808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000180600184030106915081610260850152816102808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e0610260850120068060c08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181820992508260e08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101008601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101208601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101408601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101608601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160806101e086012006610180860152505050505050565b60017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836060860151030106618000096102a08301526107ec600261028084016100c8565b610260820151600191507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001816102a0850151096102a0840152505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102a086015109830301069050806101a0830152505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016101a08601516103208601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102c08601510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102e08601510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160408601516102a08601510890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151820990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018501030692507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028086015184099250826101c08601525050505050565b81518152602082015160208201525050565b6040518151815260208201516020820152825160408201526020830151606082015260408260808360066107d05a03fa80610bec576000805260206000f35b50505050565b6000604051835181526020840151602082015284604082015260408160608360076107d05a03fa915081610c2a576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610c5a576000805260206000f35b5050505050565b600060405183815284602082015285604082015260408160608360076107d05a03fa915081610c94576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610cc4576000805260206000f35b505050505050565b600060405183815284602082015285604082015260408360608360076107d05a03fa915081610cff576000805260206000f35b505050505050565b6101e08201610d1a6101e0830182610b9b565b610d2e610180840151610220840183610bf2565b505050565b60008061022084017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610260860151099250610db6837f29e79ad99d77a4ffcf4b8ab0e464b713c864049f2add12136968cff0864088eb7f1410aa6f48b6cf3bf598c6dfa5cb01466519164bd833de0e7827db62d8cac07884610ccc565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028085015184099250610e2d837f1d0d822b29a0910be348f05ad545cfca3c4a45984ec7b3c071978ca4e979b6867f1689e43d6a0f29f2c00abcf49c803fa5c0ebbf4937b1ad668147399369a8fa7e84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610280860151099250610ea8837f145db25e5672a52146b54883489d4339ba16367240f7dd1dacb09e4daf1189d77f1f3ae2a7d2308c43976c572190b3779f177a653b623119177aec86a173733e0984610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c08601516102a0860151099250610f23837f2ece7b42d73dbbda215415dad9da14a4e9f50453c2ea3c269d78f0c4f48b93927f1d854ccab14984cad21ee83abc5688656d4978607ee46ce05c6e30e70438934c84610c61565b60c08501519250610f76837f28dfa5635712fec932cb955efa78de7c3bb1d717ca47ac63d0028c25000ab9827f0c1d9a27ace009b0748df47d8996964d4c5efe448f5689be7f89b1c9b54d1fd484610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a08601516102608601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160020991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160030991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102a0850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610180860151840892506112518360e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102c085015160208701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102e085015160208701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506114bb837f1a57e0730386d03ce171300fd06d8df31762d7652b64af847809b15539bf96477f12515de6655d8e300d5106f29f03a0e8d28d2c9c2cf842475e26a42f3eca1c3784610c61565b6114c9610120850182610bad565b608085015192506114df83610160860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018384099250611514836101a0860183610bf2565b61152660e08601516020860183610bf2565b6115396101008601516060860183610bf2565b61154c61012086015160a0860183610bf2565b61159d6101408601517f28a149d8479d0660ccf9119b862a6296efb8955f144f3a4c28218cbdc30c4a3e7f268d5e96726a4f0a0af926881dd088840f0b189fc0bac1c06378ca1342030d4784610c61565b6115ee6101608601517f0e7776860985ee7b82e3ff3a29a0704c80cc4f49fd6a08562de1286b1a4147737f16d85b4ca470712c952db758ba22542a1494058886d0cf5bc1d6e2796d5d7a3a84610c61565b6101c085015192507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060c087015161032087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060e087015161026087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061010087015161028087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101208701516102a087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101408701516102c087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101608701516102e087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061018087015161030087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506117ae836002600184610c61565b606085015192506117c4836101e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160608601516101808701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb8409925061184883610220860183610bf2565b5050505050565b60006040516101e0830151815260206101e08401015160208201527f1e3b651c96c337f8f6266fadcef22dc97717b5d44b445a5ef799a6cd3cc564a060408201527f10b13ed45e1871ff867a120754de5bf5c1395ad0078891e1b81f284ef6df78ca60608201527f2b57d40b181c33d7331accce5e5b890345b051c33f74e24ab728b18a3f7b473e60808201527f241a20e6fc3bc59485fa2e92365b46bf48742e8fac0b18859306488928cdcf0860a082015261022083015160c08201526020610220840101517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47817f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47030690508060e08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101008301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101208301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6101408301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa6101608301526020826101808460086107d05a03fa825181169350505050919050565b6040516102c08101604052611a3084610206565b611a3b83828661027f565b611a4481610785565b611a4e838261082a565b611a58818561088d565b611a628185610d07565b611a6c8185610d33565b611a758161184f565b6102c082036040528060005260206000f35b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611aee82611aa5565b810181811067ffffffffffffffff82111715611b0d57611b0c611ab6565b5b80604052505050565b6000611b20611a87565b9050611b2c8282611ae5565b919050565b600067ffffffffffffffff821115611b4c57611b4b611ab6565b5b611b5582611aa5565b9050602081019050919050565b82818337600083830152505050565b6000611b84611b7f84611b31565b611b16565b905082815260208101848484011115611ba057611b9f611aa0565b5b611bab848285611b62565b509392505050565b600082601f830112611bc857611bc7611a9b565b5b8135611bd8848260208601611b71565b91505092915050565b600067ffffffffffffffff821115611bfc57611bfb611ab6565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b611c2581611c12565b8114611c3057600080fd5b50565b600081359050611c4281611c1c565b92915050565b6000611c5b611c5684611be1565b611b16565b90508083825260208201905060208402830185811115611c7e57611c7d611c0d565b5b835b81811015611ca75780611c938882611c33565b845260208401935050602081019050611c80565b5050509392505050565b600082601f830112611cc657611cc5611a9b565b5b8135611cd6848260208601611c48565b91505092915050565b60008060408385031215611cf657611cf5611a91565b5b600083013567ffffffffffffffff811115611d1457611d13611a96565b5b611d2085828601611bb3565b925050602083013567ffffffffffffffff811115611d4157611d40611a96565b5b611d4d85828601611cb1565b9150509250929050565b60008115159050919050565b611d6c81611d57565b82525050565b6000602082019050611d876000830184611d63565b9291505056fea26469706673582212203093dcfd459ab1becb11ad43ebcf9e3441be5d423473c0159821433f9605e36864736f6c63430008180033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80631e8e1e1314610030575b600080fd5b61004a60048036038101906100459190611cdf565b610060565b6040516100579190611d72565b60405180910390f35b6000611a1c565b600080600184846000805b821561009c5782840591508482028603905084955080945082820284039050829350809250610072565b60018411156100aa57600080fd5b60008612156100b95788860195505b85965050505050505092915050565b60405181602084028301815160208301925060005b82841015610120578185527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018451830991506020850194506020840193506100dd565b61014a7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183610067565b91506020850394506020840393508592505b828411156101c6577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018551830990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000184518309915080845260208503945060208403935061015c565b81845250505050505050565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610203576000805260206000f35b50565b61032081511461021a576000805260206000f35b6102286102608201516101d2565b6102366102808201516101d2565b6102446102a08201516101d2565b6102526102c08201516101d2565b6102606102e08201516101d2565b61026e6103008201516101d2565b61027c6103208201516101d2565b50565b60008060208501516102c085015260208301516102e08501526020800183015161030085015260406020018301516103208501526060602001830151610340850152608060200183015161036085015260a06020018301516103808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e06102c08601200690508060208501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020808601200660408501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001604060e08501200660008501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c06101208501200691508160608501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182820960a08501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991508160808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000180600184030106915081610260850152816102808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e0610260850120068060c08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181820992508260e08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101008601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101208601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101408601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101608601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160806101e086012006610180860152505050505050565b60017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836060860151030106618000096102a08301526107ec600261028084016100c8565b610260820151600191507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001816102a0850151096102a0840152505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102a086015109830301069050806101a0830152505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016101a08601516103208601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102c08601510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102e08601510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160408601516102a08601510890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151820990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018501030692507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028086015184099250826101c08601525050505050565b81518152602082015160208201525050565b6040518151815260208201516020820152825160408201526020830151606082015260408260808360066107d05a03fa80610bec576000805260206000f35b50505050565b6000604051835181526020840151602082015284604082015260408160608360076107d05a03fa915081610c2a576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610c5a576000805260206000f35b5050505050565b600060405183815284602082015285604082015260408160608360076107d05a03fa915081610c94576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610cc4576000805260206000f35b505050505050565b600060405183815284602082015285604082015260408360608360076107d05a03fa915081610cff576000805260206000f35b505050505050565b6101e08201610d1a6101e0830182610b9b565b610d2e610180840151610220840183610bf2565b505050565b60008061022084017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610260860151099250610db6837f29e79ad99d77a4ffcf4b8ab0e464b713c864049f2add12136968cff0864088eb7f1410aa6f48b6cf3bf598c6dfa5cb01466519164bd833de0e7827db62d8cac07884610ccc565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028085015184099250610e2d837f1d0d822b29a0910be348f05ad545cfca3c4a45984ec7b3c071978ca4e979b6867f1689e43d6a0f29f2c00abcf49c803fa5c0ebbf4937b1ad668147399369a8fa7e84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610280860151099250610ea8837f145db25e5672a52146b54883489d4339ba16367240f7dd1dacb09e4daf1189d77f1f3ae2a7d2308c43976c572190b3779f177a653b623119177aec86a173733e0984610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c08601516102a0860151099250610f23837f2ece7b42d73dbbda215415dad9da14a4e9f50453c2ea3c269d78f0c4f48b93927f1d854ccab14984cad21ee83abc5688656d4978607ee46ce05c6e30e70438934c84610c61565b60c08501519250610f76837f28dfa5635712fec932cb955efa78de7c3bb1d717ca47ac63d0028c25000ab9827f0c1d9a27ace009b0748df47d8996964d4c5efe448f5689be7f89b1c9b54d1fd484610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a08601516102608601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160020991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160030991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102a0850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610180860151840892506112518360e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102c085015160208701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102e085015160208701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506114bb837f1a57e0730386d03ce171300fd06d8df31762d7652b64af847809b15539bf96477f12515de6655d8e300d5106f29f03a0e8d28d2c9c2cf842475e26a42f3eca1c3784610c61565b6114c9610120850182610bad565b608085015192506114df83610160860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018384099250611514836101a0860183610bf2565b61152660e08601516020860183610bf2565b6115396101008601516060860183610bf2565b61154c61012086015160a0860183610bf2565b61159d6101408601517f28a149d8479d0660ccf9119b862a6296efb8955f144f3a4c28218cbdc30c4a3e7f268d5e96726a4f0a0af926881dd088840f0b189fc0bac1c06378ca1342030d4784610c61565b6115ee6101608601517f0e7776860985ee7b82e3ff3a29a0704c80cc4f49fd6a08562de1286b1a4147737f16d85b4ca470712c952db758ba22542a1494058886d0cf5bc1d6e2796d5d7a3a84610c61565b6101c085015192507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060c087015161032087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060e087015161026087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061010087015161028087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101208701516102a087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101408701516102c087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101608701516102e087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061018087015161030087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506117ae836002600184610c61565b606085015192506117c4836101e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160608601516101808701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb8409925061184883610220860183610bf2565b5050505050565b60006040516101e0830151815260206101e08401015160208201527f1e3b651c96c337f8f6266fadcef22dc97717b5d44b445a5ef799a6cd3cc564a060408201527f10b13ed45e1871ff867a120754de5bf5c1395ad0078891e1b81f284ef6df78ca60608201527f2b57d40b181c33d7331accce5e5b890345b051c33f74e24ab728b18a3f7b473e60808201527f241a20e6fc3bc59485fa2e92365b46bf48742e8fac0b18859306488928cdcf0860a082015261022083015160c08201526020610220840101517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47817f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47030690508060e08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101008301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101208301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6101408301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa6101608301526020826101808460086107d05a03fa825181169350505050919050565b6040516102c08101604052611a3084610206565b611a3b83828661027f565b611a4481610785565b611a4e838261082a565b611a58818561088d565b611a628185610d07565b611a6c8185610d33565b611a758161184f565b6102c082036040528060005260206000f35b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611aee82611aa5565b810181811067ffffffffffffffff82111715611b0d57611b0c611ab6565b5b80604052505050565b6000611b20611a87565b9050611b2c8282611ae5565b919050565b600067ffffffffffffffff821115611b4c57611b4b611ab6565b5b611b5582611aa5565b9050602081019050919050565b82818337600083830152505050565b6000611b84611b7f84611b31565b611b16565b905082815260208101848484011115611ba057611b9f611aa0565b5b611bab848285611b62565b509392505050565b600082601f830112611bc857611bc7611a9b565b5b8135611bd8848260208601611b71565b91505092915050565b600067ffffffffffffffff821115611bfc57611bfb611ab6565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b611c2581611c12565b8114611c3057600080fd5b50565b600081359050611c4281611c1c565b92915050565b6000611c5b611c5684611be1565b611b16565b90508083825260208201905060208402830185811115611c7e57611c7d611c0d565b5b835b81811015611ca75780611c938882611c33565b845260208401935050602081019050611c80565b5050509392505050565b600082601f830112611cc657611cc5611a9b565b5b8135611cd6848260208601611c48565b91505092915050565b60008060408385031215611cf657611cf5611a91565b5b600083013567ffffffffffffffff811115611d1457611d13611a96565b5b611d2085828601611bb3565b925050602083013567ffffffffffffffff811115611d4157611d40611a96565b5b611d4d85828601611cb1565b9150509250929050565b60008115159050919050565b611d6c81611d57565b82525050565b6000602082019050611d876000830184611d63565b9291505056fea26469706673582212203093dcfd459ab1becb11ad43ebcf9e3441be5d423473c0159821433f9605e36864736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/bri-3/ccsmArtifacts/contracts/workstep2Verifier.sol/PlonkVerifier.dbg.json b/examples/bri-3/ccsmArtifacts/contracts/workstep2Verifier.sol/PlonkVerifier.dbg.json new file mode 100644 index 000000000..a27c57efe --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/contracts/workstep2Verifier.sol/PlonkVerifier.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/a7326b529c767f8dc53ea81689820584.json" +} diff --git a/examples/bri-3/ccsmArtifacts/contracts/workstep2Verifier.sol/PlonkVerifier.json b/examples/bri-3/ccsmArtifacts/contracts/workstep2Verifier.sol/PlonkVerifier.json new file mode 100644 index 000000000..65da044ce --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/contracts/workstep2Verifier.sol/PlonkVerifier.json @@ -0,0 +1,35 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "PlonkVerifier", + "sourceName": "contracts/workstep2Verifier.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + }, + { + "internalType": "uint256[]", + "name": "pubSignals", + "type": "uint256[]" + } + ], + "name": "verifyProof", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50611dc2806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80631e8e1e1314610030575b600080fd5b61004a60048036038101906100459190611cde565b610060565b6040516100579190611d71565b60405180910390f35b6000611a1b565b600080600184846000805b821561009c5782840591508482028603905084955080945082820284039050829350809250610072565b60018411156100aa57600080fd5b60008612156100b95788860195505b85965050505050505092915050565b60405181602084028301815160208301925060005b82841015610120578185527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018451830991506020850194506020840193506100dd565b61014a7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183610067565b91506020850394506020840393508592505b828411156101c6577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018551830990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000184518309915080845260208503945060208403935061015c565b81845250505050505050565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610203576000805260206000f35b50565b61032081511461021a576000805260206000f35b6102286102608201516101d2565b6102366102808201516101d2565b6102446102a08201516101d2565b6102526102c08201516101d2565b6102606102e08201516101d2565b61026e6103008201516101d2565b61027c6103208201516101d2565b50565b60008060208501516102c085015260208301516102e08501526020800183015161030085015260406020018301516103208501526060602001830151610340850152608060200183015161036085015260a06020018301516103808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e06102c08601200690508060208501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020808601200660408501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001604060e08501200660008501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c06101208501200691508160608501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182820960a08501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991508160808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000180600184030106915081610260850152816102808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e0610260850120068060c08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181820992508260e08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101008601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101208601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101408601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101608601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160806101e086012006610180860152505050505050565b60017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836060860151030106618000096102a08301526107ec600261028084016100c8565b610260820151600191507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001816102a0850151096102a0840152505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102a086015109830301069050806101a0830152505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016101a08601516103208601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102c08601510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102e08601510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160408601516102a08601510890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151820990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018501030692507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028086015184099250826101c08601525050505050565b81518152602082015160208201525050565b6040518151815260208201516020820152825160408201526020830151606082015260408260808360066107d05a03fa80610bec576000805260206000f35b50505050565b6000604051835181526020840151602082015284604082015260408160608360076107d05a03fa915081610c2a576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610c5a576000805260206000f35b5050505050565b600060405183815284602082015285604082015260408160608360076107d05a03fa915081610c94576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610cc4576000805260206000f35b505050505050565b600060405183815284602082015285604082015260408360608360076107d05a03fa915081610cff576000805260206000f35b505050505050565b6101e08201610d1a6101e0830182610b9b565b610d2e610180840151610220840183610bf2565b505050565b60008061022084017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610260860151099250610db6837f073ad9ca0a63bf57aab7471be06714e14cb129b3bc1957fb205f02a2dff201447f0f0d5954bc5550bb6b8a63158299441a292523e20998bd2eeaf6817b9cf7489184610ccc565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028085015184099250610e2d837f24b75923ef66b5a38313240bf8701e5289f37ff6e54a5d9696c571cd0d7a6f7b7f13f75f7639b17b60c5dc1561ca51e09122443b14fd9b5198a3200cb73c405e7484610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610280860151099250610ea8837f26aee923b0c25e2761ed55d872bdce83e1d95e965ca8ce1d7bf132065ed73bea7f0d97ed9d9f00314c36234ec638665eba9c42b2aeb9472214f2d5a2b22615181d84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c08601516102a0860151099250610f23837f24d590624aa64d73288cef9c5c68ddfbc43c288bfec0ea23a65e3d519deb4b457f2fe2b7a5e3301ec2548b1b9fa04dafe8bdb129027d89d2fda93c32b2ac1d615384610c61565b60c08501519250610f76837f2ad72eb4319e5ce1f126c3ee2fb7b07fcacc472b06034bc9b7b00fa5c6db3dd17f0bbacffc38b7a2d2938e833aa0b1beb2ebe94796ee3eeeaa8cde99e34b70274e84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a08601516102608601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160020991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160030991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102a0850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610180860151840892506112518360e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102c085015160208701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102e085015160208701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506114bb837f244c5fc4bd854ee2b3c1b620e013383a9e6daca6c0bab14aecd7101aba922cb67f2281748b89dcd5aeaee8e7b5573d600632e8b7d13619eca441e770f4862711ff84610c61565b6114c9610120850182610bad565b608085015192506114df83610160860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018384099250611514836101a0860183610bf2565b61152660e08601516020860183610bf2565b6115396101008601516060860183610bf2565b61154c61012086015160a0860183610bf2565b61159d6101408601517f14ce1f304c015a19fe72ccdd0c7b1aaae908e4faa13142d0d8d108e2efa497fd7f1ddf2ac14509d3ed88c5114e806890a074e2a3cf08bd6b406cd4e0c1256d6a5a84610c61565b6115ed6101608601517e701c2a27f6e67a591f1ca598c17621b64ad8830430232895ca68fe3dc5854d7f0dc88371d3444a7bbc4f3cb292e69421c549c10b86e8982b67d074006094fe0884610c61565b6101c085015192507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060c087015161032087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060e087015161026087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061010087015161028087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101208701516102a087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101408701516102c087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101608701516102e087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061018087015161030087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506117ad836002600184610c61565b606085015192506117c3836101e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160608601516101808701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb8409925061184783610220860183610bf2565b5050505050565b60006040516101e0830151815260206101e08401015160208201527f1e3b651c96c337f8f6266fadcef22dc97717b5d44b445a5ef799a6cd3cc564a060408201527f10b13ed45e1871ff867a120754de5bf5c1395ad0078891e1b81f284ef6df78ca60608201527f2b57d40b181c33d7331accce5e5b890345b051c33f74e24ab728b18a3f7b473e60808201527f241a20e6fc3bc59485fa2e92365b46bf48742e8fac0b18859306488928cdcf0860a082015261022083015160c08201526020610220840101517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47817f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47030690508060e08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101008301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101208301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6101408301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa6101608301526020826101808460086107d05a03fa825181169350505050919050565b6040516102c08101604052611a2f84610206565b611a3a83828661027f565b611a4381610785565b611a4d838261082a565b611a57818561088d565b611a618185610d07565b611a6b8185610d33565b611a748161184e565b6102c082036040528060005260206000f35b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611aed82611aa4565b810181811067ffffffffffffffff82111715611b0c57611b0b611ab5565b5b80604052505050565b6000611b1f611a86565b9050611b2b8282611ae4565b919050565b600067ffffffffffffffff821115611b4b57611b4a611ab5565b5b611b5482611aa4565b9050602081019050919050565b82818337600083830152505050565b6000611b83611b7e84611b30565b611b15565b905082815260208101848484011115611b9f57611b9e611a9f565b5b611baa848285611b61565b509392505050565b600082601f830112611bc757611bc6611a9a565b5b8135611bd7848260208601611b70565b91505092915050565b600067ffffffffffffffff821115611bfb57611bfa611ab5565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b611c2481611c11565b8114611c2f57600080fd5b50565b600081359050611c4181611c1b565b92915050565b6000611c5a611c5584611be0565b611b15565b90508083825260208201905060208402830185811115611c7d57611c7c611c0c565b5b835b81811015611ca65780611c928882611c32565b845260208401935050602081019050611c7f565b5050509392505050565b600082601f830112611cc557611cc4611a9a565b5b8135611cd5848260208601611c47565b91505092915050565b60008060408385031215611cf557611cf4611a90565b5b600083013567ffffffffffffffff811115611d1357611d12611a95565b5b611d1f85828601611bb2565b925050602083013567ffffffffffffffff811115611d4057611d3f611a95565b5b611d4c85828601611cb0565b9150509250929050565b60008115159050919050565b611d6b81611d56565b82525050565b6000602082019050611d866000830184611d62565b9291505056fea26469706673582212204448cae53335b2e219e7aecf736766fc3c26b6fae1ad2206b3def7fc663a56d064736f6c63430008180033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80631e8e1e1314610030575b600080fd5b61004a60048036038101906100459190611cde565b610060565b6040516100579190611d71565b60405180910390f35b6000611a1b565b600080600184846000805b821561009c5782840591508482028603905084955080945082820284039050829350809250610072565b60018411156100aa57600080fd5b60008612156100b95788860195505b85965050505050505092915050565b60405181602084028301815160208301925060005b82841015610120578185527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018451830991506020850194506020840193506100dd565b61014a7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183610067565b91506020850394506020840393508592505b828411156101c6577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018551830990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000184518309915080845260208503945060208403935061015c565b81845250505050505050565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610203576000805260206000f35b50565b61032081511461021a576000805260206000f35b6102286102608201516101d2565b6102366102808201516101d2565b6102446102a08201516101d2565b6102526102c08201516101d2565b6102606102e08201516101d2565b61026e6103008201516101d2565b61027c6103208201516101d2565b50565b60008060208501516102c085015260208301516102e08501526020800183015161030085015260406020018301516103208501526060602001830151610340850152608060200183015161036085015260a06020018301516103808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e06102c08601200690508060208501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020808601200660408501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001604060e08501200660008501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c06101208501200691508160608501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182820960a08501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991508160808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000180600184030106915081610260850152816102808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e0610260850120068060c08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181820992508260e08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101008601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101208601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101408601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101608601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160806101e086012006610180860152505050505050565b60017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836060860151030106618000096102a08301526107ec600261028084016100c8565b610260820151600191507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001816102a0850151096102a0840152505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102a086015109830301069050806101a0830152505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016101a08601516103208601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102c08601510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102e08601510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160408601516102a08601510890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151820990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018501030692507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028086015184099250826101c08601525050505050565b81518152602082015160208201525050565b6040518151815260208201516020820152825160408201526020830151606082015260408260808360066107d05a03fa80610bec576000805260206000f35b50505050565b6000604051835181526020840151602082015284604082015260408160608360076107d05a03fa915081610c2a576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610c5a576000805260206000f35b5050505050565b600060405183815284602082015285604082015260408160608360076107d05a03fa915081610c94576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610cc4576000805260206000f35b505050505050565b600060405183815284602082015285604082015260408360608360076107d05a03fa915081610cff576000805260206000f35b505050505050565b6101e08201610d1a6101e0830182610b9b565b610d2e610180840151610220840183610bf2565b505050565b60008061022084017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610260860151099250610db6837f073ad9ca0a63bf57aab7471be06714e14cb129b3bc1957fb205f02a2dff201447f0f0d5954bc5550bb6b8a63158299441a292523e20998bd2eeaf6817b9cf7489184610ccc565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028085015184099250610e2d837f24b75923ef66b5a38313240bf8701e5289f37ff6e54a5d9696c571cd0d7a6f7b7f13f75f7639b17b60c5dc1561ca51e09122443b14fd9b5198a3200cb73c405e7484610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610280860151099250610ea8837f26aee923b0c25e2761ed55d872bdce83e1d95e965ca8ce1d7bf132065ed73bea7f0d97ed9d9f00314c36234ec638665eba9c42b2aeb9472214f2d5a2b22615181d84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c08601516102a0860151099250610f23837f24d590624aa64d73288cef9c5c68ddfbc43c288bfec0ea23a65e3d519deb4b457f2fe2b7a5e3301ec2548b1b9fa04dafe8bdb129027d89d2fda93c32b2ac1d615384610c61565b60c08501519250610f76837f2ad72eb4319e5ce1f126c3ee2fb7b07fcacc472b06034bc9b7b00fa5c6db3dd17f0bbacffc38b7a2d2938e833aa0b1beb2ebe94796ee3eeeaa8cde99e34b70274e84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a08601516102608601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160020991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160030991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102a0850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610180860151840892506112518360e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102c085015160208701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102e085015160208701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506114bb837f244c5fc4bd854ee2b3c1b620e013383a9e6daca6c0bab14aecd7101aba922cb67f2281748b89dcd5aeaee8e7b5573d600632e8b7d13619eca441e770f4862711ff84610c61565b6114c9610120850182610bad565b608085015192506114df83610160860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018384099250611514836101a0860183610bf2565b61152660e08601516020860183610bf2565b6115396101008601516060860183610bf2565b61154c61012086015160a0860183610bf2565b61159d6101408601517f14ce1f304c015a19fe72ccdd0c7b1aaae908e4faa13142d0d8d108e2efa497fd7f1ddf2ac14509d3ed88c5114e806890a074e2a3cf08bd6b406cd4e0c1256d6a5a84610c61565b6115ed6101608601517e701c2a27f6e67a591f1ca598c17621b64ad8830430232895ca68fe3dc5854d7f0dc88371d3444a7bbc4f3cb292e69421c549c10b86e8982b67d074006094fe0884610c61565b6101c085015192507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060c087015161032087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060e087015161026087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061010087015161028087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101208701516102a087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101408701516102c087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101608701516102e087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061018087015161030087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506117ad836002600184610c61565b606085015192506117c3836101e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160608601516101808701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb8409925061184783610220860183610bf2565b5050505050565b60006040516101e0830151815260206101e08401015160208201527f1e3b651c96c337f8f6266fadcef22dc97717b5d44b445a5ef799a6cd3cc564a060408201527f10b13ed45e1871ff867a120754de5bf5c1395ad0078891e1b81f284ef6df78ca60608201527f2b57d40b181c33d7331accce5e5b890345b051c33f74e24ab728b18a3f7b473e60808201527f241a20e6fc3bc59485fa2e92365b46bf48742e8fac0b18859306488928cdcf0860a082015261022083015160c08201526020610220840101517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47817f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47030690508060e08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101008301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101208301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6101408301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa6101608301526020826101808460086107d05a03fa825181169350505050919050565b6040516102c08101604052611a2f84610206565b611a3a83828661027f565b611a4381610785565b611a4d838261082a565b611a57818561088d565b611a618185610d07565b611a6b8185610d33565b611a748161184e565b6102c082036040528060005260206000f35b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611aed82611aa4565b810181811067ffffffffffffffff82111715611b0c57611b0b611ab5565b5b80604052505050565b6000611b1f611a86565b9050611b2b8282611ae4565b919050565b600067ffffffffffffffff821115611b4b57611b4a611ab5565b5b611b5482611aa4565b9050602081019050919050565b82818337600083830152505050565b6000611b83611b7e84611b30565b611b15565b905082815260208101848484011115611b9f57611b9e611a9f565b5b611baa848285611b61565b509392505050565b600082601f830112611bc757611bc6611a9a565b5b8135611bd7848260208601611b70565b91505092915050565b600067ffffffffffffffff821115611bfb57611bfa611ab5565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b611c2481611c11565b8114611c2f57600080fd5b50565b600081359050611c4181611c1b565b92915050565b6000611c5a611c5584611be0565b611b15565b90508083825260208201905060208402830185811115611c7d57611c7c611c0c565b5b835b81811015611ca65780611c928882611c32565b845260208401935050602081019050611c7f565b5050509392505050565b600082601f830112611cc557611cc4611a9a565b5b8135611cd5848260208601611c47565b91505092915050565b60008060408385031215611cf557611cf4611a90565b5b600083013567ffffffffffffffff811115611d1357611d12611a95565b5b611d1f85828601611bb2565b925050602083013567ffffffffffffffff811115611d4057611d3f611a95565b5b611d4c85828601611cb0565b9150509250929050565b60008115159050919050565b611d6b81611d56565b82525050565b6000602082019050611d866000830184611d62565b9291505056fea26469706673582212204448cae53335b2e219e7aecf736766fc3c26b6fae1ad2206b3def7fc663a56d064736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/bri-3/ccsmArtifacts/contracts/workstep3Verifier.sol/PlonkVerifier.dbg.json b/examples/bri-3/ccsmArtifacts/contracts/workstep3Verifier.sol/PlonkVerifier.dbg.json new file mode 100644 index 000000000..a27c57efe --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/contracts/workstep3Verifier.sol/PlonkVerifier.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/a7326b529c767f8dc53ea81689820584.json" +} diff --git a/examples/bri-3/ccsmArtifacts/contracts/workstep3Verifier.sol/PlonkVerifier.json b/examples/bri-3/ccsmArtifacts/contracts/workstep3Verifier.sol/PlonkVerifier.json new file mode 100644 index 000000000..679bb75ae --- /dev/null +++ b/examples/bri-3/ccsmArtifacts/contracts/workstep3Verifier.sol/PlonkVerifier.json @@ -0,0 +1,35 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "PlonkVerifier", + "sourceName": "contracts/workstep3Verifier.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + }, + { + "internalType": "uint256[]", + "name": "pubSignals", + "type": "uint256[]" + } + ], + "name": "verifyProof", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50611dc2806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80631e8e1e1314610030575b600080fd5b61004a60048036038101906100459190611cde565b610060565b6040516100579190611d71565b60405180910390f35b6000611a1b565b600080600184846000805b821561009c5782840591508482028603905084955080945082820284039050829350809250610072565b60018411156100aa57600080fd5b60008612156100b95788860195505b85965050505050505092915050565b60405181602084028301815160208301925060005b82841015610120578185527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018451830991506020850194506020840193506100dd565b61014a7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183610067565b91506020850394506020840393508592505b828411156101c6577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018551830990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000184518309915080845260208503945060208403935061015c565b81845250505050505050565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610203576000805260206000f35b50565b61032081511461021a576000805260206000f35b6102286102608201516101d2565b6102366102808201516101d2565b6102446102a08201516101d2565b6102526102c08201516101d2565b6102606102e08201516101d2565b61026e6103008201516101d2565b61027c6103208201516101d2565b50565b60008060208501516102c085015260208301516102e08501526020800183015161030085015260406020018301516103208501526060602001830151610340850152608060200183015161036085015260a06020018301516103808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e06102c08601200690508060208501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020808601200660408501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001604060e08501200660008501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c06101208501200691508160608501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182820960a08501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991508160808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000180600184030106915081610260850152816102808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e0610260850120068060c08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181820992508260e08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101008601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101208601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101408601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101608601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160806101e086012006610180860152505050505050565b60017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836060860151030106618000096102a08301526107ec600261028084016100c8565b610260820151600191507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001816102a0850151096102a0840152505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102a086015109830301069050806101a0830152505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016101a08601516103208601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102c08601510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102e08601510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160408601516102a08601510890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151820990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018501030692507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028086015184099250826101c08601525050505050565b81518152602082015160208201525050565b6040518151815260208201516020820152825160408201526020830151606082015260408260808360066107d05a03fa80610bec576000805260206000f35b50505050565b6000604051835181526020840151602082015284604082015260408160608360076107d05a03fa915081610c2a576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610c5a576000805260206000f35b5050505050565b600060405183815284602082015285604082015260408160608360076107d05a03fa915081610c94576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610cc4576000805260206000f35b505050505050565b600060405183815284602082015285604082015260408360608360076107d05a03fa915081610cff576000805260206000f35b505050505050565b6101e08201610d1a6101e0830182610b9b565b610d2e610180840151610220840183610bf2565b505050565b60008061022084017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610260860151099250610db6837f073ad9ca0a63bf57aab7471be06714e14cb129b3bc1957fb205f02a2dff201447f0f0d5954bc5550bb6b8a63158299441a292523e20998bd2eeaf6817b9cf7489184610ccc565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028085015184099250610e2d837f24b75923ef66b5a38313240bf8701e5289f37ff6e54a5d9696c571cd0d7a6f7b7f13f75f7639b17b60c5dc1561ca51e09122443b14fd9b5198a3200cb73c405e7484610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610280860151099250610ea8837f0ce90799f564b37f9a7c19587ad4234c46f6afad9f4b1fb9277bed47dd9b6a117f2becb27157d1ea8e65712e5a9d3b836536cc95f8ffbe2a9a66259a05b94d8c4184610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c08601516102a0860151099250610f23837f24d590624aa64d73288cef9c5c68ddfbc43c288bfec0ea23a65e3d519deb4b457f2fe2b7a5e3301ec2548b1b9fa04dafe8bdb129027d89d2fda93c32b2ac1d615384610c61565b60c08501519250610f76837f2ad72eb4319e5ce1f126c3ee2fb7b07fcacc472b06034bc9b7b00fa5c6db3dd17f0bbacffc38b7a2d2938e833aa0b1beb2ebe94796ee3eeeaa8cde99e34b70274e84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a08601516102608601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160020991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160030991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102a0850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610180860151840892506112518360e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102c085015160208701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102e085015160208701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506114bb837f244c5fc4bd854ee2b3c1b620e013383a9e6daca6c0bab14aecd7101aba922cb67f2281748b89dcd5aeaee8e7b5573d600632e8b7d13619eca441e770f4862711ff84610c61565b6114c9610120850182610bad565b608085015192506114df83610160860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018384099250611514836101a0860183610bf2565b61152660e08601516020860183610bf2565b6115396101008601516060860183610bf2565b61154c61012086015160a0860183610bf2565b61159d6101408601517f14ce1f304c015a19fe72ccdd0c7b1aaae908e4faa13142d0d8d108e2efa497fd7f1ddf2ac14509d3ed88c5114e806890a074e2a3cf08bd6b406cd4e0c1256d6a5a84610c61565b6115ed6101608601517e701c2a27f6e67a591f1ca598c17621b64ad8830430232895ca68fe3dc5854d7f0dc88371d3444a7bbc4f3cb292e69421c549c10b86e8982b67d074006094fe0884610c61565b6101c085015192507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060c087015161032087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060e087015161026087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061010087015161028087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101208701516102a087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101408701516102c087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101608701516102e087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061018087015161030087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506117ad836002600184610c61565b606085015192506117c3836101e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160608601516101808701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb8409925061184783610220860183610bf2565b5050505050565b60006040516101e0830151815260206101e08401015160208201527f1e3b651c96c337f8f6266fadcef22dc97717b5d44b445a5ef799a6cd3cc564a060408201527f10b13ed45e1871ff867a120754de5bf5c1395ad0078891e1b81f284ef6df78ca60608201527f2b57d40b181c33d7331accce5e5b890345b051c33f74e24ab728b18a3f7b473e60808201527f241a20e6fc3bc59485fa2e92365b46bf48742e8fac0b18859306488928cdcf0860a082015261022083015160c08201526020610220840101517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47817f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47030690508060e08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101008301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101208301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6101408301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa6101608301526020826101808460086107d05a03fa825181169350505050919050565b6040516102c08101604052611a2f84610206565b611a3a83828661027f565b611a4381610785565b611a4d838261082a565b611a57818561088d565b611a618185610d07565b611a6b8185610d33565b611a748161184e565b6102c082036040528060005260206000f35b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611aed82611aa4565b810181811067ffffffffffffffff82111715611b0c57611b0b611ab5565b5b80604052505050565b6000611b1f611a86565b9050611b2b8282611ae4565b919050565b600067ffffffffffffffff821115611b4b57611b4a611ab5565b5b611b5482611aa4565b9050602081019050919050565b82818337600083830152505050565b6000611b83611b7e84611b30565b611b15565b905082815260208101848484011115611b9f57611b9e611a9f565b5b611baa848285611b61565b509392505050565b600082601f830112611bc757611bc6611a9a565b5b8135611bd7848260208601611b70565b91505092915050565b600067ffffffffffffffff821115611bfb57611bfa611ab5565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b611c2481611c11565b8114611c2f57600080fd5b50565b600081359050611c4181611c1b565b92915050565b6000611c5a611c5584611be0565b611b15565b90508083825260208201905060208402830185811115611c7d57611c7c611c0c565b5b835b81811015611ca65780611c928882611c32565b845260208401935050602081019050611c7f565b5050509392505050565b600082601f830112611cc557611cc4611a9a565b5b8135611cd5848260208601611c47565b91505092915050565b60008060408385031215611cf557611cf4611a90565b5b600083013567ffffffffffffffff811115611d1357611d12611a95565b5b611d1f85828601611bb2565b925050602083013567ffffffffffffffff811115611d4057611d3f611a95565b5b611d4c85828601611cb0565b9150509250929050565b60008115159050919050565b611d6b81611d56565b82525050565b6000602082019050611d866000830184611d62565b9291505056fea26469706673582212201ba7f68c3e2f4f61e7382b6f72a0fe80914349a958fe8936ea3db47813f5c2b764736f6c63430008180033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80631e8e1e1314610030575b600080fd5b61004a60048036038101906100459190611cde565b610060565b6040516100579190611d71565b60405180910390f35b6000611a1b565b600080600184846000805b821561009c5782840591508482028603905084955080945082820284039050829350809250610072565b60018411156100aa57600080fd5b60008612156100b95788860195505b85965050505050505092915050565b60405181602084028301815160208301925060005b82841015610120578185527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018451830991506020850194506020840193506100dd565b61014a7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183610067565b91506020850394506020840393508592505b828411156101c6577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018551830990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000184518309915080845260208503945060208403935061015c565b81845250505050505050565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110610203576000805260206000f35b50565b61032081511461021a576000805260206000f35b6102286102608201516101d2565b6102366102808201516101d2565b6102446102a08201516101d2565b6102526102c08201516101d2565b6102606102e08201516101d2565b61026e6103008201516101d2565b61027c6103208201516101d2565b50565b60008060208501516102c085015260208301516102e08501526020800183015161030085015260406020018301516103208501526060602001830151610340850152608060200183015161036085015260a06020018301516103808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e06102c08601200690508060208501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020808601200660408501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001604060e08501200660008501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c06101208501200691508160608501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182820960a08501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182830991508160808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000180600184030106915081610260850152816102808501527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160e0610260850120068060c08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181820992508260e08601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101008601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101208601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101408601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018184099250826101608601527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160806101e086012006610180860152505050505050565b60017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836060860151030106618000096102a08301526107ec600261028084016100c8565b610260820151600191507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001816102a0850151096102a0840152505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001807f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102a086015109830301069050806101a0830152505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016101a08601516103208601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102c08601510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160208601516102e08601510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151820890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160408601516102a08601510890507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151820990507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018501030692507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028086015184099250826101c08601525050505050565b81518152602082015160208201525050565b6040518151815260208201516020820152825160408201526020830151606082015260408260808360066107d05a03fa80610bec576000805260206000f35b50505050565b6000604051835181526020840151602082015284604082015260408160608360076107d05a03fa915081610c2a576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610c5a576000805260206000f35b5050505050565b600060405183815284602082015285604082015260408160608360076107d05a03fa915081610c94576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915081610cc4576000805260206000f35b505050505050565b600060405183815284602082015285604082015260408360608360076107d05a03fa915081610cff576000805260206000f35b505050505050565b6101e08201610d1a6101e0830182610b9b565b610d2e610180840151610220840183610bf2565b505050565b60008061022084017f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610260860151099250610db6837f073ad9ca0a63bf57aab7471be06714e14cb129b3bc1957fb205f02a2dff201447f0f0d5954bc5550bb6b8a63158299441a292523e20998bd2eeaf6817b9cf7489184610ccc565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000161028085015184099250610e2d837f24b75923ef66b5a38313240bf8701e5289f37ff6e54a5d9696c571cd0d7a6f7b7f13f75f7639b17b60c5dc1561ca51e09122443b14fd9b5198a3200cb73c405e7484610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151610280860151099250610ea8837f0ce90799f564b37f9a7c19587ad4234c46f6afad9f4b1fb9277bed47dd9b6a117f2becb27157d1ea8e65712e5a9d3b836536cc95f8ffbe2a9a66259a05b94d8c4184610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c08601516102a0860151099250610f23837f24d590624aa64d73288cef9c5c68ddfbc43c288bfec0ea23a65e3d519deb4b457f2fe2b7a5e3301ec2548b1b9fa04dafe8bdb129027d89d2fda93c32b2ac1d615384610c61565b60c08501519250610f76837f2ad72eb4319e5ce1f126c3ee2fb7b07fcacc472b06034bc9b7b00fa5c6db3dd17f0bbacffc38b7a2d2938e833aa0b1beb2ebe94796ee3eeeaa8cde99e34b70274e84610c61565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a08601516102608601510892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160020991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160a086015160030991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102a0850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160008601516102a08701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151830991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610180860151840892506112518360e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102c085015160208701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610260850151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016102e085015160208701510991507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610280850151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016040860151830891507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016000860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160c0860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020860151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001610300850151840992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506114bb837f244c5fc4bd854ee2b3c1b620e013383a9e6daca6c0bab14aecd7101aba922cb67f2281748b89dcd5aeaee8e7b5573d600632e8b7d13619eca441e770f4862711ff84610c61565b6114c9610120850182610bad565b608085015192506114df83610160860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018384099250611514836101a0860183610bf2565b61152660e08601516020860183610bf2565b6115396101008601516060860183610bf2565b61154c61012086015160a0860183610bf2565b61159d6101408601517f14ce1f304c015a19fe72ccdd0c7b1aaae908e4faa13142d0d8d108e2efa497fd7f1ddf2ac14509d3ed88c5114e806890a074e2a3cf08bd6b406cd4e0c1256d6a5a84610c61565b6115ed6101608601517e701c2a27f6e67a591f1ca598c17621b64ad8830430232895ca68fe3dc5854d7f0dc88371d3444a7bbc4f3cb292e69421c549c10b86e8982b67d074006094fe0884610c61565b6101c085015192507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060c087015161032087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018060e087015161026087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061010087015161028087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101208701516102a087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101408701516102c087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001806101608701516102e087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018061018087015161030087015109840892507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001030692506117ad836002600184610c61565b606085015192506117c3836101e0860183610bf2565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000160608601516101808701510992507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb8409925061184783610220860183610bf2565b5050505050565b60006040516101e0830151815260206101e08401015160208201527f1e3b651c96c337f8f6266fadcef22dc97717b5d44b445a5ef799a6cd3cc564a060408201527f10b13ed45e1871ff867a120754de5bf5c1395ad0078891e1b81f284ef6df78ca60608201527f2b57d40b181c33d7331accce5e5b890345b051c33f74e24ab728b18a3f7b473e60808201527f241a20e6fc3bc59485fa2e92365b46bf48742e8fac0b18859306488928cdcf0860a082015261022083015160c08201526020610220840101517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47817f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47030690508060e08301527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101008301527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101208301527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6101408301527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa6101608301526020826101808460086107d05a03fa825181169350505050919050565b6040516102c08101604052611a2f84610206565b611a3a83828661027f565b611a4381610785565b611a4d838261082a565b611a57818561088d565b611a618185610d07565b611a6b8185610d33565b611a748161184e565b6102c082036040528060005260206000f35b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611aed82611aa4565b810181811067ffffffffffffffff82111715611b0c57611b0b611ab5565b5b80604052505050565b6000611b1f611a86565b9050611b2b8282611ae4565b919050565b600067ffffffffffffffff821115611b4b57611b4a611ab5565b5b611b5482611aa4565b9050602081019050919050565b82818337600083830152505050565b6000611b83611b7e84611b30565b611b15565b905082815260208101848484011115611b9f57611b9e611a9f565b5b611baa848285611b61565b509392505050565b600082601f830112611bc757611bc6611a9a565b5b8135611bd7848260208601611b70565b91505092915050565b600067ffffffffffffffff821115611bfb57611bfa611ab5565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b611c2481611c11565b8114611c2f57600080fd5b50565b600081359050611c4181611c1b565b92915050565b6000611c5a611c5584611be0565b611b15565b90508083825260208201905060208402830185811115611c7d57611c7c611c0c565b5b835b81811015611ca65780611c928882611c32565b845260208401935050602081019050611c7f565b5050509392505050565b600082601f830112611cc557611cc4611a9a565b5b8135611cd5848260208601611c47565b91505092915050565b60008060408385031215611cf557611cf4611a90565b5b600083013567ffffffffffffffff811115611d1357611d12611a95565b5b611d1f85828601611bb2565b925050602083013567ffffffffffffffff811115611d4057611d3f611a95565b5b611d4c85828601611cb0565b9150509250929050565b60008115159050919050565b611d6b81611d56565b82525050565b6000602082019050611d866000830184611d62565b9291505056fea26469706673582212201ba7f68c3e2f4f61e7382b6f72a0fe80914349a958fe8936ea3db47813f5c2b764736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/examples/bri-3/package-lock.json b/examples/bri-3/package-lock.json index 915881955..baf774b66 100644 --- a/examples/bri-3/package-lock.json +++ b/examples/bri-3/package-lock.json @@ -23,6 +23,8 @@ "@nestjs/schedule": "^3.0.1", "@nestjs/swagger": "^7.3.1", "@noble/curves": "^1.2.0", + "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "@openzeppelin/contracts": "^5.0.2", "@personaelabs/spartan-ecdsa": "^2.1.4", "@prisma/client": "^5.2.0", "circomlib": "^2.0.5", @@ -2179,7 +2181,6 @@ }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" @@ -2190,7 +2191,6 @@ }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", @@ -2978,6 +2978,16 @@ "@ethersproject/strings": "^5.7.0" } }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "license": "Apache-2.0", @@ -3474,6 +3484,73 @@ "node": ">=8" } }, + "node_modules/@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "license": "ISC", + "peer": true, + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@metamask/eth-sig-util/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@metamask/eth-sig-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "license": "MPL-2.0", + "peer": true, + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, "node_modules/@microsoft/tsdoc": { "version": "0.14.2", "license": "MIT" @@ -3905,6 +3982,19 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "peer": true + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "license": "MIT", @@ -3934,1995 +4024,3836 @@ "node": ">= 8" } }, - "node_modules/@nuxtjs/opencollective": { - "version": "0.3.2", + "node_modules/@nomicfoundation/edr": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.4.2.tgz", + "integrity": "sha512-U7v0HuZHfrsl/5FpUzuB2FYA0+FUglHHwiO6NhvLtNYKMZcPzdS6iUriMp/7GWs0SVxW3bAht9GinZPxdhVwWg==", "license": "MIT", + "peer": true, "dependencies": { - "chalk": "^4.1.0", - "consola": "^2.15.0", - "node-fetch": "^2.6.1" - }, - "bin": { - "opencollective": "bin/opencollective.js" + "@nomicfoundation/edr-darwin-arm64": "0.4.2", + "@nomicfoundation/edr-darwin-x64": "0.4.2", + "@nomicfoundation/edr-linux-arm64-gnu": "0.4.2", + "@nomicfoundation/edr-linux-arm64-musl": "0.4.2", + "@nomicfoundation/edr-linux-x64-gnu": "0.4.2", + "@nomicfoundation/edr-linux-x64-musl": "0.4.2", + "@nomicfoundation/edr-win32-x64-msvc": "0.4.2" }, "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" + "node": ">= 18" } }, - "node_modules/@paralleldrive/cuid2": { - "version": "2.2.2", - "dev": true, + "node_modules/@nomicfoundation/edr-darwin-arm64": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.4.2.tgz", + "integrity": "sha512-S+hhepupfqpBvMa9M1PVS08sVjGXsLnjyAsjhrrsjsNuTHVLhKzhkguvBD5g4If5skrwgOaVqpag4wnQbd15kQ==", "license": "MIT", - "dependencies": { - "@noble/hashes": "^1.1.5" + "peer": true, + "engines": { + "node": ">= 18" } }, - "node_modules/@personaelabs/spartan-ecdsa": { - "version": "2.3.1", + "node_modules/@nomicfoundation/edr-darwin-x64": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.4.2.tgz", + "integrity": "sha512-/zM94AUrXz6CmcsecRNHJ50jABDUFafmGc4iBmkfX/mTp4tVZj7XTyIogrQIt0FnTaeb4CgZoLap2+8tW/Uldg==", "license": "MIT", - "dependencies": { - "@ethereumjs/util": "^8.0.3", - "@zk-kit/incremental-merkle-tree": "^1.0.0", - "elliptic": "^6.5.4", - "snarkjs": "^0.7.1" + "peer": true, + "engines": { + "node": ">= 18" } }, - "node_modules/@personaelabs/spartan-ecdsa/node_modules/@iden3/binfileutils": { - "version": "0.0.12", - "license": "GPL-3.0", - "dependencies": { - "fastfile": "0.0.20", - "ffjavascript": "^0.3.0" + "node_modules/@nomicfoundation/edr-linux-arm64-gnu": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.4.2.tgz", + "integrity": "sha512-TV3Pr2tFvvmCfPCi9PaCGLtqn+oLaPKfL2NWpnoCeFFdzDQXi2L930yP1oUPY5RXd78NLdVHMkEkbhb2b6Wuvg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 18" } }, - "node_modules/@personaelabs/spartan-ecdsa/node_modules/circom_runtime": { - "version": "0.1.25", - "license": "Apache-2.0", - "dependencies": { - "ffjavascript": "0.3.0" - }, - "bin": { - "calcwit": "calcwit.js" + "node_modules/@nomicfoundation/edr-linux-arm64-musl": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.4.2.tgz", + "integrity": "sha512-PALwrLBk1M9rolXyhSX8xdhe5jL0qf/PgiCIF7W7lUyVKrI/I0oiU0EHDk/Xw7yi2UJg4WRyhhZoHYa0g4g8Qg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 18" } }, - "node_modules/@personaelabs/spartan-ecdsa/node_modules/ffjavascript": { - "version": "0.3.0", - "license": "GPL-3.0", - "dependencies": { - "wasmbuilder": "0.0.16", - "wasmcurves": "0.2.2", - "web-worker": "1.2.0" + "node_modules/@nomicfoundation/edr-linux-x64-gnu": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.4.2.tgz", + "integrity": "sha512-5svkftypDjAZ1LxV1onojlaqPRxrTEjJLkrUwLL+Fao5ZMe7aTnk5QQ1Jv76gW6WYZnMXNgjPhRcnw3oSNrqFA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 18" } }, - "node_modules/@personaelabs/spartan-ecdsa/node_modules/r1csfile": { - "version": "0.0.48", - "license": "GPL-3.0", - "dependencies": { - "@iden3/bigarray": "0.0.2", - "@iden3/binfileutils": "0.0.12", - "fastfile": "0.0.20", - "ffjavascript": "0.3.0" + "node_modules/@nomicfoundation/edr-linux-x64-musl": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.4.2.tgz", + "integrity": "sha512-qiMlXQTggdH9zfOB4Eil4rQ95z8s7QdLJcOfz5Aym12qJNkCyF9hi4cc4dDCWA0CdI3x3oLbuf8qb81SF8R45w==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 18" } }, - "node_modules/@personaelabs/spartan-ecdsa/node_modules/snarkjs": { - "version": "0.7.4", - "license": "GPL-3.0", + "node_modules/@nomicfoundation/edr-win32-x64-msvc": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.4.2.tgz", + "integrity": "sha512-hDkAb0iaMmGYwBY/rA1oCX8VpsezfQcHPEPIEGXEcWC3WbnOgIZo0Qkpu/g0OMtFOJSQlWLXvKZuV7blhnrQag==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/ethereumjs-common": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz", + "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==", + "license": "MIT", + "peer": true, "dependencies": { - "@iden3/binfileutils": "0.0.12", - "bfj": "^7.0.2", - "blake2b-wasm": "^2.4.0", - "circom_runtime": "0.1.25", - "ejs": "^3.1.6", - "fastfile": "0.0.20", - "ffjavascript": "0.3.0", - "js-sha3": "^0.8.0", - "logplease": "^1.2.15", - "r1csfile": "0.0.48" - }, + "@nomicfoundation/ethereumjs-util": "9.0.4" + } + }, + "node_modules/@nomicfoundation/ethereumjs-rlp": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz", + "integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==", + "license": "MPL-2.0", + "peer": true, "bin": { - "snarkjs": "build/cli.cjs" + "rlp": "bin/rlp.cjs" + }, + "engines": { + "node": ">=18" } }, - "node_modules/@prisma/client": { - "version": "5.16.1", - "hasInstallScript": true, - "license": "Apache-2.0", + "node_modules/@nomicfoundation/ethereumjs-tx": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz", + "integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==", + "license": "MPL-2.0", + "peer": true, + "dependencies": { + "@nomicfoundation/ethereumjs-common": "4.0.4", + "@nomicfoundation/ethereumjs-rlp": "5.0.4", + "@nomicfoundation/ethereumjs-util": "9.0.4", + "ethereum-cryptography": "0.1.3" + }, "engines": { - "node": ">=16.13" + "node": ">=18" }, "peerDependencies": { - "prisma": "*" + "c-kzg": "^2.1.2" }, "peerDependenciesMeta": { - "prisma": { + "c-kzg": { "optional": true } } }, - "node_modules/@prisma/debug": { - "version": "5.16.1", - "devOptional": true, - "license": "Apache-2.0" - }, - "node_modules/@prisma/engines": { - "version": "5.16.1", - "devOptional": true, - "hasInstallScript": true, - "license": "Apache-2.0", + "node_modules/@nomicfoundation/ethereumjs-tx/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "license": "MIT", + "peer": true, "dependencies": { - "@prisma/debug": "5.16.1", - "@prisma/engines-version": "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303", - "@prisma/fetch-engine": "5.16.1", - "@prisma/get-platform": "5.16.1" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/@prisma/engines-version": { - "version": "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303", - "devOptional": true, - "license": "Apache-2.0" - }, - "node_modules/@prisma/fetch-engine": { - "version": "5.16.1", - "devOptional": true, - "license": "Apache-2.0", + "node_modules/@nomicfoundation/ethereumjs-util": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz", + "integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==", + "license": "MPL-2.0", + "peer": true, "dependencies": { - "@prisma/debug": "5.16.1", - "@prisma/engines-version": "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303", - "@prisma/get-platform": "5.16.1" + "@nomicfoundation/ethereumjs-rlp": "5.0.4", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "c-kzg": "^2.1.2" + }, + "peerDependenciesMeta": { + "c-kzg": { + "optional": true + } } }, - "node_modules/@prisma/generator-helper": { - "version": "5.16.1", - "dev": true, - "license": "Apache-2.0", + "node_modules/@nomicfoundation/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "license": "MIT", + "peer": true, "dependencies": { - "@prisma/debug": "5.16.1" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/@prisma/get-platform": { - "version": "5.16.1", - "devOptional": true, - "license": "Apache-2.0", + "node_modules/@nomicfoundation/hardhat-chai-matchers": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.7.tgz", + "integrity": "sha512-RQfsiTwdf0SP+DtuNYvm4921X6VirCQq0Xyh+mnuGlTwEFSPZ/o27oQC+l+3Y/l48DDU7+ZcYBR+Fp+Rp94LfQ==", + "license": "MIT", + "peer": true, "dependencies": { - "@prisma/debug": "5.16.1" - } - }, - "node_modules/@prisma/internals": { - "version": "5.16.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@prisma/debug": "5.16.1", - "@prisma/engines": "5.16.1", - "@prisma/fetch-engine": "5.16.1", - "@prisma/generator-helper": "5.16.1", - "@prisma/get-platform": "5.16.1", - "@prisma/prisma-schema-wasm": "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303", - "@prisma/schema-files-loader": "5.16.1", - "arg": "5.0.2", - "prompts": "2.4.2" + "@types/chai-as-promised": "^7.1.3", + "chai-as-promised": "^7.1.1", + "deep-eql": "^4.0.1", + "ordinal": "^1.0.3" + }, + "peerDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "chai": "^4.2.0", + "ethers": "^6.1.0", + "hardhat": "^2.9.4" } }, - "node_modules/@prisma/prisma-schema-wasm": { - "version": "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@prisma/schema-files-loader": { - "version": "5.16.1", - "dev": true, - "license": "Apache-2.0", + "node_modules/@nomicfoundation/hardhat-ethers": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.6.tgz", + "integrity": "sha512-/xzkFQAaHQhmIAYOQmvHBPwL+NkwLzT9gRZBsgWUYeV+E6pzXsBQsHfRYbAZ3XEYare+T7S+5Tg/1KDJgepSkA==", + "license": "MIT", + "peer": true, "dependencies": { - "@prisma/prisma-schema-wasm": "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303", - "fs-extra": "11.1.1" + "debug": "^4.1.1", + "lodash.isequal": "^4.5.0" + }, + "peerDependencies": { + "ethers": "^6.1.0", + "hardhat": "^2.0.0" } }, - "node_modules/@prisma/schema-files-loader/node_modules/fs-extra": { - "version": "11.1.1", - "dev": true, + "node_modules/@nomicfoundation/hardhat-ignition": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-0.15.5.tgz", + "integrity": "sha512-Y5nhFXFqt4owA6Ooag8ZBFDF2RAZElMXViknVIsi3m45pbQimS50ti6FU8HxfRkDnBARa40CIn7UGV0hrelzDw==", "license": "MIT", + "peer": true, "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@nomicfoundation/ignition-core": "^0.15.5", + "@nomicfoundation/ignition-ui": "^0.15.5", + "chalk": "^4.0.0", + "debug": "^4.3.2", + "fs-extra": "^10.0.0", + "prompts": "^2.4.2" }, - "engines": { - "node": ">=14.14" + "peerDependencies": { + "@nomicfoundation/hardhat-verify": "^2.0.1", + "hardhat": "^2.18.0" } }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.10.3", - "license": "MIT" - }, - "node_modules/@scure/base": { - "version": "1.1.7", + "node_modules/@nomicfoundation/hardhat-ignition-ethers": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition-ethers/-/hardhat-ignition-ethers-0.15.5.tgz", + "integrity": "sha512-W6s1QN9CFxzSVZS6w9Jcj3WLaK32z2FP5MxNU2OKY1Fn9ZzLr+miXbUbWYuRHl6dxrrl6sE8cv33Cybv19pmCg==", "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" + "peer": true, + "peerDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.4", + "@nomicfoundation/hardhat-ignition": "^0.15.5", + "@nomicfoundation/ignition-core": "^0.15.5", + "ethers": "^6.7.0", + "hardhat": "^2.18.0" } }, - "node_modules/@scure/bip32": { - "version": "1.4.0", + "node_modules/@nomicfoundation/hardhat-network-helpers": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.11.tgz", + "integrity": "sha512-uGPL7QSKvxrHRU69dx8jzoBvuztlLCtyFsbgfXIwIjnO3dqZRz2GNMHJoO3C3dIiUNM6jdNF4AUnoQKDscdYrA==", "license": "MIT", + "peer": true, "dependencies": { - "@noble/curves": "~1.4.0", - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" + "ethereumjs-util": "^7.1.4" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "hardhat": "^2.9.5" } }, - "node_modules/@scure/bip39": { - "version": "1.3.0", + "node_modules/@nomicfoundation/hardhat-toolbox": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-5.0.0.tgz", + "integrity": "sha512-FnUtUC5PsakCbwiVNsqlXVIWG5JIb5CEZoSXbJUsEBun22Bivx2jhF1/q9iQbzuaGpJKFQyOhemPB2+XlEE6pQ==", + "license": "MIT", + "peerDependencies": { + "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "@nomicfoundation/hardhat-ignition-ethers": "^0.15.0", + "@nomicfoundation/hardhat-network-helpers": "^1.0.0", + "@nomicfoundation/hardhat-verify": "^2.0.0", + "@typechain/ethers-v6": "^0.5.0", + "@typechain/hardhat": "^9.0.0", + "@types/chai": "^4.2.0", + "@types/mocha": ">=9.1.0", + "@types/node": ">=18.0.0", + "chai": "^4.2.0", + "ethers": "^6.4.0", + "hardhat": "^2.11.0", + "hardhat-gas-reporter": "^1.0.8", + "solidity-coverage": "^0.8.1", + "ts-node": ">=8.0.0", + "typechain": "^8.3.0", + "typescript": ">=4.5.0" + } + }, + "node_modules/@nomicfoundation/hardhat-verify": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.8.tgz", + "integrity": "sha512-x/OYya7A2Kcz+3W/J78dyDHxr0ezU23DKTrRKfy5wDPCnePqnr79vm8EXqX3gYps6IjPBYyGPZ9K6E5BnrWx5Q==", "license": "MIT", + "peer": true, "dependencies": { - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" + "@ethersproject/abi": "^5.1.2", + "@ethersproject/address": "^5.0.2", + "cbor": "^8.1.0", + "chalk": "^2.4.2", + "debug": "^4.1.1", + "lodash.clonedeep": "^4.5.0", + "semver": "^6.3.0", + "table": "^6.8.0", + "undici": "^5.14.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "hardhat": "^2.0.4" } }, - "node_modules/@sinclair/typebox": { - "version": "0.24.51", - "dev": true, - "license": "MIT" - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/@nomicfoundation/hardhat-verify/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "peer": true, "dependencies": { - "type-detect": "4.0.8" + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/@nomicfoundation/hardhat-verify/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "peer": true, "dependencies": { - "@sinonjs/commons": "^1.7.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/@stablelib/aead": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/@stablelib/binary": { - "version": "1.0.1", + "node_modules/@nomicfoundation/hardhat-verify/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "license": "MIT", + "peer": true, "dependencies": { - "@stablelib/int": "^1.0.1" + "color-name": "1.1.3" } }, - "node_modules/@stablelib/bytes": { - "version": "1.0.1", - "license": "MIT" + "node_modules/@nomicfoundation/hardhat-verify/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT", + "peer": true }, - "node_modules/@stablelib/chacha": { - "version": "1.0.1", + "node_modules/@nomicfoundation/hardhat-verify/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "license": "MIT", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "peer": true, + "engines": { + "node": ">=0.8.0" } }, - "node_modules/@stablelib/chacha20poly1305": { - "version": "1.0.1", + "node_modules/@nomicfoundation/hardhat-verify/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "license": "MIT", - "dependencies": { - "@stablelib/aead": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/poly1305": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "peer": true, + "engines": { + "node": ">=4" } }, - "node_modules/@stablelib/constant-time": { - "version": "1.0.1", - "license": "MIT" + "node_modules/@nomicfoundation/hardhat-verify/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } }, - "node_modules/@stablelib/ed25519": { - "version": "1.0.3", + "node_modules/@nomicfoundation/hardhat-verify/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "license": "MIT", + "peer": true, "dependencies": { - "@stablelib/random": "^1.0.2", - "@stablelib/sha512": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/@stablelib/hash": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/@stablelib/int": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/@stablelib/keyagreement": { - "version": "1.0.1", + "node_modules/@nomicfoundation/ignition-core": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-core/-/ignition-core-0.15.5.tgz", + "integrity": "sha512-FgvuoIXhakRSP524JzNQ4BviyzBBKpsFaOWubPZ4XACLT4/7vGqlJ/7DIn0D2NL2anQ2qs98/BNBY9WccXUX1Q==", "license": "MIT", + "peer": true, "dependencies": { - "@stablelib/bytes": "^1.0.1" + "@ethersproject/address": "5.6.1", + "@nomicfoundation/solidity-analyzer": "^0.1.1", + "cbor": "^9.0.0", + "debug": "^4.3.2", + "ethers": "^6.7.0", + "fs-extra": "^10.0.0", + "immer": "10.0.2", + "lodash": "4.17.21", + "ndjson": "2.0.0" } }, - "node_modules/@stablelib/poly1305": { - "version": "1.0.1", + "node_modules/@nomicfoundation/ignition-core/node_modules/@ethersproject/address": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", + "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", + "peer": true, "dependencies": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/rlp": "^5.6.1" } }, - "node_modules/@stablelib/random": { - "version": "1.0.2", + "node_modules/@nomicfoundation/ignition-core/node_modules/cbor": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", + "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", "license": "MIT", + "peer": true, "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=16" } }, - "node_modules/@stablelib/sha256": { - "version": "1.0.1", + "node_modules/@nomicfoundation/ignition-ui": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-ui/-/ignition-ui-0.15.5.tgz", + "integrity": "sha512-ZcE4rIn10qKahR4OqS8rl8NM2Fbg2QYiBXgMgj74ZI0++LlCcZgB5HyaBbX+lsnKHjTXtjYD3b+2mtg7jFbAMQ==", + "peer": true + }, + "node_modules/@nomicfoundation/solidity-analyzer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.2.tgz", + "integrity": "sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA==", "license": "MIT", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "peer": true, + "engines": { + "node": ">= 12" + }, + "optionalDependencies": { + "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.2", + "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.2", + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.2", + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.2", + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.2", + "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.2", + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.2" } }, - "node_modules/@stablelib/sha512": { - "version": "1.0.1", + "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.2.tgz", + "integrity": "sha512-JaqcWPDZENCvm++lFFGjrDd8mxtf+CtLd2MiXvMNTBD33dContTZ9TWETwNFwg7JTJT5Q9HEecH7FA+HTSsIUw==", "license": "MIT", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "optional": true, + "peer": true, + "engines": { + "node": ">= 12" } }, - "node_modules/@stablelib/wipe": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/@stablelib/x25519": { - "version": "1.0.3", + "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.2.tgz", + "integrity": "sha512-fZNmVztrSXC03e9RONBT+CiksSeYcxI1wlzqyr0L7hsQlK1fzV+f04g2JtQ1c/Fe74ZwdV6aQBdd6Uwl1052sw==", "license": "MIT", - "dependencies": { - "@stablelib/keyagreement": "^1.0.1", - "@stablelib/random": "^1.0.2", - "@stablelib/wipe": "^1.0.1" + "optional": true, + "peer": true, + "engines": { + "node": ">= 12" } }, - "node_modules/@stablelib/xchacha20": { - "version": "1.0.1", + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.2.tgz", + "integrity": "sha512-3d54oc+9ZVBuB6nbp8wHylk4xh0N0Gc+bk+/uJae+rUgbOBwQSfuGIbAZt1wBXs5REkSmynEGcqx6DutoK0tPA==", "license": "MIT", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/wipe": "^1.0.1" + "optional": true, + "peer": true, + "engines": { + "node": ">= 12" } }, - "node_modules/@stablelib/xchacha20poly1305": { - "version": "1.0.1", + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.2.tgz", + "integrity": "sha512-iDJfR2qf55vgsg7BtJa7iPiFAsYf2d0Tv/0B+vhtnI16+wfQeTbP7teookbGvAo0eJo7aLLm0xfS/GTkvHIucA==", "license": "MIT", - "dependencies": { - "@stablelib/aead": "^1.0.1", - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1", - "@stablelib/xchacha20": "^1.0.1" + "optional": true, + "peer": true, + "engines": { + "node": ">= 12" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "dev": true, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.2.tgz", + "integrity": "sha512-9dlHMAt5/2cpWyuJ9fQNOUXFB/vgSFORg1jpjX1Mh9hJ/MfZXlDdHQ+DpFCs32Zk5pxRBb07yGvSHk9/fezL+g==", "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "optional": true, + "peer": true, + "engines": { + "node": ">= 12" } }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "dev": true, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.2.tgz", + "integrity": "sha512-GzzVeeJob3lfrSlDKQw2bRJ8rBf6mEYaWY+gW0JnTDHINA0s2gPR4km5RLIj1xeZZOYz4zRw+AEeYgLRqB2NXg==", "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" + "optional": true, + "peer": true, + "engines": { + "node": ">= 12" } }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "dev": true, + "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.2.tgz", + "integrity": "sha512-Fdjli4DCcFHb4Zgsz0uEJXZ2K7VEO+w5KVv7HmT7WO10iODdU9csC2az4jrhEsRtiR9Gfd74FlG0NYlw1BMdyA==", "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "optional": true, + "peer": true, + "engines": { + "node": ">= 12" } }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "dev": true, + "node_modules/@nuxtjs/opencollective": { + "version": "0.3.2", "license": "MIT", "dependencies": { - "@babel/types": "^7.20.7" + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" + }, + "bin": { + "opencollective": "bin/opencollective.js" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" } }, - "node_modules/@types/bcrypt": { + "node_modules/@openzeppelin/contracts": { "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.0.2.tgz", + "integrity": "sha512-ytPc6eLGcHHnapAZ9S+5qsdomhjo6QBHTDRRBFfTxXIpsicMhVPouPgmUPebZZZGX7vt9USA+Z+0M0dSVtSUEA==", + "license": "MIT" + }, + "node_modules/@paralleldrive/cuid2": { + "version": "2.2.2", "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*" + "@noble/hashes": "^1.1.5" } }, - "node_modules/@types/bn.js": { - "version": "5.1.5", + "node_modules/@personaelabs/spartan-ecdsa": { + "version": "2.3.1", "license": "MIT", "dependencies": { - "@types/node": "*" + "@ethereumjs/util": "^8.0.3", + "@zk-kit/incremental-merkle-tree": "^1.0.0", + "elliptic": "^6.5.4", + "snarkjs": "^0.7.1" } }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "dev": true, - "license": "MIT", + "node_modules/@personaelabs/spartan-ecdsa/node_modules/@iden3/binfileutils": { + "version": "0.0.12", + "license": "GPL-3.0", "dependencies": { - "@types/connect": "*", - "@types/node": "*" + "fastfile": "0.0.20", + "ffjavascript": "^0.3.0" } }, - "node_modules/@types/circomlibjs": { - "version": "0.1.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "dev": true, - "license": "MIT", + "node_modules/@personaelabs/spartan-ecdsa/node_modules/circom_runtime": { + "version": "0.1.25", + "license": "Apache-2.0", "dependencies": { - "@types/node": "*" + "ffjavascript": "0.3.0" + }, + "bin": { + "calcwit": "calcwit.js" } }, - "node_modules/@types/cookiejar": { - "version": "2.1.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/cron": { - "version": "2.4.0", - "deprecated": "This is a stub types definition. cron provides its own type definitions, so you do not need this installed.", - "dev": true, - "license": "MIT", + "node_modules/@personaelabs/spartan-ecdsa/node_modules/ffjavascript": { + "version": "0.3.0", + "license": "GPL-3.0", "dependencies": { - "cron": "*" + "wasmbuilder": "0.0.16", + "wasmcurves": "0.2.2", + "web-worker": "1.2.0" } }, - "node_modules/@types/crypto-js": { - "version": "4.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/ed2curve": { - "version": "0.2.4", - "dev": true, - "license": "MIT", + "node_modules/@personaelabs/spartan-ecdsa/node_modules/r1csfile": { + "version": "0.0.48", + "license": "GPL-3.0", "dependencies": { - "tweetnacl": "^1.0.0" + "@iden3/bigarray": "0.0.2", + "@iden3/binfileutils": "0.0.12", + "fastfile": "0.0.20", + "ffjavascript": "0.3.0" } }, - "node_modules/@types/elliptic": { - "version": "6.4.18", - "dev": true, - "license": "MIT", + "node_modules/@personaelabs/spartan-ecdsa/node_modules/snarkjs": { + "version": "0.7.4", + "license": "GPL-3.0", "dependencies": { - "@types/bn.js": "*" + "@iden3/binfileutils": "0.0.12", + "bfj": "^7.0.2", + "blake2b-wasm": "^2.4.0", + "circom_runtime": "0.1.25", + "ejs": "^3.1.6", + "fastfile": "0.0.20", + "ffjavascript": "0.3.0", + "js-sha3": "^0.8.0", + "logplease": "^1.2.15", + "r1csfile": "0.0.48" + }, + "bin": { + "snarkjs": "build/cli.cjs" } }, - "node_modules/@types/eslint": { - "version": "8.56.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" + "node_modules/@prisma/client": { + "version": "5.16.1", + "hasInstallScript": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.13" + }, + "peerDependencies": { + "prisma": "*" + }, + "peerDependenciesMeta": { + "prisma": { + "optional": true + } } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "dev": true, - "license": "MIT", + "node_modules/@prisma/debug": { + "version": "5.16.1", + "devOptional": true, + "license": "Apache-2.0" + }, + "node_modules/@prisma/engines": { + "version": "5.16.1", + "devOptional": true, + "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" + "@prisma/debug": "5.16.1", + "@prisma/engines-version": "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303", + "@prisma/fetch-engine": "5.16.1", + "@prisma/get-platform": "5.16.1" } }, - "node_modules/@types/estree": { - "version": "1.0.5", - "dev": true, - "license": "MIT" + "node_modules/@prisma/engines-version": { + "version": "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303", + "devOptional": true, + "license": "Apache-2.0" }, - "node_modules/@types/express": { - "version": "4.17.21", - "dev": true, - "license": "MIT", + "node_modules/@prisma/fetch-engine": { + "version": "5.16.1", + "devOptional": true, + "license": "Apache-2.0", "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" + "@prisma/debug": "5.16.1", + "@prisma/engines-version": "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303", + "@prisma/get-platform": "5.16.1" } }, - "node_modules/@types/express-serve-static-core": { - "version": "4.19.5", + "node_modules/@prisma/generator-helper": { + "version": "5.16.1", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" + "@prisma/debug": "5.16.1" } }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "dev": true, - "license": "MIT", + "node_modules/@prisma/get-platform": { + "version": "5.16.1", + "devOptional": true, + "license": "Apache-2.0", "dependencies": { - "@types/node": "*" + "@prisma/debug": "5.16.1" } }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", + "node_modules/@prisma/internals": { + "version": "5.16.1", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@types/istanbul-lib-coverage": "*" + "@prisma/debug": "5.16.1", + "@prisma/engines": "5.16.1", + "@prisma/fetch-engine": "5.16.1", + "@prisma/generator-helper": "5.16.1", + "@prisma/get-platform": "5.16.1", + "@prisma/prisma-schema-wasm": "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303", + "@prisma/schema-files-loader": "5.16.1", + "arg": "5.0.2", + "prompts": "2.4.2" } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", + "node_modules/@prisma/prisma-schema-wasm": { + "version": "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303", "dev": true, - "license": "MIT", + "license": "Apache-2.0" + }, + "node_modules/@prisma/schema-files-loader": { + "version": "5.16.1", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@types/istanbul-lib-report": "*" + "@prisma/prisma-schema-wasm": "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303", + "fs-extra": "11.1.1" } }, - "node_modules/@types/jest": { - "version": "28.1.4", + "node_modules/@prisma/schema-files-loader/node_modules/fs-extra": { + "version": "11.1.1", "dev": true, "license": "MIT", "dependencies": { - "jest-matcher-utils": "^28.0.0", - "pretty-format": "^28.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" } }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.3", "license": "MIT" }, - "node_modules/@types/jsonwebtoken": { - "version": "8.5.8", + "node_modules/@scure/base": { + "version": "1.1.7", "license": "MIT", - "dependencies": { - "@types/node": "*" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@types/luxon": { - "version": "3.3.8", - "license": "MIT" - }, - "node_modules/@types/methods": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "20.14.9", + "node_modules/@scure/bip32": { + "version": "1.4.0", "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "license": "MIT" - }, - "node_modules/@types/passport": { - "version": "1.0.16", - "dev": true, + "node_modules/@scure/bip39": { + "version": "1.3.0", "license": "MIT", "dependencies": { - "@types/express": "*" + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@types/passport-jwt": { - "version": "3.0.13", - "dev": true, - "license": "MIT", + "node_modules/@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "license": "BSD-3-Clause", + "peer": true, "dependencies": { - "@types/express": "*", - "@types/jsonwebtoken": "*", - "@types/passport-strategy": "*" + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" } }, - "node_modules/@types/passport-strategy": { - "version": "0.2.38", - "dev": true, - "license": "MIT", + "node_modules/@sentry/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD", + "peer": true + }, + "node_modules/@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "license": "BSD-3-Clause", + "peer": true, "dependencies": { - "@types/express": "*", - "@types/passport": "*" + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" } }, - "node_modules/@types/pbkdf2": { - "version": "3.1.2", - "license": "MIT", + "node_modules/@sentry/hub/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD", + "peer": true + }, + "node_modules/@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "license": "BSD-3-Clause", + "peer": true, "dependencies": { - "@types/node": "*" + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" } }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.9.15", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "dev": true, - "license": "MIT" + "node_modules/@sentry/minimal/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD", + "peer": true + }, + "node_modules/@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } }, - "node_modules/@types/secp256k1": { - "version": "4.0.6", + "node_modules/@sentry/node/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "license": "MIT", - "dependencies": { - "@types/node": "*" + "peer": true, + "engines": { + "node": ">= 0.6" } }, - "node_modules/@types/semver": { - "version": "7.5.8", - "license": "MIT" + "node_modules/@sentry/node/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD", + "peer": true }, - "node_modules/@types/send": { - "version": "0.17.4", - "dev": true, + "node_modules/@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", "license": "MIT", + "peer": true, "dependencies": { - "@types/mime": "^1", - "@types/node": "*" + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" } }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "dev": true, - "license": "MIT", + "node_modules/@sentry/tracing/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD", + "peer": true + }, + "node_modules/@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "license": "BSD-3-Clause", + "peer": true, "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" } }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", + "node_modules/@sentry/utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD", + "peer": true + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", "dev": true, "license": "MIT" }, - "node_modules/@types/superagent": { - "version": "8.1.7", + "node_modules/@sinonjs/commons": { + "version": "1.8.6", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "@types/cookiejar": "^2.1.5", - "@types/methods": "^1.1.4", - "@types/node": "*" + "type-detect": "4.0.8" } }, - "node_modules/@types/supertest": { - "version": "2.0.16", + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@solidity-parser/parser": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", + "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", "license": "MIT", + "peer": true, "dependencies": { - "@types/superagent": "*" + "antlr4ts": "^0.5.0-alpha.4" } }, - "node_modules/@types/uuid": { - "version": "8.3.4", + "node_modules/@stablelib/aead": { + "version": "1.0.1", "license": "MIT" }, - "node_modules/@types/yargs": { - "version": "17.0.32", - "dev": true, + "node_modules/@stablelib/binary": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "@types/yargs-parser": "*" + "@stablelib/int": "^1.0.1" } }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "dev": true, + "node_modules/@stablelib/bytes": { + "version": "1.0.1", "license": "MIT" }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", + "node_modules/@stablelib/chacha": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/chacha20poly1305": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@stablelib/aead": "^1.0.1", + "@stablelib/binary": "^1.0.1", + "@stablelib/chacha": "^1.0.1", + "@stablelib/constant-time": "^1.0.1", + "@stablelib/poly1305": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/constant-time": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/@stablelib/ed25519": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "@stablelib/random": "^1.0.2", + "@stablelib/sha512": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/hash": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/@stablelib/int": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/@stablelib/keyagreement": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@stablelib/bytes": "^1.0.1" + } + }, + "node_modules/@stablelib/poly1305": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@stablelib/constant-time": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/random": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/sha256": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/sha512": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/wipe": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/@stablelib/x25519": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "@stablelib/keyagreement": "^1.0.1", + "@stablelib/random": "^1.0.2", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/xchacha20": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@stablelib/binary": "^1.0.1", + "@stablelib/chacha": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "node_modules/@stablelib/xchacha20poly1305": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@stablelib/aead": "^1.0.1", + "@stablelib/chacha20poly1305": "^1.0.1", + "@stablelib/constant-time": "^1.0.1", + "@stablelib/wipe": "^1.0.1", + "@stablelib/xchacha20": "^1.0.1" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "license": "MIT" + }, + "node_modules/@typechain/ethers-v6": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz", + "integrity": "sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==", + "license": "MIT", + "peer": true, + "dependencies": { + "lodash": "^4.17.15", + "ts-essentials": "^7.0.1" + }, + "peerDependencies": { + "ethers": "6.x", + "typechain": "^8.3.2", + "typescript": ">=4.7.0" + } + }, + "node_modules/@typechain/ethers-v6/node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "typescript": ">=3.7.0" + } + }, + "node_modules/@typechain/hardhat": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-9.1.0.tgz", + "integrity": "sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==", + "license": "MIT", + "peer": true, + "dependencies": { + "fs-extra": "^9.1.0" + }, + "peerDependencies": { + "@typechain/ethers-v6": "^0.5.1", + "ethers": "^6.1.0", + "hardhat": "^2.9.9", + "typechain": "^8.3.2" + } + }, + "node_modules/@typechain/hardhat/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/bcrypt": { + "version": "5.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/bn.js": { + "version": "5.1.5", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/chai": { + "version": "4.3.16", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.16.tgz", + "integrity": "sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/chai-as-promised": { + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", + "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/circomlibjs": { + "version": "0.1.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cookiejar": { + "version": "2.1.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/cron": { + "version": "2.4.0", + "deprecated": "This is a stub types definition. cron provides its own type definitions, so you do not need this installed.", + "dev": true, + "license": "MIT", + "dependencies": { + "cron": "*" + } + }, + "node_modules/@types/crypto-js": { + "version": "4.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ed2curve": { + "version": "0.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tweetnacl": "^1.0.0" + } + }, + "node_modules/@types/elliptic": { + "version": "6.4.18", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/bn.js": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "28.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-matcher-utils": "^28.0.0", + "pretty-format": "^28.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "license": "MIT" + }, + "node_modules/@types/jsonwebtoken": { + "version": "8.5.8", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/luxon": { + "version": "3.3.8", + "license": "MIT" + }, + "node_modules/@types/methods": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/mocha": { + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.7.tgz", + "integrity": "sha512-GN8yJ1mNTcFcah/wKEFIJckJx9iJLoMSzWcfRRuxz/Jk+U6KQNnml+etbtxFK8lPjzOw3zp4Ha/kjSst9fsHYw==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/node": { + "version": "20.14.9", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "license": "MIT" + }, + "node_modules/@types/passport": { + "version": "1.0.16", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/passport-jwt": { + "version": "3.0.13", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*", + "@types/jsonwebtoken": "*", + "@types/passport-strategy": "*" + } + }, + "node_modules/@types/passport-strategy": { + "version": "0.2.38", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*", + "@types/passport": "*" + } + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.15", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/secp256k1": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz", + "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/superagent": { + "version": "8.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/cookiejar": "^2.1.5", + "@types/methods": "^1.1.4", + "@types/node": "*" + } + }, + "node_modules/@types/supertest": { + "version": "2.0.16", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/superagent": "*" + } + }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.62.0", + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ucast/core": { + "version": "1.10.2", + "license": "Apache-2.0" + }, + "node_modules/@ucast/js": { + "version": "3.0.4", + "license": "Apache-2.0", + "dependencies": { + "@ucast/core": "^1.0.0" + } + }, + "node_modules/@ucast/mongo": { + "version": "2.4.3", + "license": "Apache-2.0", + "dependencies": { + "@ucast/core": "^1.4.1" + } + }, + "node_modules/@ucast/mongo2js": { + "version": "1.3.4", + "license": "Apache-2.0", + "dependencies": { + "@ucast/core": "^1.6.1", + "@ucast/js": "^3.0.0", + "@ucast/mongo": "^2.4.0" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "license": "ISC" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@zk-kit/incremental-merkle-tree": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", + "license": "ISC", + "peer": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.12.0", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "dev": true, + "license": "MIT", + "peer": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.3", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "license": "MIT" + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", + "peer": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "license": "BSD-3-Clause OR MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", + "peer": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/antlr4ts": { + "version": "0.5.0-alpha.4", + "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/arg": { + "version": "5.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.1.3", + "license": "Apache-2.0", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.8", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.toreversed": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "license": "MIT" + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "license": "MIT" + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.5", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.9.1", + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "license": "MIT", + "peer": true, + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "3.1.1", + "license": "Apache-2.0", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/b4a": { + "version": "1.6.6", + "license": "Apache-2.0" + }, + "node_modules/babel-jest": { + "version": "28.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^28.1.3", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "28.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.62.0", + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "license": "BSD-2-Clause", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "license": "MIT" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", + "node_modules/babel-preset-jest": { + "version": "28.1.3", + "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "babel-plugin-jest-hoist": "^28.1.3", + "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" }, "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@babel/core": "^7.0.0" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", + "node_modules/babel-preset-react-app": { + "version": "10.0.1", "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "license": "BSD-2-Clause", + "node_modules/balanced-match": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/base-x": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "safe-buffer": "^5.0.1" } }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", + "node_modules/base64-js": { + "version": "1.5.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bech32": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/bfj": { + "version": "7.1.0", "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "bluebird": "^3.7.2", + "check-types": "^11.2.3", + "hoopy": "^0.1.4", + "jsonpath": "^1.1.1", + "tryer": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "node": ">= 8.0.0" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", + "node_modules/bignumber.js": { + "version": "9.1.2", "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "license": "MIT", + "engines": { + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@ucast/core": { - "version": "1.10.2", - "license": "Apache-2.0" - }, - "node_modules/@ucast/js": { - "version": "3.0.4", - "license": "Apache-2.0", + "node_modules/bl": { + "version": "4.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "@ucast/core": "^1.0.0" + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "node_modules/@ucast/mongo": { - "version": "2.4.3", - "license": "Apache-2.0", + "node_modules/blake-hash": { + "version": "2.0.0", + "hasInstallScript": true, + "license": "MIT", "dependencies": { - "@ucast/core": "^1.4.1" + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" } }, - "node_modules/@ucast/mongo2js": { - "version": "1.3.4", - "license": "Apache-2.0", + "node_modules/blake2b": { + "version": "2.1.4", + "license": "ISC", "dependencies": { - "@ucast/core": "^1.6.1", - "@ucast/js": "^3.0.0", - "@ucast/mongo": "^2.4.0" + "blake2b-wasm": "^2.4.0", + "nanoassert": "^2.0.0" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "license": "ISC" - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "dev": true, + "node_modules/blake2b-wasm": { + "version": "2.4.0", "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "b4a": "^1.0.1", + "nanoassert": "^2.0.0" } }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "dev": true, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", "license": "MIT" }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "dev": true, + "node_modules/bluebird": { + "version": "3.7.2", "license": "MIT" }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "dev": true, + "node_modules/bn.js": { + "version": "4.12.0", "license": "MIT" }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "dev": true, + "node_modules/body-parser": { + "version": "1.20.2", "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "dev": true, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", "license": "MIT" }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "dev": true, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "license": "MIT", + "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "dev": true, + "node_modules/brace-expansion": { + "version": "1.1.11", "license": "MIT", "dependencies": { - "@xtuc/ieee754": "^1.2.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "dev": true, - "license": "Apache-2.0", + "node_modules/braces": { + "version": "3.0.3", + "license": "MIT", "dependencies": { - "@xtuc/long": "4.2.2" + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "dev": true, + "node_modules/brorand": { + "version": "1.1.0", "license": "MIT" }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "dev": true, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "license": "ISC", + "peer": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "dev": true, + "node_modules/browserslist": { + "version": "4.23.1", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", + "node_modules/bs-logger": { + "version": "0.2.6", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "dev": true, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "base-x": "^3.0.2" } }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "dev": true, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@xtuc/long": "4.2.2" + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" } }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", + "node_modules/bser": { + "version": "2.1.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/bson": { + "version": "6.8.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.20.1" + } + }, + "node_modules/buffer": { + "version": "5.7.1", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", "license": "BSD-3-Clause" }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "dev": true, - "license": "Apache-2.0" + "node_modules/buffer-from": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/buffer-reverse": { + "version": "1.0.1", + "license": "MIT" }, - "node_modules/@zk-kit/incremental-merkle-tree": { - "version": "1.1.0", + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", "license": "MIT" }, - "node_modules/accepts": { - "version": "1.3.8", - "license": "MIT", + "node_modules/busboy": { + "version": "1.6.0", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "streamsearch": "^1.1.0" }, "engines": { - "node": ">= 0.6" + "node": ">=10.16.0" } }, - "node_modules/acorn": { - "version": "8.12.0", + "node_modules/bytes": { + "version": "3.1.2", "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, "engines": { - "node": ">=0.4.0" + "node": ">= 0.8" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "dev": true, + "node_modules/call-bind": { + "version": "1.0.7", "license": "MIT", - "peerDependencies": { - "acorn": "^8" + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "dev": true, + "node_modules/callsites": { + "version": "3.1.0", "license": "MIT", - "peer": true, - "peerDependencies": { - "acorn": "^8" + "engines": { + "node": ">=6" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", + "node_modules/camelcase": { + "version": "6.3.0", "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/acorn-walk": { - "version": "8.3.3", - "dev": true, + "node_modules/caniuse-lite": { + "version": "1.0.30001639", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/canonicalize": { + "version": "2.0.0", + "license": "Apache-2.0" + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/cbor": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", + "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", "license": "MIT", + "peer": true, "dependencies": { - "acorn": "^8.11.0" + "nofilter": "^3.1.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=12.19" } }, - "node_modules/aes-js": { - "version": "4.0.0-beta.5", - "license": "MIT" - }, - "node_modules/ajv": { - "version": "8.12.0", - "dev": true, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", "license": "MIT", + "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=4" } }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "dev": true, - "license": "MIT", + "node_modules/chai-as-promised": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.2.tgz", + "integrity": "sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==", + "license": "WTFPL", + "peer": true, "dependencies": { - "ajv": "^8.0.0" + "check-error": "^1.0.2" }, "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" + "chai": ">= 2.1.2 < 6" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "dev": true, + "node_modules/chalk": { + "version": "4.1.2", "license": "MIT", "dependencies": { - "type-fest": "^0.21.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", + "node_modules/char-regex": { + "version": "1.0.2", "dev": true, - "license": "(MIT OR CC0-1.0)", + "license": "MIT", "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "license": "MIT", + "node_modules/chardet": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "license": "BSD-3-Clause", + "peer": true, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "license": "MIT", + "peer": true, "dependencies": { - "color-convert": "^2.0.1" + "get-func-name": "^2.0.2" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "*" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "dev": true, - "license": "ISC", + "node_modules/check-types": { + "version": "11.2.3", + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "3.5.3", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">= 8" + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/append-field": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/arg": { - "version": "5.0.2", + "node_modules/chrome-trace-event": { + "version": "1.0.4", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=6.0" + } }, - "node_modules/argparse": { - "version": "2.0.1", - "license": "Python-2.0" + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "license": "MIT", + "peer": true }, - "node_modules/aria-query": { - "version": "5.1.3", + "node_modules/cipher-base": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/circom_runtime": { + "version": "0.1.22", "license": "Apache-2.0", "dependencies": { - "deep-equal": "^2.0.5" + "ffjavascript": "0.2.57" + }, + "bin": { + "calcwit": "calcwit.js" + } + }, + "node_modules/circom_runtime/node_modules/ffjavascript": { + "version": "0.2.57", + "license": "GPL-3.0", + "dependencies": { + "wasmbuilder": "0.0.16", + "wasmcurves": "0.2.0", + "web-worker": "^1.2.0" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "license": "MIT", + "node_modules/circom_runtime/node_modules/wasmcurves": { + "version": "0.2.0", + "license": "GPL-3.0", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "wasmbuilder": "0.0.16" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "license": "MIT" + "node_modules/circomlib": { + "version": "2.0.5", + "license": "GPL-3.0" }, - "node_modules/array-includes": { - "version": "3.1.8", - "license": "MIT", + "node_modules/circomlibjs": { + "version": "0.1.7", + "license": "GPL-3.0", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=8" + "blake-hash": "^2.0.0", + "blake2b": "^2.1.3", + "ethers": "^5.5.1", + "ffjavascript": "^0.2.45" } }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", + "node_modules/circomlibjs/node_modules/ethers": { + "version": "5.7.2", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/class-transformer": { + "version": "0.5.1", + "license": "MIT" + }, + "node_modules/class-validator": { + "version": "0.13.2", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "libphonenumber-js": "^1.9.43", + "validator": "^13.7.0" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, + "peer": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.toreversed": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", + "node_modules/cli-cursor": { + "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" + "restore-cursor": "^3.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", + "node_modules/cli-spinners": { + "version": "2.9.2", + "dev": true, "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - }, "engines": { - "node": ">= 0.4" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/asap": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/ast-types-flow": { - "version": "0.0.8", - "license": "MIT" - }, - "node_modules/async": { - "version": "3.2.5", - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", + "node_modules/cli-table3": { + "version": "0.6.3", "dev": true, - "license": "MIT" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", "license": "MIT", "dependencies": { - "possible-typed-array-names": "^1.0.0" + "string-width": "^4.2.0" }, "engines": { - "node": ">= 0.4" + "node": "10.* || >= 12.*" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "@colors/colors": "1.5.0" } }, - "node_modules/axe-core": { - "version": "4.9.1", - "license": "MPL-2.0", + "node_modules/cli-width": { + "version": "3.0.0", + "dev": true, + "license": "ISC", "engines": { - "node": ">=4" + "node": ">= 10" } }, - "node_modules/axobject-query": { - "version": "3.1.1", - "license": "Apache-2.0", + "node_modules/cliui": { + "version": "8.0.1", + "dev": true, + "license": "ISC", "dependencies": { - "deep-equal": "^2.0.5" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/b4a": { - "version": "1.6.6", - "license": "Apache-2.0" - }, - "node_modules/babel-jest": { - "version": "28.1.3", + "node_modules/clone": { + "version": "1.0.4", "dev": true, "license": "MIT", - "dependencies": { - "@jest/transform": "^28.1.3", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^28.1.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" + "node": ">=0.8" } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", + "node_modules/co": { + "version": "4.6.0", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "28.1.3", + "node_modules/collect-v8-coverage": { + "version": "1.0.2", "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", "license": "MIT", "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" + "color-name": "~1.1.4" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": ">=7.0.0" } }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", + "node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/colors": { + "version": "1.4.0", "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, "engines": { - "node": ">=10", - "npm": ">=6" + "node": ">=0.1.90" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.11", + "node_modules/combined-stream": { + "version": "1.0.8", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.2", - "semver": "^6.3.1" + "delayed-stream": "~1.0.0" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">= 0.8" } }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "license": "MIT", + "peer": true }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.4", + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "license": "MIT", + "peer": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.1", - "core-js-compat": "^3.36.1" + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">=4.0.0" } }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.2", + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", "license": "MIT", + "peer": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2" + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "license": "MIT" - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "dev": true, + "node_modules/command-line-usage/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "license": "MIT", + "peer": true, "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "color-convert": "^1.9.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "engines": { + "node": ">=4" } }, - "node_modules/babel-preset-jest": { - "version": "28.1.3", - "dev": true, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "license": "MIT", + "peer": true, "dependencies": { - "babel-plugin-jest-hoist": "^28.1.3", - "babel-preset-current-node-syntax": "^1.0.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=4" } }, - "node_modules/babel-preset-react-app": { - "version": "10.0.1", + "node_modules/command-line-usage/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "license": "MIT", + "peer": true, "dependencies": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + "color-name": "1.1.3" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" + "node_modules/command-line-usage/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT", + "peer": true }, - "node_modules/base-x": { - "version": "3.0.9", + "node_modules/command-line-usage/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "license": "MIT", - "dependencies": { - "safe-buffer": "^5.0.1" + "peer": true, + "engines": { + "node": ">=0.8.0" } }, - "node_modules/base64-js": { - "version": "1.5.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/bech32": { - "version": "2.0.0", - "license": "MIT" + "node_modules/command-line-usage/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } }, - "node_modules/bfj": { - "version": "7.1.0", + "node_modules/command-line-usage/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "license": "MIT", + "peer": true, "dependencies": { - "bluebird": "^3.7.2", - "check-types": "^11.2.3", - "hoopy": "^0.1.4", - "jsonpath": "^1.1.1", - "tryer": "^1.0.1" + "has-flag": "^3.0.0" }, "engines": { - "node": ">= 8.0.0" + "node": ">=4" } }, - "node_modules/bignumber.js": { - "version": "9.1.2", + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "license": "MIT", + "peer": true, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/binary-extensions": { - "version": "2.3.0", + "node_modules/commander": { + "version": "4.1.1", "dev": true, "license": "MIT", "engines": { - "node": ">=8" - }, + "node": ">= 6" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bl": { - "version": "4.1.0", - "dev": true, + "node_modules/concat-map": { + "version": "0.0.1", + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "engines": [ + "node >= 0.8" + ], "license": "MIT", "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "node_modules/blake-hash": { - "version": "2.0.0", - "hasInstallScript": true, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", "license": "MIT", "dependencies": { - "node-addon-api": "^3.0.0", - "node-gyp-build": "^4.2.2", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/blake2b": { - "version": "2.1.4", - "license": "ISC", - "dependencies": { - "blake2b-wasm": "^2.4.0", - "nanoassert": "^2.0.0" - } + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" }, - "node_modules/blake2b-wasm": { - "version": "2.4.0", + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", "license": "MIT", "dependencies": { - "b4a": "^1.0.1", - "nanoassert": "^2.0.0" + "safe-buffer": "~5.1.0" } }, - "node_modules/blakejs": { - "version": "1.2.1", - "license": "MIT" - }, - "node_modules/bluebird": { - "version": "3.7.2", + "node_modules/confusing-browser-globals": { + "version": "1.0.11", "license": "MIT" }, - "node_modules/bn.js": { - "version": "4.12.0", + "node_modules/consola": { + "version": "2.15.3", "license": "MIT" }, - "node_modules/body-parser": { - "version": "1.20.2", + "node_modules/content-disposition": { + "version": "0.5.4", "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "safe-buffer": "5.2.1" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">= 0.6" } }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", + "node_modules/content-type": { + "version": "1.0.5", "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">= 0.6" } }, - "node_modules/body-parser/node_modules/ms": { + "node_modules/convert-source-map": { "version": "2.0.0", "license": "MIT" }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", + "node_modules/cookie": { + "version": "0.5.0", "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/brorand": { - "version": "1.1.0", + "node_modules/cookie-signature": { + "version": "1.0.6", "license": "MIT" }, - "node_modules/browserify-aes": { - "version": "1.2.0", + "node_modules/cookiejar": { + "version": "2.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/core-js-compat": { + "version": "3.37.1", "license": "MIT", "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/browserslist": { - "version": "4.23.1", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/core-util-is": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.5", "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" - }, - "bin": { - "browserslist": "cli.js" + "object-assign": "^4", + "vary": "^1" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">= 0.10" } }, - "node_modules/bs-logger": { - "version": "0.2.6", - "dev": true, + "node_modules/cosmiconfig": { + "version": "7.1.0", "license": "MIT", "dependencies": { - "fast-json-stable-stringify": "2.x" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, "engines": { - "node": ">= 6" + "node": ">=10" } }, - "node_modules/bs58": { - "version": "4.0.1", + "node_modules/create-hash": { + "version": "1.2.0", "license": "MIT", "dependencies": { - "base-x": "^3.0.2" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "node_modules/bs58check": { - "version": "2.1.2", + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "license": "MIT", "dependencies": { - "bs58": "^4.0.0", + "cipher-base": "^1.0.3", "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/bson": { - "version": "6.8.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=16.20.1" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "license": "BSD-3-Clause" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "license": "MIT" - }, - "node_modules/buffer-reverse": { - "version": "1.0.1", - "license": "MIT" + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } }, - "node_modules/buffer-xor": { - "version": "1.0.3", + "node_modules/create-require": { + "version": "1.1.1", "license": "MIT" }, - "node_modules/busboy": { - "version": "1.6.0", + "node_modules/cron": { + "version": "2.4.3", + "license": "MIT", "dependencies": { - "streamsearch": "^1.1.0" + "@types/luxon": "~3.3.0", + "luxon": "~3.3.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=10.16.0" + "node": ">= 8" } }, - "node_modules/bytes": { - "version": "3.1.2", - "license": "MIT", + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "license": "BSD-3-Clause", + "peer": true, "engines": { - "node": ">= 0.8" + "node": "*" } }, - "node_modules/call-bind": { - "version": "1.0.7", + "node_modules/crypto-js": { + "version": "4.2.0", + "license": "MIT" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", + "call-bind": "^1.0.6", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "is-data-view": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -5931,542 +7862,580 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "dev": true, + "node_modules/data-view-byte-length": { + "version": "1.0.1", "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001639", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/canonicalize": { - "version": "2.0.0", - "license": "Apache-2.0" - }, - "node_modules/chalk": { - "version": "4.1.2", + "node_modules/data-view-byte-offset": { + "version": "1.0.0", "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/chardet": { - "version": "0.7.0", - "dev": true, - "license": "MIT" - }, - "node_modules/check-types": { - "version": "11.2.3", - "license": "MIT" + "node_modules/death": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", + "integrity": "sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==", + "peer": true }, - "node_modules/chokidar": { - "version": "3.5.3", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "node_modules/debug": { + "version": "4.3.5", "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "ms": "2.1.2" }, "engines": { - "node": ">= 8.10.0" + "node": ">=6.0" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "dev": true, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "license": "MIT", + "peer": true, "engines": { - "node": ">=6.0" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/circom_runtime": { - "version": "0.1.22", - "license": "Apache-2.0", - "dependencies": { - "ffjavascript": "0.2.57" + "node": ">=10" }, - "bin": { - "calcwit": "calcwit.js" - } - }, - "node_modules/circom_runtime/node_modules/ffjavascript": { - "version": "0.2.57", - "license": "GPL-3.0", - "dependencies": { - "wasmbuilder": "0.0.16", - "wasmcurves": "0.2.0", - "web-worker": "^1.2.0" - } - }, - "node_modules/circom_runtime/node_modules/wasmcurves": { - "version": "0.2.0", - "license": "GPL-3.0", - "dependencies": { - "wasmbuilder": "0.0.16" - } - }, - "node_modules/circomlib": { - "version": "2.0.5", - "license": "GPL-3.0" - }, - "node_modules/circomlibjs": { - "version": "0.1.7", - "license": "GPL-3.0", - "dependencies": { - "blake-hash": "^2.0.0", - "blake2b": "^2.1.3", - "ethers": "^5.5.1", - "ffjavascript": "^0.2.45" - } - }, - "node_modules/circomlibjs/node_modules/ethers": { - "version": "5.7.2", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cjs-module-lexer": { - "version": "1.3.1", + "node_modules/dedent": { + "version": "0.7.0", "dev": true, "license": "MIT" }, - "node_modules/class-transformer": { - "version": "0.5.1", - "license": "MIT" - }, - "node_modules/class-validator": { - "version": "0.13.2", + "node_modules/deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", "license": "MIT", + "peer": true, "dependencies": { - "libphonenumber-js": "^1.9.43", - "validator": "^13.7.0" + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "dev": true, + "node_modules/deep-equal": { + "version": "2.2.3", "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cli-spinners": { - "version": "2.9.2", + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-table3": { - "version": "0.6.3", - "dev": true, + "node_modules/define-data-property": { + "version": "1.1.4", "license": "MIT", "dependencies": { - "string-width": "^4.2.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { - "node": "10.* || >= 12.*" + "node": ">= 0.4" }, - "optionalDependencies": { - "@colors/colors": "1.5.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cli-width": { - "version": "3.0.0", - "dev": true, - "license": "ISC", + "node_modules/define-properties": { + "version": "1.2.1", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, "engines": { - "node": ">= 10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cliui": { - "version": "8.0.1", + "node_modules/delayed-stream": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/clone": { + "node_modules/dezalgo": { "version": "1.0.4", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/did-jwt": { + "version": "6.11.6", + "license": "Apache-2.0", + "dependencies": { + "@stablelib/ed25519": "^1.0.2", + "@stablelib/random": "^1.0.1", + "@stablelib/sha256": "^1.0.1", + "@stablelib/x25519": "^1.0.2", + "@stablelib/xchacha20poly1305": "^1.0.1", + "bech32": "^2.0.0", + "canonicalize": "^2.0.0", + "did-resolver": "^4.0.0", + "elliptic": "^6.5.4", + "js-sha3": "^0.8.0", + "multiformats": "^9.6.5", + "uint8arrays": "^3.0.0" + } + }, + "node_modules/did-resolver": { + "version": "4.1.0", + "license": "Apache-2.0" + }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "license": "BSD-3-Clause", + "peer": true, "engines": { - "node": ">=0.8" + "node": ">=0.3.1" } }, - "node_modules/co": { - "version": "4.6.0", + "node_modules/diff-sequences": { + "version": "28.1.1", "dev": true, "license": "MIT", "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "dev": true, - "license": "MIT" + "node_modules/difflib": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", + "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", + "peer": true, + "dependencies": { + "heap": ">= 0.2.0" + }, + "engines": { + "node": "*" + } }, - "node_modules/color-convert": { - "version": "2.0.1", + "node_modules/dir-glob": { + "version": "3.0.1", "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "path-type": "^4.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/color-name": { - "version": "1.1.4", + "node_modules/doctrine": { + "version": "3.0.0", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ed2curve": { + "version": "0.3.0", + "license": "Unlicense", + "dependencies": { + "tweetnacl": "1.x.x" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", "license": "MIT" }, - "node_modules/colors": { - "version": "1.4.0", - "license": "MIT", + "node_modules/ejs": { + "version": "3.1.10", + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, "engines": { - "node": ">=0.1.90" + "node": ">=0.10.0" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "dev": true, + "node_modules/electron-to-chromium": { + "version": "1.4.815", + "license": "ISC" + }, + "node_modules/elliptic": { + "version": "6.5.5", "license": "MIT", "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/commander": { - "version": "4.1.1", + "node_modules/emittery": { + "version": "0.10.2", "dev": true, "license": "MIT", "engines": { - "node": ">= 6" - } - }, - "node_modules/component-emitter": { - "version": "1.3.1", - "dev": true, - "license": "MIT", + "node": ">=12" + }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/concat-map": { - "version": "0.0.1", + "node_modules/emoji-regex": { + "version": "9.2.2", "license": "MIT" }, - "node_modules/concat-stream": { - "version": "1.6.2", - "engines": [ - "node >= 0.8" - ], + "node_modules/encodeurl": { + "version": "1.0.2", "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "engines": { + "node": ">= 0.8" } }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", + "node_modules/end-of-stream": { + "version": "1.4.4", + "dev": true, "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "once": "^1.4.0" } }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", + "node_modules/enhanced-resolve": { + "version": "5.17.0", + "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" } }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "license": "MIT" - }, - "node_modules/consola": { - "version": "2.15.3", - "license": "MIT" - }, - "node_modules/content-disposition": { - "version": "0.5.4", + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "license": "MIT", + "peer": true, "dependencies": { - "safe-buffer": "5.2.1" + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">=8.6" } }, - "node_modules/content-type": { - "version": "1.0.5", + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "license": "MIT", + "peer": true, "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.5.0", + "node_modules/error-ex": { + "version": "1.3.2", "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "is-arrayish": "^0.2.1" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/cookiejar": { - "version": "2.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/core-js-compat": { - "version": "3.37.1", + "node_modules/es-abstract": { + "version": "1.23.3", "license": "MIT", "dependencies": { - "browserslist": "^4.23.0" + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/cors": { - "version": "2.8.5", + "node_modules/es-define-property": { + "version": "1.0.0", "license": "MIT", "dependencies": { - "object-assign": "^4", - "vary": "^1" + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">= 0.10" + "node": ">= 0.4" } }, - "node_modules/cosmiconfig": { - "version": "7.1.0", + "node_modules/es-errors": { + "version": "1.3.0", "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, "engines": { - "node": ">=10" + "node": ">= 0.4" } }, - "node_modules/create-hash": { - "version": "1.2.0", + "node_modules/es-get-iterator": { + "version": "1.1.3", "license": "MIT", "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/create-hmac": { - "version": "1.1.7", + "node_modules/es-iterator-helpers": { + "version": "1.0.19", "license": "MIT", "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/create-require": { - "version": "1.1.1", + "node_modules/es-module-lexer": { + "version": "1.5.4", "dev": true, "license": "MIT" }, - "node_modules/cron": { - "version": "2.4.3", + "node_modules/es-object-atoms": { + "version": "1.0.0", "license": "MIT", "dependencies": { - "@types/luxon": "~3.3.0", - "luxon": "~3.3.0" + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", + "node_modules/es-set-tostringtag": { + "version": "2.0.3", "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { - "node": ">= 8" + "node": ">= 0.4" } }, - "node_modules/crypto-js": { - "version": "4.2.0", - "license": "MIT" - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "license": "BSD-2-Clause" + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } }, - "node_modules/data-view-buffer": { - "version": "1.0.1", + "node_modules/es-to-primitive": { + "version": "1.2.1", "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6475,1624 +8444,1966 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", + "node_modules/escalade": { + "version": "3.1.2", "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, "engines": { - "node": ">= 0.4" + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "license": "MIT", + "node_modules/escodegen": { + "version": "1.14.3", + "license": "BSD-2-Clause", "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": ">= 0.4" + "node": ">=4.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "node_modules/debug": { - "version": "4.3.5", + "node_modules/escodegen/node_modules/esprima": { + "version": "4.0.1", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "4.3.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", "license": "MIT", "dependencies": { - "ms": "2.1.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" }, "engines": { - "node": ">=6.0" + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/dedent": { - "version": "0.7.0", - "dev": true, - "license": "MIT" + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "engines": { + "node": ">= 0.8.0" + } }, - "node_modules/deep-equal": { - "version": "2.2.3", + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" + "prelude-ls": "~1.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/eslint" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", + "node_modules/eslint-config-prettier": { + "version": "8.10.0", "dev": true, "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" } }, - "node_modules/defaults": { - "version": "1.0.4", - "dev": true, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", "license": "MIT", "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/define-data-property": { - "version": "1.1.4", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "ms": "^2.1.1" } }, - "node_modules/define-properties": { - "version": "1.2.1", + "node_modules/eslint-module-utils": { + "version": "2.8.1", "license": "MIT", "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "debug": "^3.2.7" }, "engines": { - "node": ">= 0.4" + "node": ">=4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "dev": true, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", "license": "MIT", - "engines": { - "node": ">=0.4.0" + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/depd": { - "version": "2.0.0", - "license": "MIT", + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "license": "BSD-3-Clause", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, "engines": { - "node": ">= 0.8" + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" } }, - "node_modules/destroy": { - "version": "1.2.0", + "node_modules/eslint-plugin-import": { + "version": "2.29.1", "license": "MIT", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/detect-newline": { - "version": "3.1.0", - "dev": true, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/dezalgo": { - "version": "1.0.4", - "dev": true, - "license": "ISC", "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" + "ms": "^2.1.1" } }, - "node_modules/did-jwt": { - "version": "6.11.6", + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", "license": "Apache-2.0", "dependencies": { - "@stablelib/ed25519": "^1.0.2", - "@stablelib/random": "^1.0.1", - "@stablelib/sha256": "^1.0.1", - "@stablelib/x25519": "^1.0.2", - "@stablelib/xchacha20poly1305": "^1.0.1", - "bech32": "^2.0.0", - "canonicalize": "^2.0.0", - "did-resolver": "^4.0.0", - "elliptic": "^6.5.4", - "js-sha3": "^0.8.0", - "multiformats": "^9.6.5", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/did-resolver": { - "version": "4.1.0", - "license": "Apache-2.0" - }, - "node_modules/diff-sequences": { - "version": "28.1.1", - "dev": true, - "license": "MIT", + "esutils": "^2.0.2" + }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": ">=0.10.0" } }, - "node_modules/dir-glob": { - "version": "3.0.1", + "node_modules/eslint-plugin-import/node_modules/json5": { + "version": "1.0.2", "license": "MIT", "dependencies": { - "path-type": "^4.0.0" + "minimist": "^1.2.0" }, - "engines": { - "node": ">=8" + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/dotenv": { - "version": "16.4.5", - "license": "BSD-2-Clause", + "node_modules/eslint-plugin-import/node_modules/strip-bom": { + "version": "3.0.0", + "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" + "node": ">=4" } }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "license": "Apache-2.0", + "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": { + "version": "3.15.0", + "license": "MIT", "dependencies": { - "safe-buffer": "^5.0.1" + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" } }, - "node_modules/ed2curve": { - "version": "0.3.0", - "license": "Unlicense", + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "license": "MIT", "dependencies": { - "tweetnacl": "1.x.x" + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } } }, - "node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/ejs": { - "version": "3.1.10", - "license": "Apache-2.0", + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.9.0", + "license": "MIT", "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" + "aria-query": "~5.1.3", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.9.1", + "axobject-query": "~3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "es-iterator-helpers": "^1.0.19", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/electron-to-chromium": { - "version": "1.4.815", - "license": "ISC" - }, - "node_modules/elliptic": { - "version": "6.5.5", + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "dev": true, "license": "MIT", "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/emittery": { - "version": "0.10.2", - "dev": true, + "node_modules/eslint-plugin-react": { + "version": "7.34.3", "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.hasown": "^1.1.4", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11" + }, "engines": { - "node": ">=12" + "node": ">=4" }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "1.0.2", + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "dev": true, - "license": "MIT", + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "license": "Apache-2.0", "dependencies": { - "once": "^1.4.0" + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/enhanced-resolve": { - "version": "5.17.0", - "dev": true, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">=10.13.0" + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/es-abstract": { - "version": "1.23.3", + "node_modules/eslint-plugin-testing-library": { + "version": "5.11.1", "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" + "@typescript-eslint/utils": "^5.58.0" }, "engines": { - "node": ">= 0.4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" } }, - "node_modules/es-define-property": { - "version": "1.0.0", - "license": "MIT", + "node_modules/eslint-scope": { + "version": "5.1.1", + "license": "BSD-2-Clause", "dependencies": { - "get-intrinsic": "^1.2.4" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8.0.0" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "license": "MIT", + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.4" + "node": ">=4.0" } }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/eslint" } }, - "node_modules/es-iterator-helpers": { - "version": "1.0.19", + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.1.2" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">= 0.4" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/es-module-lexer": { - "version": "1.5.4", - "dev": true, - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "license": "MIT", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "license": "BSD-2-Clause", "dependencies": { - "es-errors": "^1.3.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">= 0.4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "license": "MIT", + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "license": "ISC", "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 0.4" + "node": ">=10.13.0" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - } + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT" }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "license": "MIT", + "node_modules/espree": { + "version": "9.6.1", + "license": "BSD-2-Clause", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">= 0.4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/eslint" } }, - "node_modules/escalade": { - "version": "3.1.2", - "license": "MIT", + "node_modules/esprima": { + "version": "1.2.2", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, "engines": { - "node": ">=6" + "node": ">=0.4.0" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=10" + "node_modules/esquery": { + "version": "1.5.0", + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=0.10" } }, - "node_modules/escodegen": { - "version": "1.14.3", + "node_modules/esrecurse": { + "version": "4.3.0", "license": "BSD-2-Clause", "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "estraverse": "^5.2.0" }, "engines": { "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" } }, - "node_modules/escodegen/node_modules/esprima": { - "version": "4.0.1", + "node_modules/estraverse": { + "version": "5.3.0", "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, "engines": { - "node": ">=4" + "node": ">=4.0" } }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "4.3.0", + "node_modules/esutils": { + "version": "2.0.3", "license": "BSD-2-Clause", "engines": { - "node": ">=4.0" + "node": ">=0.10.0" } }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", + "node_modules/etag": { + "version": "1.8.1", "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.6" } }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", + "node_modules/eth-gas-reporter": { + "version": "0.2.27", + "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz", + "integrity": "sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==", "license": "MIT", + "peer": true, "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "@solidity-parser/parser": "^0.14.0", + "axios": "^1.5.1", + "cli-table3": "^0.5.0", + "colors": "1.4.0", + "ethereum-cryptography": "^1.0.3", + "ethers": "^5.7.2", + "fs-readdir-recursive": "^1.1.0", + "lodash": "^4.17.14", + "markdown-table": "^1.1.3", + "mocha": "^10.2.0", + "req-cwd": "^2.0.0", + "sha1": "^1.1.1", + "sync-request": "^6.0.0" }, - "engines": { - "node": ">= 0.8.0" + "peerDependencies": { + "@codechecks/client": "^0.1.0" + }, + "peerDependenciesMeta": { + "@codechecks/client": { + "optional": true + } } }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "engines": { - "node": ">= 0.8.0" + "node_modules/eth-gas-reporter/node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "peer": true + }, + "node_modules/eth-gas-reporter/node_modules/@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" } }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "optional": true, + "node_modules/eth-gas-reporter/node_modules/@scure/bip39": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "license": "MIT", + "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", + "node_modules/eth-gas-reporter/node_modules/cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", "license": "MIT", + "peer": true, "dependencies": { - "prelude-ls": "~1.1.2" + "object-assign": "^4.1.0", + "string-width": "^2.1.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">=6" + }, + "optionalDependencies": { + "colors": "^1.1.2" } }, - "node_modules/eslint": { - "version": "8.57.0", + "node_modules/eth-gas-reporter/node_modules/ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", "license": "MIT", + "peer": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" + } + }, + "node_modules/eth-gas-reporter/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "license": "MIT", + "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=4" } }, - "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "dev": true, + "node_modules/eth-gas-reporter/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" + "peer": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, - "peerDependencies": { - "eslint": ">=7.0.0" + "engines": { + "node": ">=4" } }, - "node_modules/eslint-config-react-app": { - "version": "7.0.1", + "node_modules/eth-gas-reporter/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "license": "MIT", + "peer": true, "dependencies": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" + "ansi-regex": "^3.0.0" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "eslint": "^8.0.0" + "node": ">=4" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", + "node_modules/ethereum-bloom-filters": { + "version": "1.1.0", "license": "MIT", "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" + "@noble/hashes": "^1.4.0" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", + "node_modules/ethereum-cryptography": { + "version": "2.2.0", "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "@noble/curves": "1.4.0", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" } }, - "node_modules/eslint-module-utils": { - "version": "2.8.1", + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", "license": "MIT", + "peer": true, "dependencies": { - "debug": "^3.2.7" + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-abi/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ethereumjs-abi/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "license": "MPL-2.0", + "peer": true, + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "license": "MPL-2.0", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" }, "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "node": ">=10.0.0" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", + "node_modules/ethereumjs-util/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "license": "MIT" + }, + "node_modules/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/eslint-plugin-flowtype": { - "version": "8.0.3", - "license": "BSD-3-Clause", + "node_modules/ethers": { + "version": "6.13.1", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.17.1" }, "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@babel/plugin-syntax-flow": "^7.14.5", - "@babel/plugin-transform-react-jsx": "^7.14.9", - "eslint": "^8.1.0" + "node": ">=14.0.0" } }, - "node_modules/eslint-plugin-import": { - "version": "2.29.1", + "node_modules/ethers/node_modules/@noble/curves": { + "version": "1.2.0", "license": "MIT", "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" + "@noble/hashes": "1.3.2" }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.3.2", + "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 16" }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", + "node_modules/ethers/node_modules/@types/node": { + "version": "18.15.13", + "license": "MIT" + }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.4.0", + "license": "0BSD" + }, + "node_modules/ethjs-unit": { + "version": "0.1.6", + "license": "MIT", + "dependencies": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "license": "MIT" + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", "license": "MIT", + "peer": true, + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethr-did": { + "version": "3.0.21", + "license": "Apache-2.0", "dependencies": { - "ms": "^2.1.1" + "did-jwt": "^8.0.0", + "did-resolver": "^4.1.0", + "ethers": "^6.8.1", + "ethr-did-resolver": "10.1.5" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", + "node_modules/ethr-did-resolver": { + "version": "10.1.9", "license": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" + "did-resolver": "^4.1.0", + "ethers": "^6.8.1" } }, - "node_modules/eslint-plugin-import/node_modules/json5": { - "version": "1.0.2", - "license": "MIT", + "node_modules/ethr-did/node_modules/did-jwt": { + "version": "8.0.4", + "license": "Apache-2.0", "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" + "@noble/ciphers": "^0.5.0", + "@noble/curves": "^1.0.0", + "@noble/hashes": "^1.3.0", + "@scure/base": "^1.1.3", + "canonicalize": "^2.0.0", + "did-resolver": "^4.1.0", + "multibase": "^4.0.6", + "multiformats": "^9.6.2", + "uint8arrays": "3.1.1" } }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/ethr-did/node_modules/ethr-did-resolver": { + "version": "10.1.5", + "license": "Apache-2.0", + "dependencies": { + "did-resolver": "^4.1.0", + "ethers": "^6.8.1" } }, - "node_modules/eslint-plugin-import/node_modules/strip-bom": { - "version": "3.0.0", + "node_modules/events": { + "version": "3.3.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.8.x" } }, - "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": { - "version": "3.15.0", + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "license": "MIT", "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "node_modules/eslint-plugin-jest": { - "version": "25.7.0", + "node_modules/ew-precise-proofs-js": { + "version": "1.2.0", "license": "MIT", "dependencies": { - "@typescript-eslint/experimental-utils": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } + "colors": "1.4.0", + "ethers": "5.0.7", + "treeify": "1.1.0", + "web3-utils": "1.7.1" } }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.9.0", + "node_modules/ew-precise-proofs-js/node_modules/ethers": { + "version": "5.0.7", "license": "MIT", "dependencies": { - "aria-query": "~5.1.3", - "array-includes": "^3.1.8", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "^4.9.1", - "axobject-query": "~3.1.1", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.19", - "hasown": "^2.0.2", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.0" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "@ethersproject/abi": "^5.0.0", + "@ethersproject/abstract-provider": "^5.0.0", + "@ethersproject/abstract-signer": "^5.0.0", + "@ethersproject/address": "^5.0.0", + "@ethersproject/base64": "^5.0.0", + "@ethersproject/bignumber": "^5.0.0", + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/constants": "^5.0.0", + "@ethersproject/contracts": "^5.0.0", + "@ethersproject/hash": "^5.0.0", + "@ethersproject/hdnode": "^5.0.0", + "@ethersproject/json-wallets": "^5.0.0", + "@ethersproject/keccak256": "^5.0.0", + "@ethersproject/logger": "^5.0.0", + "@ethersproject/networks": "^5.0.0", + "@ethersproject/pbkdf2": "^5.0.0", + "@ethersproject/properties": "^5.0.0", + "@ethersproject/providers": "^5.0.0", + "@ethersproject/random": "^5.0.0", + "@ethersproject/rlp": "^5.0.0", + "@ethersproject/sha2": "^5.0.0", + "@ethersproject/signing-key": "^5.0.0", + "@ethersproject/solidity": "^5.0.0", + "@ethersproject/strings": "^5.0.0", + "@ethersproject/transactions": "^5.0.0", + "@ethersproject/units": "^5.0.0", + "@ethersproject/wallet": "^5.0.0", + "@ethersproject/web": "^5.0.0", + "@ethersproject/wordlists": "^5.0.0" } }, - "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", + "node_modules/execa": { + "version": "5.1.1", "dev": true, "license": "MIT", "dependencies": { - "prettier-linter-helpers": "^1.0.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" + "node": ">=10" }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/eslint-plugin-react": { - "version": "7.34.3", + "node_modules/exit": { + "version": "0.1.2", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "28.1.3", + "dev": true, "license": "MIT", "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.19", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.8", - "object.fromentries": "^2.0.8", - "object.hasown": "^1.1.4", - "object.values": "^1.2.0", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11" + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", + "node_modules/express": { + "version": "4.18.2", "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + "engines": { + "node": ">= 0.10.0" } }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "license": "Apache-2.0", + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "license": "MIT", "dependencies": { - "esutils": "^2.0.2" + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", + "node_modules/express/node_modules/debug": { + "version": "2.6.9", "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "ms": "2.0.0" } }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" }, - "node_modules/eslint-plugin-testing-library": { - "version": "5.11.1", + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "license": "MIT" + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^5.58.0" + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0", - "npm": ">=6" - }, - "peerDependencies": { - "eslint": "^7.5.0 || ^8.0.0" + "node": ">= 0.8" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "license": "BSD-2-Clause", + "node_modules/external-editor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" }, "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "license": "MIT" }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } + "node_modules/fast-diff": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0" }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", + "node_modules/fast-glob": { + "version": "3.3.2", "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=8.6.0" } }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "license": "MIT" }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", + "node_modules/fast-levenshtein": { + "version": "2.0.6", "license": "MIT" }, - "node_modules/espree": { - "version": "9.6.1", - "license": "BSD-2-Clause", + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "license": "MIT" + }, + "node_modules/fastfile": { + "version": "0.0.20", + "license": "GPL-3.0" + }, + "node_modules/fastq": { + "version": "1.17.1", + "license": "ISC", "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "reusify": "^1.0.4" } }, - "node_modules/esprima": { - "version": "1.2.2", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.4.0" + "node_modules/fb-watchman": { + "version": "2.0.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" } }, - "node_modules/esquery": { - "version": "1.5.0", - "license": "BSD-3-Clause", + "node_modules/ffjavascript": { + "version": "0.2.63", + "license": "GPL-3.0", "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" + "wasmbuilder": "0.0.16", + "wasmcurves": "0.2.2", + "web-worker": "1.2.0" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "license": "BSD-2-Clause", + "node_modules/figures": { + "version": "3.2.0", + "dev": true, + "license": "MIT", "dependencies": { - "estraverse": "^5.2.0" + "escape-string-regexp": "^1.0.5" }, "engines": { - "node": ">=4.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "license": "BSD-2-Clause", + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">=0.8.0" } }, - "node_modules/esutils": { - "version": "2.0.3", - "license": "BSD-2-Clause", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, "engines": { - "node": ">=0.10.0" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/etag": { - "version": "1.8.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" + "node_modules/filelist": { + "version": "1.0.4", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" } }, - "node_modules/ethereum-bloom-filters": { - "version": "1.1.0", + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", "license": "MIT", "dependencies": { - "@noble/hashes": "^1.4.0" + "balanced-match": "^1.0.0" } }, - "node_modules/ethereum-cryptography": { - "version": "2.2.0", - "license": "MIT", + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "license": "ISC", "dependencies": { - "@noble/curves": "1.4.0", - "@noble/hashes": "1.4.0", - "@scure/bip32": "1.4.0", - "@scure/bip39": "1.3.0" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, - "node_modules/ethers": { - "version": "6.13.1", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/ethers-io/" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/fill-range": { + "version": "7.1.1", "license": "MIT", "dependencies": { - "@adraffy/ens-normalize": "1.10.1", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@types/node": "18.15.13", - "aes-js": "4.0.0-beta.5", - "tslib": "2.4.0", - "ws": "8.17.1" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=8" } }, - "node_modules/ethers/node_modules/@noble/curves": { + "node_modules/finalhandler": { "version": "1.2.0", "license": "MIT", "dependencies": { - "@noble/hashes": "1.3.2" + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">= 0.8" } }, - "node_modules/ethers/node_modules/@noble/hashes": { - "version": "1.3.2", + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/ethers/node_modules/@types/node": { - "version": "18.15.13", + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", "license": "MIT" }, - "node_modules/ethers/node_modules/tslib": { - "version": "2.4.0", - "license": "0BSD" - }, - "node_modules/ethjs-unit": { - "version": "0.1.6", + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "license": "MIT", + "peer": true, "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" + "array-back": "^3.0.1" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=4.0.0" } }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "license": "MIT" - }, - "node_modules/ethr-did": { - "version": "3.0.21", - "license": "Apache-2.0", + "node_modules/find-up": { + "version": "5.0.0", + "license": "MIT", "dependencies": { - "did-jwt": "^8.0.0", - "did-resolver": "^4.1.0", - "ethers": "^6.8.1", - "ethr-did-resolver": "10.1.5" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ethr-did-resolver": { - "version": "10.1.9", - "license": "Apache-2.0", - "dependencies": { - "did-resolver": "^4.1.0", - "ethers": "^6.8.1" - } + "node_modules/fixed-merkle-tree": { + "version": "0.7.3", + "license": "ISC" }, - "node_modules/ethr-did/node_modules/did-jwt": { - "version": "8.0.4", - "license": "Apache-2.0", - "dependencies": { - "@noble/ciphers": "^0.5.0", - "@noble/curves": "^1.0.0", - "@noble/hashes": "^1.3.0", - "@scure/base": "^1.1.3", - "canonicalize": "^2.0.0", - "did-resolver": "^4.1.0", - "multibase": "^4.0.6", - "multiformats": "^9.6.2", - "uint8arrays": "3.1.1" + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", + "peer": true, + "bin": { + "flat": "cli.js" } }, - "node_modules/ethr-did/node_modules/ethr-did-resolver": { - "version": "10.1.5", - "license": "Apache-2.0", + "node_modules/flat-cache": { + "version": "3.2.0", + "license": "MIT", "dependencies": { - "did-resolver": "^4.1.0", - "ethers": "^6.8.1" + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/events": { - "version": "3.3.0", - "dev": true, + "node_modules/flatted": { + "version": "3.3.1", + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "license": "MIT", + "peer": true, "engines": { - "node": ">=0.8.x" + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", + "node_modules/for-each": { + "version": "0.3.3", "license": "MIT", "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "is-callable": "^1.1.3" } }, - "node_modules/ew-precise-proofs-js": { - "version": "1.2.0", + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "8.0.0", + "dev": true, "license": "MIT", "dependencies": { - "colors": "1.4.0", - "ethers": "5.0.7", - "treeify": "1.1.0", - "web3-utils": "1.7.1" + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">=12.13.0", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "typescript": ">3.6.0", + "webpack": "^5.11.0" } }, - "node_modules/ew-precise-proofs-js/node_modules/ethers": { - "version": "5.0.7", + "node_modules/form-data": { + "version": "4.0.0", "license": "MIT", "dependencies": { - "@ethersproject/abi": "^5.0.0", - "@ethersproject/abstract-provider": "^5.0.0", - "@ethersproject/abstract-signer": "^5.0.0", - "@ethersproject/address": "^5.0.0", - "@ethersproject/base64": "^5.0.0", - "@ethersproject/bignumber": "^5.0.0", - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/constants": "^5.0.0", - "@ethersproject/contracts": "^5.0.0", - "@ethersproject/hash": "^5.0.0", - "@ethersproject/hdnode": "^5.0.0", - "@ethersproject/json-wallets": "^5.0.0", - "@ethersproject/keccak256": "^5.0.0", - "@ethersproject/logger": "^5.0.0", - "@ethersproject/networks": "^5.0.0", - "@ethersproject/pbkdf2": "^5.0.0", - "@ethersproject/properties": "^5.0.0", - "@ethersproject/providers": "^5.0.0", - "@ethersproject/random": "^5.0.0", - "@ethersproject/rlp": "^5.0.0", - "@ethersproject/sha2": "^5.0.0", - "@ethersproject/signing-key": "^5.0.0", - "@ethersproject/solidity": "^5.0.0", - "@ethersproject/strings": "^5.0.0", - "@ethersproject/transactions": "^5.0.0", - "@ethersproject/units": "^5.0.0", - "@ethersproject/wallet": "^5.0.0", - "@ethersproject/web": "^5.0.0", - "@ethersproject/wordlists": "^5.0.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/execa": { - "version": "5.1.1", + "node_modules/formidable": { + "version": "2.1.2", "dev": true, "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "node_modules/exit": { - "version": "0.1.2", - "dev": true, + "node_modules/fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "license": "MIT", + "peer": true + }, + "node_modules/fresh": { + "version": "0.5.2", + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">= 0.6" } }, - "node_modules/expect": { - "version": "28.1.3", - "dev": true, + "node_modules/fs-extra": { + "version": "10.1.0", "license": "MIT", "dependencies": { - "@jest/expect-utils": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": ">=12" } }, - "node_modules/express": { - "version": "4.18.2", + "node_modules/fs-monkey": { + "version": "1.0.6", + "dev": true, + "license": "Unlicense" + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, + "peer": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 0.10.0" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", + "node_modules/function-bind": { + "version": "1.1.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", + "node_modules/functions-have-names": { + "version": "1.2.3", "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "license": "MIT" + "node_modules/get-caller-file": { + "version": "2.0.5", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/external-editor": { - "version": "3.1.0", + "node_modules/get-package-type": { + "version": "0.1.0", "dev": true, "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, "engines": { - "node": ">=4" + "node": ">=8.0.0" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } }, - "node_modules/fast-diff": { - "version": "1.3.0", + "node_modules/get-stream": { + "version": "6.0.1", "dev": true, - "license": "Apache-2.0" + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/fast-glob": { - "version": "3.3.2", + "node_modules/get-symbol-description": { + "version": "1.0.2", "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">=8.6.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "license": "MIT" - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "license": "MIT" - }, - "node_modules/fastfile": { - "version": "0.0.20", - "license": "GPL-3.0" - }, - "node_modules/fastq": { - "version": "1.17.1", + "node_modules/ghost-testrpc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", + "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", "license": "ISC", + "peer": true, "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" + "chalk": "^2.4.2", + "node-emoji": "^1.10.0" + }, + "bin": { + "testrpc-sc": "index.js" } }, - "node_modules/ffjavascript": { - "version": "0.2.63", - "license": "GPL-3.0", + "node_modules/ghost-testrpc/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "peer": true, "dependencies": { - "wasmbuilder": "0.0.16", - "wasmcurves": "0.2.2", - "web-worker": "1.2.0" + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/figures": { - "version": "3.2.0", - "dev": true, + "node_modules/ghost-testrpc/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "license": "MIT", + "peer": true, "dependencies": { - "escape-string-regexp": "^1.0.5" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/figures/node_modules/escape-string-regexp": { + "node_modules/ghost-testrpc/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/ghost-testrpc/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT", + "peer": true + }, + "node_modules/ghost-testrpc/node_modules/escape-string-regexp": { "version": "1.0.5", - "dev": true, + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.8.0" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", + "node_modules/ghost-testrpc/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, + "peer": true, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=4" } }, - "node_modules/filelist": { - "version": "1.0.4", - "license": "Apache-2.0", + "node_modules/ghost-testrpc/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "peer": true, "dependencies": { - "minimatch": "^5.0.1" + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "license": "MIT", + "node_modules/glob": { + "version": "7.2.0", + "license": "ISC", "dependencies": { - "balanced-match": "^1.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", + "node_modules/glob-parent": { + "version": "5.1.2", "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/fill-range": { - "version": "7.1.1", + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "license": "MIT", + "peer": true, "dependencies": { - "to-regex-range": "^5.0.1" + "global-prefix": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/finalhandler": { - "version": "1.2.0", + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "license": "MIT", + "peer": true, "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" }, "engines": { - "node": ">= 0.8" + "node": ">=6" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.24.0", "license": "MIT", "dependencies": { - "ms": "2.0.0" + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" + "node_modules/globalthis": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/find-up": { - "version": "5.0.0", + "node_modules/globby": { + "version": "11.1.0", "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { "node": ">=10" @@ -8101,328 +10412,440 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fixed-merkle-tree": { - "version": "0.7.3", + "node_modules/gopd": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", "license": "ISC" }, - "node_modules/flat-cache": { - "version": "3.2.0", + "node_modules/graphemer": { + "version": "1.4.0", + "license": "MIT" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "license": "MIT", + "peer": true, "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/flatted": { - "version": "3.3.1", - "license": "ISC" + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/for-each": { - "version": "0.3.3", + "node_modules/hardhat": { + "version": "2.22.6", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.6.tgz", + "integrity": "sha512-abFEnd9QACwEtSvZZGSmzvw7N3zhQN1cDKz5SLHAupfG24qTHofCjqvD5kT5Wwsq5XOL0ON1Mq5rr4v0XX5ciw==", "license": "MIT", + "peer": true, "dependencies": { - "is-callable": "^1.1.3" + "@ethersproject/abi": "^5.1.2", + "@metamask/eth-sig-util": "^4.0.0", + "@nomicfoundation/edr": "^0.4.1", + "@nomicfoundation/ethereumjs-common": "4.0.4", + "@nomicfoundation/ethereumjs-tx": "5.0.4", + "@nomicfoundation/ethereumjs-util": "9.0.4", + "@nomicfoundation/solidity-analyzer": "^0.1.0", + "@sentry/node": "^5.18.1", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "^5.1.0", + "adm-zip": "^0.4.16", + "aggregate-error": "^3.0.0", + "ansi-escapes": "^4.3.0", + "boxen": "^5.1.2", + "chalk": "^2.4.2", + "chokidar": "^3.4.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "ethereum-cryptography": "^1.0.3", + "ethereumjs-abi": "^0.6.8", + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "7.2.0", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "keccak": "^3.0.2", + "lodash": "^4.17.11", + "mnemonist": "^0.38.0", + "mocha": "^10.0.0", + "p-map": "^4.0.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "solc": "0.8.26", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "tsort": "0.0.1", + "undici": "^5.14.0", + "uuid": "^8.3.2", + "ws": "^7.4.6" + }, + "bin": { + "hardhat": "internal/cli/bootstrap.js" + }, + "peerDependencies": { + "ts-node": "*", + "typescript": "*" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + }, + "typescript": { + "optional": true + } } }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "8.0.0", - "dev": true, + "node_modules/hardhat-gas-reporter": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz", + "integrity": "sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==", "license": "MIT", + "peer": true, "dependencies": { - "@babel/code-frame": "^7.16.7", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "cosmiconfig": "^7.0.1", - "deepmerge": "^4.2.2", - "fs-extra": "^10.0.0", - "memfs": "^3.4.1", - "minimatch": "^3.0.4", - "node-abort-controller": "^3.0.1", - "schema-utils": "^3.1.1", - "semver": "^7.3.5", - "tapable": "^2.2.1" - }, - "engines": { - "node": ">=12.13.0", - "yarn": ">=1.0.0" + "array-uniq": "1.0.3", + "eth-gas-reporter": "^0.2.25", + "sha1": "^1.1.1" }, "peerDependencies": { - "typescript": ">3.6.0", - "webpack": "^5.11.0" + "hardhat": "^2.0.2" + } + }, + "node_modules/hardhat/node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "peer": true + }, + "node_modules/hardhat/node_modules/@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/hardhat/node_modules/@scure/bip39": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" } }, - "node_modules/form-data": { - "version": "4.0.0", - "dev": true, + "node_modules/hardhat/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "license": "MIT", + "peer": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "color-convert": "^1.9.0" }, "engines": { - "node": ">= 6" + "node": ">=4" } }, - "node_modules/formidable": { - "version": "2.1.2", - "dev": true, + "node_modules/hardhat/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "license": "MIT", + "peer": true, "dependencies": { - "dezalgo": "^1.0.4", - "hexoid": "^1.0.0", - "once": "^1.4.0", - "qs": "^6.11.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" + "engines": { + "node": ">=4" } }, - "node_modules/forwarded": { - "version": "0.2.0", + "node_modules/hardhat/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "license": "MIT", - "engines": { - "node": ">= 0.6" + "peer": true, + "dependencies": { + "color-name": "1.1.3" } }, - "node_modules/fresh": { - "version": "0.5.2", + "node_modules/hardhat/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT", + "peer": true + }, + "node_modules/hardhat/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "license": "MIT", + "peer": true, "engines": { - "node": ">= 0.6" + "node": ">=0.8.0" } }, - "node_modules/fs-extra": { - "version": "10.1.0", - "dev": true, + "node_modules/hardhat/node_modules/ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", "license": "MIT", + "peer": true, "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" } }, - "node_modules/fs-monkey": { - "version": "1.0.6", - "dev": true, - "license": "Unlicense" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "dev": true, + "node_modules/hardhat/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "peer": true, + "dependencies": { + "locate-path": "^2.0.0" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=4" } }, - "node_modules/function-bind": { - "version": "1.1.2", + "node_modules/hardhat/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peer": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", + "node_modules/hardhat/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, + "peer": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", + "node_modules/hardhat/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peer": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", + "node_modules/hardhat/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "license": "MIT", + "peer": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, "engines": { - "node": ">=6.9.0" + "node": ">=4" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "dev": true, - "license": "ISC", + "node_modules/hardhat/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "p-try": "^1.0.0" + }, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=4" } }, - "node_modules/get-intrinsic": { - "version": "1.2.4", + "node_modules/hardhat/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "license": "MIT", + "peer": true, "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "p-limit": "^1.1.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, + "node_modules/hardhat/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", "license": "MIT", + "peer": true, "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "dev": true, + "node_modules/hardhat/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "license": "MIT", + "peer": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/get-symbol-description": { - "version": "1.0.2", + "node_modules/hardhat/node_modules/resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "license": "MIT", + "peer": true, "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" + "path-parse": "^1.0.6" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob": { - "version": "7.2.0", + "node_modules/hardhat/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peer": true, + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "license": "ISC", + "node_modules/hardhat/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "peer": true, "dependencies": { - "is-glob": "^4.0.1" + "has-flag": "^3.0.0" }, "engines": { - "node": ">= 6" + "node": ">=4" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/globals": { - "version": "13.24.0", + "node_modules/hardhat/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, + "peer": true, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 4.0.0" } }, - "node_modules/globalthis": { - "version": "1.0.4", + "node_modules/hardhat/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/globby": { - "version": "11.1.0", + "node_modules/hardhat/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, + "peer": true, "engines": { - "node": ">=10" + "node": ">=8.3.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "license": "MIT" - }, "node_modules/has-bigints": { "version": "1.0.2", "license": "MIT", @@ -8510,6 +10933,23 @@ "node": ">= 0.4" } }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "peer": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", + "license": "MIT", + "peer": true + }, "node_modules/hexoid": { "version": "1.0.0", "dev": true, @@ -8539,6 +10979,22 @@ "dev": true, "license": "MIT" }, + "node_modules/http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "license": "MIT", + "peer": true, + "dependencies": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/http-errors": { "version": "2.0.0", "license": "MIT", @@ -8553,6 +11009,37 @@ "node": ">= 0.8" } }, + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/http-response-object/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "license": "MIT", + "peer": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "peer": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/human-signals": { "version": "2.1.0", "dev": true, @@ -8597,6 +11084,24 @@ "node": ">= 4" } }, + "node_modules/immer": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.2.tgz", + "integrity": "sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==", + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "license": "MIT", + "peer": true + }, "node_modules/import-fresh": { "version": "3.3.0", "license": "MIT", @@ -8636,6 +11141,16 @@ "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/inflight": { "version": "1.0.6", "license": "ISC", @@ -8648,6 +11163,13 @@ "version": "2.0.4", "license": "ISC" }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC", + "peer": true + }, "node_modules/inquirer": { "version": "8.2.5", "dev": true, @@ -8695,12 +11217,21 @@ }, "node_modules/interpret": { "version": "1.4.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.10" } }, + "node_modules/io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "license": "MIT", + "peer": true, + "dependencies": { + "fp-ts": "^1.0.0" + } + }, "node_modules/ipaddr.js": { "version": "1.9.1", "license": "MIT", @@ -8765,7 +11296,6 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", - "dev": true, "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" @@ -8856,7 +11386,6 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -8956,6 +11485,16 @@ "node": ">=8" } }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-regex": { "version": "1.1.4", "license": "MIT", @@ -9045,7 +11584,6 @@ }, "node_modules/is-unicode-supported": { "version": "0.1.0", - "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -9825,13 +12363,19 @@ }, "node_modules/json-schema-traverse": { "version": "1.0.0", - "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "license": "MIT" }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC", + "peer": true + }, "node_modules/json5": { "version": "2.2.3", "license": "MIT", @@ -9849,7 +12393,6 @@ }, "node_modules/jsonfile": { "version": "6.1.0", - "dev": true, "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -9867,6 +12410,16 @@ "underscore": "1.12.1" } }, + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, "node_modules/jsonwebtoken": { "version": "8.5.1", "license": "MIT", @@ -9948,9 +12501,18 @@ "json-buffer": "3.0.1" } }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/kleur": { "version": "3.0.3", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -10022,6 +12584,20 @@ "version": "4.17.21", "license": "MIT" }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT", + "peer": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "license": "MIT", + "peer": true + }, "node_modules/lodash.debounce": { "version": "4.0.8", "license": "MIT" @@ -10034,6 +12610,13 @@ "version": "3.0.3", "license": "MIT" }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "license": "MIT", + "peer": true + }, "node_modules/lodash.isinteger": { "version": "4.0.4", "license": "MIT" @@ -10063,9 +12646,15 @@ "version": "4.1.1", "license": "MIT" }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "license": "MIT", + "peer": true + }, "node_modules/log-symbols": { "version": "4.1.0", - "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.0", @@ -10092,6 +12681,23 @@ "loose-envify": "cli.js" } }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "license": "MIT", + "peer": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "license": "MIT", + "peer": true + }, "node_modules/lru-cache": { "version": "5.1.1", "license": "ISC", @@ -10144,7 +12750,6 @@ }, "node_modules/make-error": { "version": "1.3.6", - "dev": true, "license": "ISC" }, "node_modules/makeerror": { @@ -10155,6 +12760,13 @@ "tmpl": "1.0.5" } }, + "node_modules/markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "license": "MIT", + "peer": true + }, "node_modules/md5.js": { "version": "1.3.5", "license": "MIT", @@ -10182,6 +12794,15 @@ "node": ">= 4.0.0" } }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "peer": true, + "engines": { + "node": ">= 0.10.0" + } + }, "node_modules/merge-descriptors": { "version": "1.0.1", "license": "MIT" @@ -10312,6 +12933,160 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mnemonist": { + "version": "0.38.5", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", + "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "license": "MIT", + "peer": true, + "dependencies": { + "obliterator": "^2.0.0" + } + }, + "node_modules/mocha": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.7.0.tgz", + "integrity": "sha512-v8/rBWr2VO5YkspYINnvu81inSz2y3ODJrhO175/Exzor1RcEZZkizgE2A+w/CAXXoESS8Kys5E62dOHGHzULA==", + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", + "peer": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT", + "peer": true + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", + "peer": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.2", "license": "MIT" @@ -10374,6 +13149,26 @@ "version": "1.4.0", "license": "MIT" }, + "node_modules/ndjson": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz", + "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "json-stringify-safe": "^5.0.1", + "minimist": "^1.2.5", + "readable-stream": "^3.6.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "ndjson": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/negotiator": { "version": "0.6.3", "license": "MIT", @@ -10383,7 +13178,6 @@ }, "node_modules/neo-async": { "version": "2.6.2", - "dev": true, "license": "MIT" }, "node_modules/nkeys.js": { @@ -10407,7 +13201,6 @@ }, "node_modules/node-emoji": { "version": "1.11.0", - "dev": true, "license": "MIT", "dependencies": { "lodash": "^4.17.21" @@ -10449,9 +13242,31 @@ "version": "2.0.14", "license": "MIT" }, + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12.19" + } + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "license": "ISC", + "peer": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, "node_modules/normalize-path": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -10608,6 +13423,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/obliterator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", + "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", + "license": "MIT", + "peer": true + }, "node_modules/on-finished": { "version": "2.4.1", "license": "MIT", @@ -10676,6 +13498,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ordinal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", + "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", + "license": "MIT", + "peer": true + }, "node_modules/os-name": { "version": "4.0.1", "dev": true, @@ -10693,7 +13522,6 @@ }, "node_modules/os-tmpdir": { "version": "1.0.2", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -10725,6 +13553,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-try": { "version": "2.2.0", "dev": true, @@ -10743,6 +13587,12 @@ "node": ">=6" } }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "peer": true + }, "node_modules/parse-json": { "version": "5.2.0", "license": "MIT", @@ -10883,11 +13733,23 @@ "node": ">=8" } }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, "node_modules/pause": { "version": "0.0.1" }, "node_modules/pbkdf2": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "license": "MIT", "dependencies": { "create-hash": "^1.1.2", @@ -10914,6 +13776,16 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/pirates": { "version": "4.0.6", "dev": true, @@ -11005,7 +13877,6 @@ }, "node_modules/prettier": { "version": "2.8.8", - "dev": true, "license": "MIT", "bin": { "prettier": "bin-prettier.js" @@ -11093,9 +13964,18 @@ "version": "2.0.1", "license": "MIT" }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "license": "MIT", + "peer": true, + "dependencies": { + "asap": "~2.0.6" + } + }, "node_modules/prompts": { "version": "2.4.2", - "dev": true, "license": "MIT", "dependencies": { "kleur": "^3.0.3", @@ -11129,6 +14009,13 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT", + "peer": true + }, "node_modules/pump": { "version": "3.0.0", "dev": true, @@ -11248,7 +14135,6 @@ }, "node_modules/readdirp": { "version": "3.6.0", - "dev": true, "license": "MIT", "dependencies": { "picomatch": "^2.2.1" @@ -11259,7 +14145,6 @@ }, "node_modules/rechoir": { "version": "0.6.2", - "dev": true, "dependencies": { "resolve": "^1.1.6" }, @@ -11267,6 +14152,29 @@ "node": ">= 0.10" } }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "license": "MIT", + "peer": true, + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/reflect-metadata": { "version": "0.1.13", "license": "Apache-2.0" @@ -11362,9 +14270,44 @@ "jsesc": "bin/jsesc" } }, + "node_modules/req-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", + "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "req-from": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/req-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", + "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", + "license": "MIT", + "peer": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/req-from/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/require-directory": { "version": "2.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -11372,7 +14315,6 @@ }, "node_modules/require-from-string": { "version": "2.0.2", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -11560,20 +14502,265 @@ "version": "1.0.3", "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/sc-istanbul": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz", + "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "istanbul": "lib/cli.js" + } + }, + "node_modules/sc-istanbul/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "peer": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/sc-istanbul/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "license": "MIT", + "peer": true + }, + "node_modules/sc-istanbul/node_modules/escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.12.0" + }, + "optionalDependencies": { + "source-map": "~0.2.0" + } + }, + "node_modules/sc-istanbul/node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "license": "BSD-2-Clause", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sc-istanbul/node_modules/estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sc-istanbul/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "peer": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sc-istanbul/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sc-istanbul/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "peer": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/sc-istanbul/node_modules/js-yaml/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sc-istanbul/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "license": "MIT", + "peer": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/sc-istanbul/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "license": "MIT", + "peer": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/sc-istanbul/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/sc-istanbul/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "license": "MIT", + "peer": true + }, + "node_modules/sc-istanbul/node_modules/source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", + "optional": true, + "peer": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/sc-istanbul/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/sc-istanbul/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "license": "MIT", + "peer": true, + "dependencies": { + "prelude-ls": "~1.1.2" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8.0" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" + "node_modules/sc-istanbul/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } }, "node_modules/schema-utils": { "version": "3.3.0", @@ -11626,6 +14813,8 @@ }, "node_modules/secp256k1": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -11639,6 +14828,8 @@ }, "node_modules/secp256k1/node_modules/node-addon-api": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", "license": "MIT" }, "node_modules/semver": { @@ -11692,7 +14883,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, "dependencies": { "randombytes": "^2.1.0" } @@ -11740,6 +14930,8 @@ }, "node_modules/setimmediate": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "license": "MIT" }, "node_modules/setprototypeof": { @@ -11757,6 +14949,20 @@ "sha.js": "bin.js" } }, + "node_modules/sha1": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", + "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "charenc": ">= 0.0.1", + "crypt": ">= 0.0.1" + }, + "engines": { + "node": "*" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "license": "MIT", @@ -11776,7 +14982,6 @@ }, "node_modules/shelljs": { "version": "0.8.5", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "glob": "^7.0.0", @@ -11813,7 +15018,6 @@ }, "node_modules/sisteransi": { "version": "1.0.5", - "dev": true, "license": "MIT" }, "node_modules/slash": { @@ -11823,6 +15027,24 @@ "node": ">=8" } }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, "node_modules/snarkjs": { "version": "0.6.11", "license": "GPL-3.0", @@ -11858,6 +15080,222 @@ "wasmbuilder": "0.0.16" } }, + "node_modules/solc": { + "version": "0.8.26", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.26.tgz", + "integrity": "sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==", + "license": "MIT", + "peer": true, + "dependencies": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solc.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/solc/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/solc/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/solidity-coverage": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.12.tgz", + "integrity": "sha512-8cOB1PtjnjFRqOgwFiD8DaUsYJtVJ6+YdXQtSZDrLGf8cdhhh8xzTtGzVTGeBf15kTv0v7lYPJlV/az7zLEPJw==", + "license": "ISC", + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.0.9", + "@solidity-parser/parser": "^0.18.0", + "chalk": "^2.4.2", + "death": "^1.1.0", + "difflib": "^0.2.4", + "fs-extra": "^8.1.0", + "ghost-testrpc": "^0.0.2", + "global-modules": "^2.0.0", + "globby": "^10.0.1", + "jsonschema": "^1.2.4", + "lodash": "^4.17.21", + "mocha": "^10.2.0", + "node-emoji": "^1.10.0", + "pify": "^4.0.1", + "recursive-readdir": "^2.2.2", + "sc-istanbul": "^0.4.5", + "semver": "^7.3.4", + "shelljs": "^0.8.3", + "web3-utils": "^1.3.6" + }, + "bin": { + "solidity-coverage": "plugins/bin.js" + }, + "peerDependencies": { + "hardhat": "^2.11.0" + } + }, + "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", + "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", + "license": "MIT", + "peer": true + }, + "node_modules/solidity-coverage/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/solidity-coverage/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/solidity-coverage/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/solidity-coverage/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT", + "peer": true + }, + "node_modules/solidity-coverage/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/solidity-coverage/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/solidity-coverage/node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/solidity-coverage/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/solidity-coverage/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "peer": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/solidity-coverage/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/solidity-coverage/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/source-map": { "version": "0.7.4", "dev": true, @@ -11881,9 +15319,18 @@ "node": ">=0.10.0" } }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "license": "ISC", + "peer": true, + "dependencies": { + "readable-stream": "^3.0.0" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/stack-utils": { @@ -11905,6 +15352,29 @@ "node": ">=8" } }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "license": "MIT", + "peer": true, + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "license": "(MIT OR CC0-1.0)", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/static-eval": { "version": "2.0.2", "license": "MIT", @@ -11942,6 +15412,13 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", + "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", + "license": "WTFPL OR MIT", + "peer": true + }, "node_modules/string-length": { "version": "4.0.2", "dev": true, @@ -11960,7 +15437,6 @@ }, "node_modules/string-width": { "version": "4.2.3", - "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -11973,7 +15449,6 @@ }, "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", - "dev": true, "license": "MIT" }, "node_modules/string.prototype.includes": { @@ -12141,48 +15616,126 @@ "node": ">=6.4.0" } }, - "node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", + "node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/swagger-ui-dist": { + "version": "5.11.2", + "license": "Apache-2.0" + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "license": "MIT", + "peer": true, + "dependencies": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "license": "MIT", + "peer": true, + "dependencies": { + "get-port": "^3.1.0" + } + }, + "node_modules/table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "license": "BSD-3-Clause", + "peer": true, "dependencies": { - "has-flag": "^4.0.0" + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=8" + "node": ">=10.0.0" } }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "dev": true, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", "license": "MIT", + "peer": true, "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=8.0.0" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "license": "MIT", + "peer": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/swagger-ui-dist": { - "version": "5.11.2", - "license": "Apache-2.0" - }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "dev": true, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "license": "MIT", + "peer": true, "engines": { - "node": ">=0.10" + "node": ">=8" } }, "node_modules/tapable": { @@ -12307,14 +15860,68 @@ "version": "0.2.0", "license": "MIT" }, + "node_modules/then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/then-request/node_modules/@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", + "license": "MIT", + "peer": true + }, + "node_modules/then-request/node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "license": "MIT", + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, "node_modules/through": { "version": "2.3.8", "dev": true, "license": "MIT" }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "license": "MIT", + "peer": true, + "dependencies": { + "readable-stream": "3" + } + }, "node_modules/tmp": { "version": "0.0.33", - "dev": true, "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" @@ -12375,6 +15982,22 @@ "version": "1.0.1", "license": "MIT" }, + "node_modules/ts-command-line-args": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", + "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", + "license": "ISC", + "peer": true, + "dependencies": { + "chalk": "^4.1.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "string-format": "^2.0.0" + }, + "bin": { + "write-markdown": "dist/write-markdown.js" + } + }, "node_modules/ts-essentials": { "version": "10.0.1", "dev": true, @@ -12447,7 +16070,6 @@ }, "node_modules/ts-node": { "version": "10.9.2", - "dev": true, "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -12489,12 +16111,10 @@ }, "node_modules/ts-node/node_modules/arg": { "version": "4.1.3", - "dev": true, "license": "MIT" }, "node_modules/ts-node/node_modules/diff": { "version": "4.0.2", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" @@ -12566,6 +16186,13 @@ "node": ">=10" } }, + "node_modules/tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", + "license": "MIT", + "peer": true + }, "node_modules/tsutils": { "version": "3.21.0", "license": "MIT", @@ -12603,6 +16230,13 @@ "version": "1.0.3", "license": "Unlicense" }, + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "license": "Unlicense", + "peer": true + }, "node_modules/type-check": { "version": "0.4.0", "license": "MIT", @@ -12615,7 +16249,6 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -12642,6 +16275,111 @@ "node": ">= 0.6" } }, + "node_modules/typechain": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", + "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/prettier": "^2.1.1", + "debug": "^4.3.1", + "fs-extra": "^7.0.0", + "glob": "7.1.7", + "js-sha3": "^0.8.0", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "prettier": "^2.3.1", + "ts-command-line-args": "^2.2.0", + "ts-essentials": "^7.0.1" + }, + "bin": { + "typechain": "dist/cli/cli.js" + }, + "peerDependencies": { + "typescript": ">=4.3.0" + } + }, + "node_modules/typechain/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/typechain/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typechain/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "peer": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/typechain/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "peer": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/typechain/node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "typescript": ">=3.7.0" + } + }, + "node_modules/typechain/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/typed-array-buffer": { "version": "1.0.2", "license": "MIT", @@ -12722,6 +16460,30 @@ "node": ">=4.2.0" } }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/uglify-js": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.0.tgz", + "integrity": "sha512-wNKHUY2hYYkf6oSFfhwwiHo4WCHzHmzcXsqXYTN9ja3iApYIFbb2U6ics9hBcYLHcYGQoAlwnZlTrf3oF+BL/Q==", + "license": "BSD-2-Clause", + "optional": true, + "peer": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/uid": { "version": "2.0.2", "license": "MIT", @@ -12756,6 +16518,19 @@ "version": "1.12.1", "license": "MIT" }, + "node_modules/undici": { + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, "node_modules/undici-types": { "version": "5.26.5", "license": "MIT" @@ -12794,7 +16569,6 @@ }, "node_modules/universalify": { "version": "2.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">= 10.0.0" @@ -12881,7 +16655,6 @@ }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", - "dev": true, "license": "MIT" }, "node_modules/v8-to-istanbul": { @@ -12970,45 +16743,6 @@ "node": ">=8.0.0" } }, - "node_modules/web3-utils/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "license": "MIT", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/web3-utils/node_modules/ethereumjs-util": { - "version": "7.1.5", - "license": "MPL-2.0", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/web3-utils/node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.1", - "license": "MIT" - }, "node_modules/webidl-conversions": { "version": "3.0.1", "license": "BSD-2-Clause" @@ -13168,6 +16902,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "license": "MIT", + "peer": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/windows-release": { "version": "4.0.0", "dev": true, @@ -13233,9 +16980,46 @@ "node": ">=0.10.0" } }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "license": "MIT", + "peer": true + }, + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "license": "MIT", + "peer": true, + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/workerpool": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", + "license": "Apache-2.0", + "peer": true + }, "node_modules/wrap-ansi": { "version": "7.0.0", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -13293,7 +17077,6 @@ }, "node_modules/y18n": { "version": "5.0.8", - "dev": true, "license": "ISC", "engines": { "node": ">=10" @@ -13335,9 +17118,24 @@ "node": ">=12" } }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "license": "MIT", + "peer": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/yn": { "version": "3.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">=6" diff --git a/examples/bri-3/package.json b/examples/bri-3/package.json index e309fadac..89132085c 100644 --- a/examples/bri-3/package.json +++ b/examples/bri-3/package.json @@ -41,6 +41,8 @@ "@nestjs/schedule": "^3.0.1", "@nestjs/swagger": "^7.3.1", "@noble/curves": "^1.2.0", + "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "@openzeppelin/contracts": "^5.0.2", "@personaelabs/spartan-ecdsa": "^2.1.4", "@prisma/client": "^5.2.0", "circomlib": "^2.0.5", diff --git a/examples/bri-3/src/bri/ccsm/services/ethereum.service.ts b/examples/bri-3/src/bri/ccsm/services/ethereum.service.ts index 6acbcba4e..fa594e0c2 100644 --- a/examples/bri-3/src/bri/ccsm/services/ethereum.service.ts +++ b/examples/bri-3/src/bri/ccsm/services/ethereum.service.ts @@ -8,7 +8,7 @@ import { Provider, SigningKey, } from 'ethers'; -import * as CcsmBpiStateAnchor from '../../../../ccsmArtifacts/CcsmBpiStateAnchor.json'; +import * as CcsmBpiStateAnchor from '../../../../ccsmArtifacts/contracts/CcsmBpiStateAnchor.sol/CcsmBpiStateAnchor.json'; import { internalBpiSubjectEcdsaPrivateKey } from '../../../shared/testing/constants'; import { ICcsmService } from './ccsm.interface'; diff --git a/examples/bri-3/zeroKnowledgeArtifacts/scripts/circuits/plonk.sh b/examples/bri-3/zeroKnowledgeArtifacts/scripts/circuits/plonk.sh index ecc5f19e3..1d16e180d 100755 --- a/examples/bri-3/zeroKnowledgeArtifacts/scripts/circuits/plonk.sh +++ b/examples/bri-3/zeroKnowledgeArtifacts/scripts/circuits/plonk.sh @@ -19,6 +19,6 @@ snarkjs plonk setup zeroKnowledgeArtifacts/circuits/$1/$1.r1cs zeroKnowledgeArti snarkjs zkey export verificationkey zeroKnowledgeArtifacts/circuits/$1/$1_final.zkey zeroKnowledgeArtifacts/circuits/$1/$1_verification_key.json # Export circuit verifier with updated name and solidity version -## snarkjs zkey export solidityverifier zeroKnowledgeArtifacts/circuits/$1/$1_final.zkey ccsm/contracts/$1Verifier.sol +snarkjs zkey export solidityverifier zeroKnowledgeArtifacts/circuits/$1/$1_final.zkey ccsm/contracts/$1Verifier.sol echo "------------------Phase 2 complete-------------------------" \ No newline at end of file