{
  "contractName": "WitRandomnessV3",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_witOracle",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_operator",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "range",
          "type": "uint256"
        }
      ],
      "name": "IndexOutOfBounds",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidInitialization",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "length",
          "type": "uint256"
        }
      ],
      "name": "InvalidLengthEncoding",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotInitializing",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "OwnableInvalidOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "OwnableUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "read",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "expected",
          "type": "uint256"
        }
      ],
      "name": "UnexpectedMajorType",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "by",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "master",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "clone",
          "type": "address"
        }
      ],
      "name": "Cloned",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "version",
          "type": "uint64"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "randomizeBlock",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "finalityBlock",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "randomness",
          "type": "bytes32"
        }
      ],
      "name": "Randomized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "evmRequester",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "randomizeBlock",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "witOracleQueryId",
          "type": "uint64"
        }
      ],
      "name": "Randomizing",
      "type": "event"
    },
    {
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "inputs": [],
      "name": "cloned",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "specs",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    },
    {
      "inputs": [],
      "name": "class",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_curator",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "uint24",
              "name": "callbackGasLimit",
              "type": "uint24"
            },
            {
              "internalType": "uint16",
              "name": "extraFeePercentage",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witInclusionFees",
              "type": "uint64"
            },
            {
              "internalType": "uint16",
              "name": "randomizeWaitingBlocks",
              "type": "uint16"
            }
          ],
          "internalType": "struct WitRandomnessV3.CloneSettings",
          "name": "_settings",
          "type": "tuple"
        }
      ],
      "name": "initializeClone",
      "outputs": [
        {
          "internalType": "contract IWitRandomness",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initialized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "base",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_curator",
          "type": "address"
        }
      ],
      "name": "clone",
      "outputs": [
        {
          "internalType": "contract IWitRandomness",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "consumer",
      "outputs": [
        {
          "internalType": "contract IWitRandomnessConsumer",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_evmGasPrice",
          "type": "uint256"
        }
      ],
      "name": "estimateRandomizeFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "fetchRandomnessAfter",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "fetchRandomnessAfterProof",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "_witnetQueryUUID",
          "type": "bytes32"
        },
        {
          "internalType": "Witnet.Timestamp",
          "name": "_witnetTimestamp",
          "type": "uint64"
        },
        {
          "internalType": "Witnet.TransactionHash",
          "name": "_witnetDrTxHash",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_evmFinalityBlock",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getLastRandomizeBlock",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "getRandomizeData",
      "outputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "_queryId",
          "type": "uint64"
        },
        {
          "internalType": "uint256",
          "name": "_prevRandomizeBlock",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_nextRandomizeBlock",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "getRandomizeNextBlock",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "getRandomizePrevBlock",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "getRandomizeQueryId",
      "outputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "getRandomizeQueryErrorDescription",
      "outputs": [
        {
          "internalType": "string",
          "name": "_reason",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getRandomizeQueryParams",
      "outputs": [
        {
          "internalType": "uint24",
          "name": "_callbackGasLimit",
          "type": "uint24"
        },
        {
          "internalType": "uint16",
          "name": "_extraFeePercentage",
          "type": "uint16"
        },
        {
          "internalType": "uint16",
          "name": "_witCommitteeSize",
          "type": "uint16"
        },
        {
          "internalType": "uint64",
          "name": "_witInclusionFees",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getRandomizeRadonBytecode",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getRandomizeRadonHash",
      "outputs": [
        {
          "internalType": "Witnet.RadonHash",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "getRandomizeStatus",
      "outputs": [
        {
          "internalType": "enum IWitRandomnessTypes.RandomizeStatus",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getRandomizeWaitingBlocks",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_blockNumber",
          "type": "uint256"
        }
      ],
      "name": "isRandomized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "randomize",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_evmUsedFunds",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "witnetRandomness",
          "type": "bytes32"
        }
      ],
      "name": "verifyRandomnessAfter",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "witOracle",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "acceptOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_consumer",
          "type": "address"
        },
        {
          "internalType": "uint24",
          "name": "_maxCallbackGasLimit",
          "type": "uint24"
        }
      ],
      "name": "settleConsumer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint24",
          "name": "_callbackGasLimit",
          "type": "uint24"
        },
        {
          "internalType": "uint16",
          "name": "_extraFeePercentage",
          "type": "uint16"
        },
        {
          "internalType": "uint16",
          "name": "_minWitCommitteeSize",
          "type": "uint16"
        },
        {
          "internalType": "uint64",
          "name": "_minWitInclusionFees",
          "type": "uint64"
        }
      ],
      "name": "settleQueryParams",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "_randomizeWaitingBlocks",
          "type": "uint16"
        }
      ],
      "name": "settleRandomizeWaitingBlocks",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "queryId",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "queryResult",
          "type": "bytes"
        }
      ],
      "name": "reportWitOracleQueryResult",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        }
      ],
      "name": "reportableFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_witOracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"range\",\"type\":\"uint256\"}],\"name\":\"IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidLengthEncoding\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"read\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"}],\"name\":\"UnexpectedMajorType\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"master\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"clone\",\"type\":\"address\"}],\"name\":\"Cloned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"randomizeBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalityBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"randomness\",\"type\":\"bytes32\"}],\"name\":\"Randomized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"evmRequester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"randomizeBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"Witnet.QueryId\",\"name\":\"witOracleQueryId\",\"type\":\"uint64\"}],\"name\":\"Randomizing\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"base\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"class\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_curator\",\"type\":\"address\"}],\"name\":\"clone\",\"outputs\":[{\"internalType\":\"contract IWitRandomness\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cloned\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consumer\",\"outputs\":[{\"internalType\":\"contract IWitRandomnessConsumer\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_evmGasPrice\",\"type\":\"uint256\"}],\"name\":\"estimateRandomizeFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"fetchRandomnessAfter\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"fetchRandomnessAfterProof\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_witnetQueryUUID\",\"type\":\"bytes32\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"_witnetTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"_witnetDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_evmFinalityBlock\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastRandomizeBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getRandomizeData\",\"outputs\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"_queryId\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_prevRandomizeBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nextRandomizeBlock\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getRandomizeNextBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getRandomizePrevBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getRandomizeQueryErrorDescription\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_reason\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getRandomizeQueryId\",\"outputs\":[{\"internalType\":\"Witnet.QueryId\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRandomizeQueryParams\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"_callbackGasLimit\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"_extraFeePercentage\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"_witInclusionFees\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRandomizeRadonBytecode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRandomizeRadonHash\",\"outputs\":[{\"internalType\":\"Witnet.RadonHash\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getRandomizeStatus\",\"outputs\":[{\"internalType\":\"enum IWitRandomnessTypes.RandomizeStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRandomizeWaitingBlocks\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_curator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint24\",\"name\":\"callbackGasLimit\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"extraFeePercentage\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witInclusionFees\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"randomizeWaitingBlocks\",\"type\":\"uint16\"}],\"internalType\":\"struct WitRandomnessV3.CloneSettings\",\"name\":\"_settings\",\"type\":\"tuple\"}],\"name\":\"initializeClone\",\"outputs\":[{\"internalType\":\"contract IWitRandomness\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"isRandomized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_evmUsedFunds\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"queryId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"queryResult\",\"type\":\"bytes\"}],\"name\":\"reportWitOracleQueryResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"}],\"name\":\"reportableFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_consumer\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"_maxCallbackGasLimit\",\"type\":\"uint24\"}],\"name\":\"settleConsumer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"_callbackGasLimit\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"_extraFeePercentage\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_minWitCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"_minWitInclusionFees\",\"type\":\"uint64\"}],\"name\":\"settleQueryParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_randomizeWaitingBlocks\",\"type\":\"uint16\"}],\"name\":\"settleRandomizeWaitingBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"specs\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"witnetRandomness\",\"type\":\"bytes32\"}],\"name\":\"verifyRandomnessAfter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"witOracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"The Witnet Foundation.\",\"details\":\"Protection against race-condition and malleability attacks requires randomness queried to this contract to be solved is an asynchronous way, meaning that after some randomness is requested, the result provided from the Wit/Oracle sidechain won't be ready until a certain amount of EVM blocks have elapsed.  This protection also implies that eventually failing randomness requests on the Wit/Oracle sidechain  cannot be retried but from this very same contract. Failing randomness requests will get all automatically and unbiasedly solved as soon as some new randomness request gets solved, even if paid by a different requester. Querying for new randomness requires paying a fee in native EVM gas currency, as to cover the implicit cost of solving unmalleable randomness on the Wit/Oracle sidechain and report it back to the EVM storage. The actual  randomize fee depends on the expected gas price to pay for the EVM transaction that would eventually include  a call to any of the `randomize(..)` methods of this contract. The randomize fee can be computed by passing the expected gas price value to the `estimateRandomizeFee(uint256)` method. > Note [1]: On highly volatile gas price markets, especially on some Layer-2 EVM chains, is highly recommended to estimate the randomize fee before a `randomize()` call, and pass a fresh EVM gas price value. Otherwise the call to `randomize()` could potentially revert with either \\\"insufficient reward\\\" or \\\"too much reward\\\". > Note [2]: Contracts requiring some external entity to report Witnet-certified randomness only when required, would need to implement the `IWitRandomnessConsumer`. The external entity would then have to clone the  public-domain address, attach it to the consumer contract address, and get the `randomize()` function called on the cloned instance as many times as required.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"clone(address)\":{\"params\":{\"_curator\":\"Address that will have authoritative access to `IWitRandomnessAdmin` methods.\"}},\"consumer()\":{\"details\":\"If zero, generated randomness will not be reported to any other external address. The consumer contract must implement the `IWitRandomnessConsumer` interface, and accept this instance as source of entropy.It can only be settled by a curator on cloned instances.\"},\"fetchRandomnessAfter(uint256)\":{\"details\":\"Reverts if:    i.   no `randomize()` was queried on neither the given block, nor afterwards.    ii.  the first non-failing `randomize()` request found on or after the given block is not solved yet.    iii. all `randomize()` requests that took place on or after the given block were solved with errors.\",\"params\":{\"_blockNumber\":\"Block number from which the search will start.\"}},\"fetchRandomnessAfterProof(uint256)\":{\"details\":\"Reverts if:    i.   no `randomize()` was queried on neither the given block, nor afterwards.    ii.  the first non-failing `randomize()` request found on or after the given block is not solved yet.    iii. all `randomize()` requests that took place on or after the given block were solved with errors.\",\"params\":{\"_blockNumber\":\"Block number from which the search will start.\"},\"returns\":{\"_evmFinalityBlock\":\"EVM block number at which the generated randomness can be considered to be final.\",\"_witnetDrTxHash\":\"Hash of the witnessing commit/reveal act that took place on the Witnet blockchain.\",\"_witnetQueryUUID\":\"Universal identifier of the query posted from this contract that ultimately solved randomness.\",\"_witnetTimestamp\":\"Timestamp at which the randomness value was generated by the Witnet blockchain.\"}},\"getRandomizeData(uint256)\":{\"details\":\"Returns zero values if no randomize request was actually queried on the specified block number.\",\"params\":{\"_blockNumber\":\"Block number from which the search will start.\"},\"returns\":{\"_nextRandomizeBlock\":\"Block number in which a randomize request got queried just after this one, 0 if none.\",\"_prevRandomizeBlock\":\"Block number in which a randomize request got queried just before this one. 0 if none.\",\"_queryId\":\"Identifier of the underlying Wit/Oracle query created on the specified block number. \"}},\"getRandomizeNextBlock(uint256)\":{\"params\":{\"_blockNumber\":\"Block number from which the search will start.\"},\"returns\":{\"_0\":\"Number of the first block found after the given one, or `0` otherwise.\"}},\"getRandomizePrevBlock(uint256)\":{\"params\":{\"_blockNumber\":\"Block number from which the search will start. Cannot be zero.\"},\"returns\":{\"_0\":\"First block found before the given one, or `0` otherwise.\"}},\"getRandomizeQueryId(uint256)\":{\"details\":\"Returns zero if no randomize was request on or after the specified block number.\"},\"getRandomizeQueryParams()\":{\"returns\":{\"_callbackGasLimit\":\"Max. expendable gas upon randomness delivery.\",\"_extraFeePercentage\":\"Overhead percentage applied when estimating the randomize request fee. \",\"_witCommitteeSize\":\"Number of Witnet witnessing nodes required to generate unbiased randomness.\",\"_witInclusionFees\":\"Minimum amount of fees in $nanoWIT to be paid on the Witnet blockchain.\"}},\"randomize()\":{\"details\":\"Only one randomize request per block will get ultimately relayed to the Witnet blockchain.\",\"returns\":{\"_evmUsedFunds\":\"EVM funds actually paid as randomize fee.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"reportWitOracleQueryResult(uint256,bytes)\":{\"details\":\"It should revert if called from an address different to the WitOracle instance being used by consumer.\",\"params\":{\"queryId\":\"The unique identifier of the Witnet query being reported.\",\"queryResult\":\"Abi-encoded Witnet.DataResult containing the CBOR-encoded query's result, and metadata.\"}},\"reportableFrom(address)\":{\"details\":\"In practice, must only be true on the WitOracle address that's being used bythe consumer contract to post data queries. \"}},\"stateVariables\":{\"_DEFAULT_RANDOMIZE_WAITING_BLOCKS\":{\"details\":\"Default number of blocks after a randomize request to consider it delayed if not solved yet.\"},\"_WIT_ORACLE_MIN_CALLBACK_GAS_LIMIT\":{\"details\":\"Minimum acceptable callback gas limit that can be settled by the `owner()`. \"},\"_WIT_ORACLE_RNG_MAX_RESULT_SIZE\":{\"details\":\"Size of successful CBOR-encoded randomness generated by the Witnet blockchain. \"},\"_WIT_RANDOMNESS_STORAGE_SLOT\":{\"details\":\"Storage slot pointer\"},\"__WIT_ORACLE_RNG_RADON_HASH\":{\"details\":\"Can be used to track all randomness requests solved so far on the Witnet blockchain.\"}},\"title\":\"WitRandomnessV3: Unbiased, EVM-agnostic and provably-fair random seeds from the Witnet blockchain.   64-bit entropy seeds can be permissionless pulled at anytime from smart contracts and externally-owned EVM accounts.  Randomness provisioning is securely protected against race-condition and malleability attacks by node validators on both EVM and Witnet blockchains.  This contract acts also as a public-good registry, openly preserving all random seeds generated in the past, and providing after-the-fact traceability proof to the actual witnessing committees and punishable acts that took place on the Witnet blockchain for generating every single one of them.\",\"version\":1},\"userdoc\":{\"events\":{\"Randomized(uint256,uint256,bytes32)\":{\"notice\":\"Emitted when some requested randomness gets delivered from Witnet.\"},\"Randomizing(address,uint256,uint64)\":{\"notice\":\"Emitted when a new randomize request gets posted to the Wit/Oracle framework.\"}},\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"=============================================================================================================== --- IWitRandomnessAdmin -------------------------------------------------------------------------------------\"},\"base()\":{\"notice\":\"Address of the underlying logic contract that can be potentially cloned.\"},\"class()\":{\"notice\":\"Returns the name of the actual contract implementing the logic of this Witnet appliance.\"},\"clone(address)\":{\"notice\":\"Creates a light-proxy clone to the `base()` logic address, to be owned by the specified `curator`address. Curators of cloned instances can optionally settle one single `IWitRandomnessConsumer` consuming contract. The consuming contract, if settled, will be immediately reported every time a new `randomize()` request gets solved and bridged back from Witnet. Either way, randomness resolutions will be reamin stored in the  `WitRandomness` storage, as for future reference. \"},\"cloned()\":{\"notice\":\"Tells whether this contract is a clone of `self()`\"},\"consumer()\":{\"notice\":\"Returns the consumer address where all valid randomize results will be reported to.\"},\"estimateRandomizeFee(uint256)\":{\"notice\":\"Returns amount of wei required to be paid as a fee when requesting randomization with a  transaction gas price as the one given.\"},\"fetchRandomnessAfter(uint256)\":{\"notice\":\"Retrieves the result of keccak256-hashing the given block number with the randomness value  generated by the Witnet blockchain in response to the first non-failing randomize request solved  after such block number.\"},\"fetchRandomnessAfterProof(uint256)\":{\"notice\":\"Retrieves the actual random value, unique hash and timestamp of the witnessing commit/reveal act  that took place in the Witnet blockchain in response to the first non-failing randomize query solved after the given block number.\"},\"getLastRandomizeBlock()\":{\"notice\":\"Returns last block number on which a randomize was requested.\"},\"getRandomizeData(uint256)\":{\"notice\":\"Retrieves metadata related to the randomize request that got queried to the`WitOracle` contract  on the specified block number, if any.\"},\"getRandomizeNextBlock(uint256)\":{\"notice\":\"Returns the number of the next block in which a randomize request was posted after the given one. \"},\"getRandomizePrevBlock(uint256)\":{\"notice\":\"Returns the number of the previous block in which a randomize request was posted before the given one.\"},\"getRandomizeQueryErrorDescription(uint256)\":{\"notice\":\"Explains why the last attempt of generating randomness for the specified block number failed.\"},\"getRandomizeQueryId(uint256)\":{\"notice\":\"Returns the identifier of the Wit/Oracle query that has either solved randomness for the specified block number, is currently attending randomness for the specified block number, of the one that attempted to solve it. \"},\"getRandomizeQueryParams()\":{\"notice\":\"Returns security and liveness parameters required to the Witnet blockchain  when solving randomness requests, if no others are specified.\"},\"getRandomizeRadonBytecode()\":{\"notice\":\"Returns the immutable bytecode of the Radon Request that's being used  for solving randomness requests on the Witnet blockchain.\"},\"getRandomizeRadonHash()\":{\"notice\":\"Returns the unique identifier of the Radon Request that's being used  for solving request randomness requests on the Witnet blockchain.\"},\"getRandomizeStatus(uint256)\":{\"notice\":\"Returns status of the first non-errored randomize request queried on or after the given block number.  - 0 -> Void: no randomize request was actually queried on or after the given block number.  - 1 -> Awaiting: a randomize request was found but it's not yet solved by the Wit/Oracle.  - 2 -> Ready: a successfull randomize value was reported and is ready to be read.  - 3 -> Error: all attempted randomize requests at or after the given block were solved with errors.  - 4 -> Finalizing: a randomize result was relayed already but cannot yet be considered to be final.\"},\"getRandomizeWaitingBlocks()\":{\"notice\":\"Return the number of EVM blocks after a randomize requests that have to elapse before considering such request to be delayed. Results to delayed requests can potentially be provided by later requests, if solved earlier. A value of zero means that randomize  requests will never expire. \"},\"initialized()\":{\"notice\":\"=============================================================================================================== --- Clonable --------------------------------------------------------------------------------------------------\"},\"isRandomized(uint256)\":{\"notice\":\"Returns `true` only if a successfull resolution from the Witnet blockchain is found for the first  non-errored randomize request posted on or after the given block number.\"},\"randomize()\":{\"notice\":\"Requests the Witnet blockchain to generate an unbiased 64-bit random seed.\"},\"reportWitOracleQueryResult(uint256,bytes)\":{\"notice\":\"Method to be called from the witOracle contract as soon as the given Witnet `queryId` gets reported.\"},\"reportableFrom(address)\":{\"notice\":\"Determines if Witnet queries can be reported from given address.\"},\"specs()\":{\"notice\":\"Returns the ERC-165 id of the minimal functionality expected for this appliance.\"},\"verifyRandomnessAfter(uint256,bytes32)\":{\"notice\":\"Verifies that the specified randomness seed was actually generated on the Witnet blockchain, and was actually used for producing the randomness seed returned by `fetchRandomnessAfter`.\"},\"witOracle()\":{\"notice\":\"The Wit/Oracle core address accepted as source of entropy.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/apps/WitRandomnessV3.sol\":\"WitRandomnessV3\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"project:/contracts/WitOracle.sol\":{\"keccak256\":\"0x7f20eab15140df459753dfa8e406b826918b56ebe2c46456f9d04345c02629d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0573ce3d48200c71d8235a1a8c055b706420b2037bd21336f3c61713c3b8349\",\"dweb:/ipfs/QmY7BnVaNXFtJs1BFdeaa7dQfvUVoZyfwtv9HuToCxUUHU\"]},\"project:/contracts/WitRandomness.sol\":{\"keccak256\":\"0x7accd2d28e3ad04761104048b775576ba5efc212eae4dc2dfe006506d95fb137\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4daf83555177f9eb9278963a9873c2aaed1b28ad2ba27300b57f3fa195a265bc\",\"dweb:/ipfs/QmRWmasNnkFYfYy563TnGBVFgriNbV57KHTerPZLFYyU1J\"]},\"project:/contracts/apps/WitRandomnessV3.sol\":{\"keccak256\":\"0x1016d1f80f903f3ea27e8f70e2054f60a12643888458e3da97dc814fa2de2f49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://defbe1fdd53e22e03b580b8ef8d5eaf082be789f40f4826e7434f3d691dbf764\",\"dweb:/ipfs/QmUAiU95TMKvSeAuJ2GkAovA2nuLSCb7eAvN2VvsADm5NK\"]},\"project:/contracts/interfaces/IWitAppliance.sol\":{\"keccak256\":\"0xd207ca54a1049445a3d99eea497d9b34c6dbdd44d771eee825e4c031bd2f447e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f81de32d868ff2881ed6fe97cc897e40b4b11d23cbe53a0e23cf3e68f9c0f0a3\",\"dweb:/ipfs/QmeeXmzmK5MAzt7Hf5DB2L81efKtTzZg9VbQ8sUiTqEk5c\"]},\"project:/contracts/interfaces/IWitOracle.sol\":{\"keccak256\":\"0x26cbe2074c0b3f545a46d95fad5e2280b67edcd958e4ae0b88f3a018aa11b805\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5324bac61f65e3edb01c88b9b75ca17affd593be88da5753a93b3f5304d3f479\",\"dweb:/ipfs/QmcVmNV6smbFiPaxvuN8ShkqbDZsT1wfjnF7f3qs6ke7QG\"]},\"project:/contracts/interfaces/IWitOracleAppliance.sol\":{\"keccak256\":\"0xcd8e57eca7f8042c85a83264e2ff6d1cd7a9f1521831736d7f57bcc7800642e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c639668e9439d60770b5df77436088ae7bd0aeb1d1be446552a98b6c29138f0\",\"dweb:/ipfs/QmbN3f5YuKMSd2j9tjay3VEkiYibGWpbfbwRNyrxA8k4o4\"]},\"project:/contracts/interfaces/IWitOracleQueriable.sol\":{\"keccak256\":\"0xdb0da1e377a35a7d620f43cb583a876750a52d91da2b888f48042483ad9c4910\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfcdf3e96ec3c5de7438f82e3d5a1dc9af9eb29080044213dccb26ff978354c\",\"dweb:/ipfs/Qmap2FzSysh2fug88eortbsTM7itFygRzKc9HfV43ePMik\"]},\"project:/contracts/interfaces/IWitOracleQueriableConsumer.sol\":{\"keccak256\":\"0xe8143d2387d674022f453b57652998f53cbe4c21fe35e59421428142355c8ebf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e6c3e3d3e7168a3fb75b1eca23d078d5240e5b02dac8a449d1ddf79256a34d8\",\"dweb:/ipfs/QmbGk4tQzTogTBVYiT8t3Gqtk6qDs5nyp9Z53GryTjKAm5\"]},\"project:/contracts/interfaces/IWitOracleQueriableEvents.sol\":{\"keccak256\":\"0x47c283e931006d35bd2599524f86724e45eae6fad2fdd9cdecd1c85a90ff3f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ad0520f99ec9298536ae9434f58caeb470c10dd3eaab1e4c7ed4cae9a97e2a2\",\"dweb:/ipfs/QmSuYCsSPweZfQc5Fbf9jYDdx4u7gwYCUdjhpcrrxmWZy6\"]},\"project:/contracts/interfaces/IWitOracleRadonRegistry.sol\":{\"keccak256\":\"0x437bbb89129311bd1cc8f6becd333df46109ec53b24d3159be942b225614071f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef9bcdf4a73cb126885478c994821b7fe2b87d9221b767b4c9342b89b0d6550a\",\"dweb:/ipfs/QmXzZXPMxjSiFpcEnhg6CjLFNxGCpDZt22xpUh7VHxNTGd\"]},\"project:/contracts/interfaces/IWitRandomness.sol\":{\"keccak256\":\"0x349b27a7ecb4ca22f87d4ab13714a010668a7014d9c37fdb91caa407981b889a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a53b9c8d63c973bb98790ef3305fbc24debaa2dadad1b48b82ffdbfce73e08b6\",\"dweb:/ipfs/QmSue9dMNK1V5ChooMBTtccmpx2JoiyktqTP1Ng6bSuUGx\"]},\"project:/contracts/interfaces/IWitRandomnessAdmin.sol\":{\"keccak256\":\"0xb5b9b2375509f03db5b1e198089f4b0cf4e4ebbd31a2a7b5d2480a743bebbcd2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0cade769eec375a3ec1cd4d376be54ee48a0e18786543f6ee396c0debfa4c04c\",\"dweb:/ipfs/QmY7AucsWp54PZVgMFjrJRt1n1DKCXb84ZXzTXnRZULYXF\"]},\"project:/contracts/interfaces/IWitRandomnessConsumer.sol\":{\"keccak256\":\"0x8006c81ac34c0797d31606164e6e0c6a7e97f0ba0f5228505bbc3d4fbcf16cdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cc71c0afed6dd296a808513b3119840490f76fb884ad35729669201446348bf\",\"dweb:/ipfs/QmQLs5jg8nugFgNu5psvGaCsMC6X1YoD6qV5nt7Gf5iAuk\"]},\"project:/contracts/interfaces/IWitRandomnessEvents.sol\":{\"keccak256\":\"0x005a56891f103c78ce015fbbcb9cf96f64e3810a70cd20dcdcce2963186788fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6365a0bb99b2ac7990b74b33a4df7b045702362baf11998f8345f1a2530c29ae\",\"dweb:/ipfs/QmY2d5m2E7JwFT4EFzbrXZkiL4sSTowmosMHjSE3fTAwXf\"]},\"project:/contracts/interfaces/IWitRandomnessTypes.sol\":{\"keccak256\":\"0x52d825bf6bd6a2515116f993e939108f5412f5a05e304893ba81e9fcbfce4e09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60b3db141539544afc2701a873570a7b78639090e36b4bb7a57ae0d0dddeb9f4\",\"dweb:/ipfs/QmTWkwYdF4QMTeCFVcYNi9pWi3PwVeK29xgp946z8xtuiN\"]},\"project:/contracts/libs/Bech32.sol\":{\"keccak256\":\"0x14618323a0efe7586c20906a2e9cee7ad63baa976ff231c57f7f2d7d3707fb8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a19f05fe84047a7a6d3d6fc39972b432e6e536aa70472386a9d7a6d9aab64a64\",\"dweb:/ipfs/QmcHwUY66yjiotRH4Q3kbRvSzcHyLQ1yHL3KbtQKiMhtZE\"]},\"project:/contracts/libs/Secp256k1.sol\":{\"keccak256\":\"0xbe686002da5004ff39dd70709f3820eba2afe9323ae9cb894009c161e4b1a666\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fab91775216de0707cea9ad285b10be09127461a13432fea358bf9cb2a0c2e\",\"dweb:/ipfs/QmeRUGsgstnM4hxM9hpkBf3L6cE5btirEaowcMxmuw3utj\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x1d446c3e534e40e676d1763bfb2897fadfac8afed904ab757843d7d6770b0a6c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://338fb1073f17d64e8d31bfe492d9475ce906788ee08e6489ce30413f91dc1328\",\"dweb:/ipfs/QmPe5QX2AGTnQFjse1Xttq4ZYWwYAiXoySb5VUui3PqPhk\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0x8e07aebe2954ab3e6f2d8eceedb12db7cf915c1f3e8630f4fa9999cecb1c78ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6c54cc901183d61546e8fd15bd5ea8ef238ebc915642946071d435dd7481ea\",\"dweb:/ipfs/Qmcaqta7YjUSBbBUGqoh44bsCS6UqqoyHjBuz4qnKBShXM\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xd99308373575cc10fb7f2ceb0f6a8625f3911275c1fa27811fae498d98d03d97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4909a999d7b660a2dc54ca957b6eccfa523e2765fc4d6a2574dee7d5cd67b43\",\"dweb:/ipfs/QmWGQT4KDcfSFe1hcHVoWx6E4PhYMaod5iLpJCWBEeShzh\"]},\"project:/contracts/patterns/Clonable.sol\":{\"keccak256\":\"0x9a2dbc814306f60263fe736b88aeabc44fc241d3bed132e8dd76a3684dd825f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e665de5be06c9227c49f9466d24f798d4bed1a2db66d4d1368dcd9fc663c1b3a\",\"dweb:/ipfs/QmRjY2CHTGp1eyi9XPeTKr4WnPCzXbtk2285kdy2bJVCYA\"]},\"project:/contracts/patterns/Initializable.sol\":{\"keccak256\":\"0xaac470e87f361cf15d68d1618d6eb7d4913885d33ccc39c797841a9591d44296\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef3760b2039feda8715d4bd9f8de8e3885f25573d12ba92f52d626ba880a08bf\",\"dweb:/ipfs/QmP2mfHPBKkjTAKft95sPDb4PBsjfmAwc47Kdcv3xYSf3g\"]},\"project:/contracts/patterns/Ownable.sol\":{\"keccak256\":\"0x494bda32f9a218d9c33ea82112129c0933ab52f57eabfbf0d14a8742a3370800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c4cf04ebb052fed9d15cf93ff4523955ee311aa4425ee85f0e80b4489c94e76\",\"dweb:/ipfs/QmfMf4WD7woTaQSTbJxxoan2aXSeY7ovY5NoipSBw5rMPK\"]},\"project:/contracts/patterns/Ownable2Step.sol\":{\"keccak256\":\"0x45ed9d1f98e2a7a5bd1a7040dbd4292f1458fa1cb212d0143718684efa436bd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45d347c5ef492b33dcf3953bb3911fe7160a6c812e69ed84d2511f0847e19229\",\"dweb:/ipfs/QmZp3icE2gQBoJp8KorWC1GfGC8mK29sK9fEveKRMNCY1U\"]}},\"version\":1}",
  "bytecode": "0x60e060405230608052348015610013575f5ffd5b506040516142ab3803806142ab83398101604081905261003291610580565b806001600160a01b03811661006157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006a81610429565b506101425f836001600160a01b03163b1180156101095750637cd906ed60e11b636d11bc5160e11b186001600160e01b031916836001600160a01b031663adb7c3f76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100fd91906105b8565b6001600160e01b031916145b60408051808201909152601581527f756e636f6d706c69616e74205769744f7261636c6500000000000000000000006020820152610445565b816001600160a01b031660c0816001600160a01b0316815250505f826001600160a01b0316637b1039996040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd91906105e6565b9050806001600160a01b0316636bd046346102a36040518060200160405280856001600160a01b0316639eb3ab1f60025f6001600160401b0381111561020557610205610601565b60405190808252806020026020018201604052801561023e57816020015b61022b610545565b8152602001906001900390816102235790505b506040518363ffffffff1660e01b815260040161025c929190610657565b6020604051808303815f875af1158015610278573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029c9190610737565b9052610457565b6040805180820182526002815281515f808252602082810190945291928301916102ef565b604080518082019091525f8152606060208201528152602001906001900390816102c85790505b509052604080518082018252600b815281515f8082526020828101909452919283019161033e565b604080518082019091525f8152606060208201528152602001906001900390816103175790505b508152506040518463ffffffff1660e01b8152600401610360939291906107f5565b6020604051808303815f875af115801561037c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103a09190610737565b60a05250507f43025ad356942e949bc1eab02ffb42d0642f59c8829febfec0169ebcda39070080547f43025ad356942e949bc1eab02ffb42d0642f59c8829febfec0169ebcda3907018054600160a81b61ffff60a01b1990911617905564ffffffffff600160681b03600160b81b0319166d030000000000000000000a00c350179055506109b2565b600180546001600160a01b031916905561044281610498565b50565b8161045357610453816104e7565b5050565b6060602060018360405160200161047093929190610861565b60405160208183030381529060405280602001905181019061049291906108a2565b92915050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051808201909152600f81526e57697452616e646f6d6e657373563360881b60208201528160405160200161051f929190610980565b60408051601f198184030181529082905262461bcd60e51b8252610058916004016109a0565b60405180604001604052806002905b60608152602001906001900390816105545790505090565b6001600160a01b0381168114610442575f5ffd5b5f5f60408385031215610591575f5ffd5b825161059c8161056c565b60208401519092506105ad8161056c565b809150509250929050565b5f602082840312156105c8575f5ffd5b81516001600160e01b0319811681146105df575f5ffd5b9392505050565b5f602082840312156105f6575f5ffd5b81516105df8161056c565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f6005841061066857610668610615565b83825260a060208301525f60a083015260c060408301525f60c083015260e0820160e06060840152808451808352610100850191506101008160051b8601019250602086015f5b8281101561070f5786850360ff19018452815185604081015f5b60028110156106f75788820383526106e2828551610629565b602094850194939093019291506001016106c9565b509650505060209384019391909101906001016106af565b50505050828103608084015260018152600160ff1b6020820152604081015b95945050505050565b5f60208284031215610747575f5ffd5b5051919050565b5f604083018251600c811061076557610765610615565b84526020838101516040828701528051928390526060600584901b870181019391909201918601905f5b818110156107e957878503605f1901835283518051600a81106107b4576107b4610615565b8087525060208101519050604060208701526107d36040870182610629565b955050602093840193929092019160010161078f565b50929695505050505050565b606080825284519082018190525f9060208601906080840190835b8181101561082e578351835260209384019390920191600101610810565b50508381036020850152610842818761074e565b9150508281036040840152610857818561074e565b9695505050505050565b83815260ff831660208201526060810160408201835f5b6001811015610897578151835260209283019290910190600101610878565b505050949350505050565b5f602082840312156108b2575f5ffd5b81516001600160401b038111156108c7575f5ffd5b8201601f810184136108d7575f5ffd5b80516001600160401b038111156108f0576108f0610601565b604051600582901b90603f8201601f191681016001600160401b038111828210171561091e5761091e610601565b60405291825260208184018101929081018784111561093b575f5ffd5b6020850194505b8385101561095e57845180825260209586019590935001610942565b509695505050505050565b5f81518060208401855e5f93019283525090919050565b5f61098b8285610969565b6101d160f51b815261072e6002820185610969565b602081525f6105df6020830184610629565b60805160a05160c05161387b610a305f395f81816103000152818161041c015281816109ea01528181610e0e0152818161173b01528181611a5901528181611d770152611f3501525f81816105dd01528181610e3e0152611e0401525f818161045a015281816116750152818161226a0152612317015261387b5ff3fe608060405260043610610212575f3560e01c80638f26168411610117578063bff852fa1161009f578063d9ecdfa61161006e578063d9ecdfa614610781578063de0958ac14610795578063e30c3978146107b4578063e5117e63146107c8578063f2fde38b146107e75761024f565b8063bff852fa146106e4578063c0248bf114610724578063cdd02a3014610743578063d6f29e81146107625761024f565b8063a3252f68116100e6578063a3252f6814610601578063a60ee26814610645578063a769cfba14610664578063adb7c3f7146106af578063b4fd7296146106d05761024f565b80638f261684146105885780639bc86fec1461059c578063a04daef0146105bb578063a310a6bc146105cf5761024f565b806351cb149d1161019a57806376fa9d201161016957806376fa9d20146104ee57806379ba50971461051a5780638124b78e1461052e57806382b1c1741461054d5780638da5cb5b1461056c5761024f565b806351cb149d1461047e578063699b328a146104a5578063715018a6146104bb57806372587321146104cf5761024f565b806317f45487116101e157806317f454871461037b5780631ab79a37146103c257806338332c5c146103e157806347a10e56146104005780635001f3b51461044c5761024f565b8063032698a5146102b65780631014d375146102f25780631058655914610338578063158ef93e146103675761024f565b3661024f5761024d604051806040016040528060158152602001741b9bc81d1c985b9cd9995c9cc81858d8d95c1d1959605a1b815250610806565b005b61024d61025f5f3560f81c61086d565b61026f60ff5f3560f01c1661086d565b61027f60ff5f3560e81c1661086d565b61028f60ff5f3560e01c1661086d565b6040516020016102a29493929190612ff6565b604051602081830303815290604052610806565b3480156102c1575f5ffd5b506102d56102d0366004613042565b610959565b6040516001600160401b0390911681526020015b60405180910390f35b3480156102fd575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016102e9565b348015610343575f5ffd5b50610357610352366004613059565b610969565b60405190151581526020016102e9565b348015610372575f5ffd5b506103576109c8565b348015610386575f5ffd5b5061039a610395366004613042565b6109e4565b604080519485526001600160401b0390931660208501529183015260608201526080016102e9565b3480156103cd575f5ffd5b5061024d6103dc36600461308a565b610a96565b3480156103ec575f5ffd5b506103206103fb3660046130b7565b610ac7565b34801561040b575f5ffd5b5061035761041a3660046130f5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b348015610457575f5ffd5b507f0000000000000000000000000000000000000000000000000000000000000000610320565b348015610489575f5ffd5b50610492610dc9565b60405161ffff90911681526020016102e9565b6104ad610de6565b6040519081526020016102e9565b3480156104c6575f5ffd5b5061024d611122565b3480156104da575f5ffd5b5061024d6104e9366004613122565b611135565b3480156104f9575f5ffd5b5061050d610508366004613042565b611318565b6040516102e99190613169565b348015610525575f5ffd5b5061024d611488565b348015610539575f5ffd5b506103206105483660046130f5565b611490565b348015610558575f5ffd5b506104ad610567366004613042565b6115db565b348015610577575f5ffd5b505f546001600160a01b0316610320565b348015610593575f5ffd5b506104ad611627565b3480156105a7575f5ffd5b506103576105b6366004613042565b611646565b3480156105c6575f5ffd5b5061035761166a565b3480156105da575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006104ad565b34801561060c575f5ffd5b5061062061061b366004613042565b61169a565b604080516001600160401b0390941684526020840192909252908201526060016102e9565b348015610650575f5ffd5b506104ad61065f366004613042565b611737565b34801561066f575f5ffd5b50610678611815565b6040805162ffffff95909516855261ffff938416602086015291909216908301526001600160401b031660608201526080016102e9565b3480156106ba575f5ffd5b50604051634518cc8b60e11b81526020016102e9565b3480156106db575f5ffd5b50610320611876565b3480156106ef575f5ffd5b5060408051808201909152600f81526e57697452616e646f6d6e657373563360881b60208201525b6040516102e991906131bd565b34801561072f575f5ffd5b506104ad61073e366004613042565b611891565b34801561074e575f5ffd5b5061024d61075d3660046131ee565b6118e9565b34801561076d575f5ffd5b5061024d61077c366004613241565b6119f3565b34801561078c575f5ffd5b50610717611d73565b3480156107a0575f5ffd5b506104ad6107af366004613042565b611e7f565b3480156107bf575f5ffd5b50610320611ef9565b3480156107d3575f5ffd5b506107176107e2366004613042565b611f0c565b3480156107f2575f5ffd5b5061024d6108013660046130f5565b611fd3565b60408051808201909152600f81526e57697452616e646f6d6e657373563360881b60208201528160405160200161083e9291906132b6565b60408051601f198184030181529082905262461bcd60e51b8252610864916004016131bd565b60405180910390fd5b6040805160028082528183019092526060915f91906020820181803683370190505090505f61089d60108561331b565b6108a890603061333c565b90505f6108b6601086613355565b6108c190603061333c565b905060398260ff1611156108dd576108da60078361333c565b91505b60398160ff1611156108f7576108f460078261333c565b90505b8160f81b835f8151811061090d5761090d613376565b60200101906001600160f81b03191690815f1a9053508060f81b8360018151811061093a5761093a613376565b60200101906001600160f81b03191690815f1a90535091949350505050565b5f61096382611fe7565b92915050565b5f61097383611646565b80156109c1575082826040516020016109a09291909182526001600160c01b031916602082015260400190565b604051602081830303815290604052805190602001206109bf846115db565b145b9392505050565b5f5f6109d261212c565b54600160681b900461ffff1611919050565b5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633fa59576610a2087611fe7565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401608060405180830381865afa158015610a62573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a86919061338a565b9298909750909550909350915050565b610a9e612150565b80610aa761212c565b60010160146101000a81548161ffff021916908361ffff16021790555050565b5f610ad061166a565b610b175760405162461bcd60e51b8152602060048201526018602482015277436c6f6e61626c653a206f6e6c79206f6e20636c6f6e657360401b6044820152606401610864565b5f610b2061217c565b805490915060ff600160401b82041615906001600160401b03165f81158015610b465750825b90505f826001600160401b03166001148015610b615750303b155b905081158015610b6f575080155b15610b8d5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610bb757845460ff60401b1916600160401b1785555b60408051808201909152600c81526b3d32b9379031bab930ba37b960a11b6020820152610bf0906001600160a01b038a161515906121a4565b610bf9886121b2565b610c605f610c0d60608a0160408b0161308a565b61ffff16118015610c325750607f610c2b60608a0160408b0161308a565b61ffff1611155b6040518060400160405280601081526020016f696e76616c69642073657474696e677360801b8152506121a4565b610c6d60208801886133c7565b610c7561212c565b805462ffffff191662ffffff92909216919091179055610c9b604088016020890161308a565b610ca361212c565b805461ffff9290921663010000000264ffff00000019909216919091179055610cd2606088016040890161308a565b610cda61212c565b805461ffff92909216600160681b0261ffff60681b19909216919091179055610d0960808801606089016133e0565b610d1161212c565b80546001600160401b0392909216600160781b0267ffffffffffffffff60781b19909216919091179055610d4b60a088016080890161308a565b610d5361212c565b60010160146101000a81548161ffff021916908361ffff1602179055503095508315610db957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b905090565b5f610dd261212c565b60010154600160a01b900461ffff16919050565b5f804380610df261212c565b54600160281b90046001600160401b031610156110ba573492507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633b3195b7347f00000000000000000000000000000000000000000000000000000000000000006040518060600160405280602261ffff168152602001610e7b61212c565b54600160681b900461ffff168152602001610e9461212c565b54600160781b90046001600160401b031690526040805180820190915230815260208101610ec061212c565b5462ffffff9081169091526040805160e088901b6001600160e01b03191681526004810195909552835161ffff908116602487015260208086015190911660448701529301516001600160401b0316606485015281516001600160a01b031660848501529101511660a482015260c40160206040518083038185885af1158015610f4c573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f7191906133fb565b91505f610f7c61212c565b54600160281b90046001600160401b031690505f610f9861212c565b5f8481526003919091016020526040902080546001600160401b0380871667ffffffffffffffff1992831617835560018301805491861691909216179055905082610fe161212c565b5f8481526003919091016020526040902080546001600160401b0392909216600160801b0267ffffffffffffffff60801b199092169190911790558261102561212c565b80546001600160401b0392909216600160281b026cffffffffffffffff0000000000199092169190911790558261105a61212c565b6001600160401b0386165f81815260029290920160209081526040928390209390935581514381529283015233917fd6df60dd4c94a4102a8b1bfbafbe6dda374d30909a84fb32305fc97d91f92f66910160405180910390a250506110e0565b6110c261212c565b5f82815260039190910160205260409020546001600160401b031691505b3483101561111d57336108fc6110f68534613412565b6040518115909202915f818181858888f1935050505015801561111b573d5f5f3e3d5ffd5b505b505090565b61112a612150565b6111335f6121b2565b565b61113d61166a565b6111845760405162461bcd60e51b8152602060048201526018602482015277436c6f6e61626c653a206f6e6c79206f6e20636c6f6e657360401b6044820152606401610864565b61118c612150565b6001600160a01b038216158015906111ad57505f826001600160a01b03163b115b156112e357816001600160a01b031663ae5ce03e6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561120c575060408051601f3d908101601f1916820190925261120991810190613425565b60015b611245573d808015611239576040519150601f19603f3d011682016040523d82523d5f602084013e61123e565b606091505b50506112e3565b306001600160a01b038216036112e15761129361c35062ffffff168362ffffff1610156040518060400160405280600d81526020016c1b1bddc819d85cc81b1a5b5a5d609a1b8152506121a4565b8261129c61212c565b60010180546001600160a01b0319166001600160a01b0392909216919091179055816112c661212c565b805462ffffff191662ffffff92909216919091179055505050565b505b6113146040518060400160405280601081526020016f34b73b30b634b21031b7b739bab6b2b960811b815250610806565b5050565b5f5f61132261212c565b5f84815260039190910160205260408120915083900361134457505f92915050565b80546001600160401b03165f03611361576109c161050884611e7f565b80546001600160401b031667fffffffffffffffe19016113b6578054600160801b90046001600160401b0316156113ad5780546109c190600160801b90046001600160401b0316611318565b50600392915050565b8054600160c01b900460c01b6001600160c01b031916611459575f6113d961212c565b60010154600160a01b900461ffff1611801561141457506113f861212c565b6001015461141190600160a01b900461ffff1684613440565b43115b801561143057508054600160801b90046001600160401b031615155b156114505780546109c190600160801b90046001600160401b0316611318565b50600192915050565b8054600160401b90046001600160401b03164310156114795760046109c1565b60029392505050565b50919050565b6111336121cb565b5f611499612246565b6001600160a01b03166338332c5c836040518060a001604052806114bb61212c565b5462ffffff1681526020016114ce61212c565b546301000000900461ffff1681526020016114e761212c565b54600160681b900461ffff16815260200161150061212c565b54600160781b90046001600160401b0316815260200161151e61212c565b60010154600160a01b900461ffff9081169091526040805160e086901b6001600160e01b03191681526001600160a01b039094166004850152825162ffffff1660248501526020830151821660448501528201518116606484015260608201516001600160401b031660848401526080909101511660a482015260c4016020604051808303815f875af11580156115b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109639190613425565b5f816115e683612379565b60405160200161160a9291909182526001600160c01b031916602082015260400190565b604051602081830303815290604052805190602001209050919050565b5f61163061212c565b54600160281b90046001600160401b0316919050565b5f600261165283611318565b600481111561166357611663613155565b1492915050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141590565b5f5f5f5f6116a661212c565b5f86815260039190910160205260408120805460018201546001600160401b0391821697509193501690036116e3576116de85611891565b6116f2565b60018101546001600160401b03165b8154909350600160801b90046001600160401b03165f0361171b5761171685611e7f565b61172e565b8054600160801b90046001600160401b03165b93959294505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166305e742ef8461177161212c565b5460405160e084901b6001600160e01b0319168152600481019290925262ffffff166024820152604401602060405180830381865afa1580156117b6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117da91906133fb565b905060646117e661212c565b546117fd906301000000900461ffff166064613453565b61180b9061ffff168361346d565b6109c19190613484565b5f5f5f5f61182161212c565b5462ffffff1661182f61212c565b546301000000900461ffff1661184361212c565b54600160681b900461ffff1661185761212c565b5492979196509450600160781b9091046001600160401b031692509050565b5f61187f61212c565b600101546001600160a01b0316919050565b5f5f61189b61212c565b54600160281b90046001600160401b03169050808311610963576118e4836118c161212c565b5f84815260039190910160205260409020600101546001600160401b031661256b565b6109c1565b6118f1612150565b61194b61c35062ffffff86161080159061190e57505f8361ffff16115b801561191f5750607f8361ffff1611155b6040518060400160405280600e81526020016d696e76616c696420706172616d7360901b8152506121a4565b8361195461212c565b805462ffffff191662ffffff929092169190911790558261197361212c565b805461ffff9290921663010000000264ffff000000199092169190911790558161199b61212c565b805461ffff92909216600160681b0261ffff60681b19909216919091179055806119c361212c565b80546001600160401b0392909216600160781b0267ffffffffffffffff60781b1990921691909117905550505050565b5f6119fc61212c565b6002015f856001600160401b03166001600160401b031681526020019081526020015f20549050611a545f82116040518060400160405280600d81526020016c696e76616c696420717565727960981b8152506121a4565b611aaf7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146040518060400160405280600e81526020016d696e76616c6964206f7261636c6560901b8152506121a4565b5f611ab861212c565b5f838152600391909101602052604081209150611ad784860186613663565b8254909150600160c01b900460c01b6001600160c01b031916158015611b1257505f611b0161212c565b60010154600160a01b900461ffff16115b8015611b3d5750611b2161212c565b60010154611b3a90600160a01b900461ffff1684613440565b43115b8015611b5957508154600160801b90046001600160401b031615155b15611b7b57815467ffffffffffffffff19166001600160401b03178255611d6b565b5f80825160ff811115611b9057611b90613155565b03611bd45782546001600160401b03888116911614611bc457825467ffffffffffffffff19166001600160401b0388161783555b611bcd826125a2565b9050611bed565b825467ffffffffffffffff19166001600160401b031783555b6060820151835477ffffffffffffffff0000000000000000ffffffffffffffff16600160401b6001600160401b03909216919091026001600160c01b031617600160c01b60c083901c021783555f611c4361212c565b600101546001600160a01b031690508015611d1957606083015160808401516040808601519051638eaa865f60e01b81526001600160c01b0319861660048201526024810189905260448101939093526001600160401b03909116606483015260848201526001600160a01b03821690638eaa865f9060a4015f604051808303815f87803b158015611cd3575f5ffd5b505af1925050508015611ce4575060015b611d19573d808015611d11576040519150601f19603f3d011682016040523d82523d5f602084013e611d16565b606091505b50505b6060808401516040805188815260208101929092526001600160c01b03198516908201527fe7af3c23f23afb584501c994ac9edf8c438702ea485979a2aacb3e3b24f260b9910160405180910390a150505b505050505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637b1039996040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dd1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611df59190613425565b6040516322889dd960e21b81527f000000000000000000000000000000000000000000000000000000000000000060048201526001600160a01b039190911690638a227764906024015f60405180830381865afa158015611e58573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610dc49190810190613750565b5f611e8861212c565b5f83815260039190910160205260409020546001600160401b031615611ed757611eb061212c565b5f8381526003919091016020526040902054600160801b90046001600160401b0316610963565b61096382611ee361212c565b54600160281b90046001600160401b0316612685565b5f610dc46001546001600160a01b031690565b60605f611f1883611318565b90506003816004811115611f2e57611f2e613155565b03611482577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c2581348611f6b85611fe7565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526024015f60405180830381865afa158015611fac573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109c19190810190613750565b611fdb612150565b611fe4816126ea565b50565b5f5f611ff161212c565b5f8481526003919091016020526040812080549092506001600160401b03169003612027576109c161202284611e7f565b611fe7565b80546001600160401b031667fffffffffffffffe1901612082578054600160801b90046001600160401b03166120675780546001600160401b03166109c1565b80546109c190600160801b90046001600160401b0316611fe7565b8054600160c01b900460c01b6001600160c01b03191661211c575f6120a561212c565b60010154600160a01b900461ffff161180156120e057506120c461212c565b600101546120dd90600160a01b900461ffff1684613440565b43115b80156120fc57508054600160801b90046001600160401b031615155b1561211c5780546109c190600160801b90046001600160401b0316611fe7565b546001600160401b031692915050565b7f43025ad356942e949bc1eab02ffb42d0642f59c8829febfec0169ebcda39070090565b5f546001600160a01b031633146111335760405163118cdaa760e01b8152336004820152602401610864565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610963565b816113145761131481610806565b600180546001600160a01b0319169055611fe48161271b565b33806121d5611ef9565b6001600160a01b03161461223d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610864565b611fe4816121b2565b5f5f6122ac604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81527f000000000000000000000000000000000000000000000000000000000000000060601b60148201526e5af43d82803e903d91602b57fd5bf360881b602882015290565b90506037815ff091506001600160a01b03821661230b5760405162461bcd60e51b815260206004820152601760248201527f436c6f6e61626c653a20435245415445206661696c65640000000000000000006044820152606401610864565b6001600160a01b0382167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316336001600160a01b03167ff376596be5039d6b2fb36fead4c8a370eae426e790a869be8db074ab608cc24860405160405180910390a45090565b5f5f61238361212c565b5f8481526003919091016020526040812080549092506001600160401b031690036123b9576109c16123b484611e7f565b612379565b80546001600160401b031667fffffffffffffffe190161244057805460408051808201909152601781527f6661696c65643a2072657472792072616e646f6d697a65000000000000000000602082015261242591600160801b90046001600160401b03161515906121a4565b80546109c190600160801b90046001600160401b0316612379565b8054600160c01b900460c01b6001600160c01b031916612511575f61246361212c565b60010154600160a01b900461ffff1611801561249e575061248261212c565b6001015461249b90600160a01b900461ffff1684613440565b43115b156124da5780546040805160608101909152602880825261242592600160801b90046001600160401b03161515919061381e60208301396121a4565b61250c6040518060400160405280601181526020017070656e64696e672072616e646f6d697a6560781b815250610806565b611482565b805461255a906001600160401b03600160401b9091041643811115906125369061276a565b604051602001612546919061379c565b6040516020818303038152906040526121a4565b54600160c01b900460c01b92915050565b5f818311611482576118e48361257f61212c565b5f85815260039190910160205260409020600101546001600160401b031661256b565b5f8160036125af826128be565b1580156125e157508060138111156125c9576125c9613155565b826020015160138111156125df576125df613155565b145b61262d5760405162461bcd60e51b815260206004820152601760248201527f63626f723a2063616e6e6f7420666574636820646174610000000000000000006044820152606401610864565b61264261263d8560a001516128cb565b612a14565b92506126518260a00151612a20565b8260200190601381111561266757612667613155565b9081601381111561267a5761267a613155565b815250505050919050565b5f818310156126bd576118e48361269a61212c565b5f85815260039190910160205260409020600101546001600160401b0316612685565b6126c561212c565b5f928352600301602052506040902054600160801b90046001600160401b0316919050565b6126f2612150565b6001600160a01b03811661223d57604051631e4fbdf760e01b81525f6004820152602401610864565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051606480825260a08201909252606091905f90826020820181803683370190505090505f5b5f61279e600a876137c5565b90506127ab600a87613484565b95506127b881603061333c565b60f81b83836127c6816137d8565b9450815181106127d8576127d8613376565b60200101906001600160f81b03191690815f1a90535050845f03612792575f816001600160401b0381111561280f5761280f6132df565b6040519080825280601f01601f191660200182016040528015612839576020820181803683370190505b50905060015b8281116128b457836128518285613412565b8151811061286157612861613376565b01602001516001600160f81b0319168261287c600184613412565b8151811061288c5761288c613376565b60200101906001600160f81b03191690815f1a905350806128ac816137d8565b91505061283f565b5095945050505050565b5f610963825f0151612ae7565b60608160028060ff16826040015160ff161461290b57604080830151905161800560e51b815260ff91821660048201529082166024820152604401610864565b61291c845f01518560600151612b17565b6001600160401b03166080850181905263fffffffe19016129f0575f612949855f01518660400151612bde565b905063ffffffff80821610156129ea57845161296e9063ffffffff80841690612c8a16565b60405160200161297e91906137f0565b60405160208183030381529060405293506129a0855f01518660400151612bde565b905063ffffffff80821610156129ea57845184906129c79063ffffffff80851690612c8a16565b6040516020016129d89291906137fb565b60405160208183030381529060405293505b50612a0d565b60808401518451612a0a9163ffffffff90811690612c8a16565b92505b5050919050565b5f610963826020612d4b565b5f612a348251805151602090910151101590565b612ae2576006826040015160ff1611612a7c5760408201516502020183808360d11b9060ff1660078110612a6a57612a6a613376565b1a601381111561096357610963613155565b816040015160ff16600703612ae257816060015160ff1660141480612aa85750816060015160ff166015145b15612ab557506002919050565b6019826060015160ff1610158015612ad55750601b826060015160ff1611155b15612ae257506005919050565b919050565b5f60f08260ff811115612afc57612afc613155565b1480610963575060f18260ff81111561166357611663613155565b5f60188260ff161015612b2e575060ff8116610963565b8160ff16601803612b4c57612b4283612db8565b60ff169050610963565b8160ff16601903612b6b57612b6083612e18565b61ffff169050610963565b8160ff16601a03612b8c57612b7f83612e83565b63ffffffff169050610963565b8160ff16601b03612ba757612ba083612ee1565b9050610963565b8160ff16601f03612bc057506001600160401b03610963565b604051636d785b1360e01b815260ff83166004820152602401610864565b5f5f612be984612db8565b90508060ff1660ff03612c06576001600160401b03915050610963565b612c138482601f16612b17565b91506001600160401b0380831610612c4957604051636d785b1360e01b81526001600160401b0383166004820152602401610864565b60ff83166007600583901c1614612c835760405161800560e51b81526007600583901c16600482015260ff84166024820152604401610864565b5092915050565b6060818360200151612c9c9190613440565b83515180821115612cca576040516363a056dd60e01b81526004810183905260248101829052604401610864565b836001600160401b03811115612ce257612ce26132df565b6040519080825280601f01601f191660200182016040528015612d0c576020820181803683370190505b5092508315612d43578451602080870151908183018101908601612d3181838a612f3f565b612d3d89896001612f85565b50505050505b505092915050565b5f60208260ff161115612d6057612d60613809565b5f8260ff16845111612d73578351612d78565b8260ff165b90505f5b81811015612d435780600802858281518110612d9a57612d9a613376565b01602001516001600160f81b031916901c9290921791600101612d7c565b5f8160200151825f01515180821115612dee576040516363a056dd60e01b81526004810183905260248101829052604401610864565b8351602085018051808301600101519550908190612e0b826137d8565b8152505050505050919050565b5f81602001516002612e2a9190613440565b82515180821115612e58576040516363a056dd60e01b81526004810183905260248101829052604401610864565b8351602085018051600281840181015196509091612e768284613440565b9052509395945050505050565b5f81602001516004612e959190613440565b82515180821115612ec3576040516363a056dd60e01b81526004810183905260248101829052604401610864565b8351602085018051600481840181015196509091612e768284613440565b5f81602001516008612ef39190613440565b82515180821115612f21576040516363a056dd60e01b81526004810183905260248101829052604401610864565b8351602085018051600881840181015196509091612e768284613440565b5b60208110612f5f578151835260209283019290910190601f1901612f40565b8015612f80578151835160208390036101000a5f1901801990921691161783525b505050565b5f82845f01515180821115612fb7576040516363a056dd60e01b81526004810183905260248101829052604401610864565b8315612fcf576020860151612fcc9086613440565b94505b5050505060209190910181905290565b5f81518060208401855e5f93019283525090919050565b720dcdee840d2dae0d8cadacadce8cac8744060f606b1b81525f61303861303261302c613026601386018a612fdf565b88612fdf565b86612fdf565b84612fdf565b9695505050505050565b5f60208284031215613052575f5ffd5b5035919050565b5f5f6040838503121561306a575f5ffd5b50508035926020909101359150565b803561ffff81168114612ae2575f5ffd5b5f6020828403121561309a575f5ffd5b6109c182613079565b6001600160a01b0381168114611fe4575f5ffd5b5f5f82840360c08112156130c9575f5ffd5b83356130d4816130a3565b925060a0601f19820112156130e7575f5ffd5b506020830190509250929050565b5f60208284031215613105575f5ffd5b81356109c1816130a3565b803562ffffff81168114612ae2575f5ffd5b5f5f60408385031215613133575f5ffd5b823561313e816130a3565b915061314c60208401613110565b90509250929050565b634e487b7160e01b5f52602160045260245ffd5b602081016005831061318957634e487b7160e01b5f52602160045260245ffd5b91905290565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6109c1602083018461318f565b6001600160401b0381168114611fe4575f5ffd5b8035612ae2816131cf565b5f5f5f5f60808587031215613201575f5ffd5b61320a85613110565b935061321860208601613079565b925061322660408601613079565b91506060850135613236816131cf565b939692955090935050565b5f5f5f60408486031215613253575f5ffd5b8335925060208401356001600160401b0381111561326f575f5ffd5b8401601f8101861361327f575f5ffd5b80356001600160401b03811115613294575f5ffd5b8660208284010111156132a5575f5ffd5b939660209190910195509293505050565b5f6132c18285612fdf565b6101d160f51b81526132d66002820185612fdf565b95945050505050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60ff83168061332d5761332d6132f3565b8060ff84160491505092915050565b60ff818116838216019081111561096357610963613307565b5f60ff831680613367576133676132f3565b8060ff84160691505092915050565b634e487b7160e01b5f52603260045260245ffd5b5f5f5f5f6080858703121561339d575f5ffd5b84516020860151604087015191955093506133b7816131cf565b6060959095015193969295505050565b5f602082840312156133d7575f5ffd5b6109c182613110565b5f602082840312156133f0575f5ffd5b81356109c1816131cf565b5f6020828403121561340b575f5ffd5b5051919050565b8181038181111561096357610963613307565b5f60208284031215613435575f5ffd5b81516109c1816130a3565b8082018082111561096357610963613307565b61ffff818116838216019081111561096357610963613307565b808202811582820484141761096357610963613307565b5f82613492576134926132f3565b500490565b60405160c081016001600160401b03811182821017156134b9576134b96132df565b60405290565b604080519081016001600160401b03811182821017156134b9576134b96132df565b604051601f8201601f191681016001600160401b0381118282101715613509576135096132df565b604052919050565b803560148110612ae2575f5ffd5b5f6001600160401b03821115613537576135376132df565b50601f01601f191660200190565b803560ff81168114612ae2575f5ffd5b5f60c08284031215613565575f5ffd5b61356d613497565b905081356001600160401b03811115613584575f5ffd5b820160408185031215613595575f5ffd5b61359d6134bf565b81356001600160401b038111156135b2575f5ffd5b8201601f810186136135c2575f5ffd5b80356135d56135d08261351f565b6134e1565b8181528760208385010111156135e9575f5ffd5b816020840160208301375f602092820183015283529283013582840152508252613614908301613545565b602082015261362560408301613545565b604082015261363660608301613545565b6060820152613647608083016131e3565b608082015261365860a083016131e3565b60a082015292915050565b5f60208284031215613673575f5ffd5b81356001600160401b03811115613688575f5ffd5b820160c08185031215613699575f5ffd5b6136a1613497565b813561010081106136b0575f5ffd5b81526136be60208301613511565b602082015260408281013590820152606080830135908201526136e3608083016131e3565b608082015260a08201356001600160401b03811115613700575f5ffd5b61370c86828501613555565b60a083015250949350505050565b5f6137276135d08461351f565b905082815283838301111561373a575f5ffd5b8282602083015e5f602084830101529392505050565b5f60208284031215613760575f5ffd5b81516001600160401b03811115613775575f5ffd5b8201601f81018413613785575f5ffd5b6137948482516020840161371a565b949350505050565b7466696e616c697a696e67206f6e20626c6f636b202360581b81525f6109c16015830184612fdf565b5f826137d3576137d36132f3565b500690565b5f600182016137e9576137e9613307565b5060010190565b5f6109c18284612fdf565b5f6137946130328386612fdf565b634e487b7160e01b5f52600160045260245ffdfe64656c617965643a206b6565702077616974696e67206f722072657472792072616e646f6d697a65a26469706673582212209a26047e5b9bc70a130a82ce2c709abdb12bbffd53234ac4251a78fc5060829c64736f6c634300081e0033",
  "deployedBytecode": "0x608060405260043610610212575f3560e01c80638f26168411610117578063bff852fa1161009f578063d9ecdfa61161006e578063d9ecdfa614610781578063de0958ac14610795578063e30c3978146107b4578063e5117e63146107c8578063f2fde38b146107e75761024f565b8063bff852fa146106e4578063c0248bf114610724578063cdd02a3014610743578063d6f29e81146107625761024f565b8063a3252f68116100e6578063a3252f6814610601578063a60ee26814610645578063a769cfba14610664578063adb7c3f7146106af578063b4fd7296146106d05761024f565b80638f261684146105885780639bc86fec1461059c578063a04daef0146105bb578063a310a6bc146105cf5761024f565b806351cb149d1161019a57806376fa9d201161016957806376fa9d20146104ee57806379ba50971461051a5780638124b78e1461052e57806382b1c1741461054d5780638da5cb5b1461056c5761024f565b806351cb149d1461047e578063699b328a146104a5578063715018a6146104bb57806372587321146104cf5761024f565b806317f45487116101e157806317f454871461037b5780631ab79a37146103c257806338332c5c146103e157806347a10e56146104005780635001f3b51461044c5761024f565b8063032698a5146102b65780631014d375146102f25780631058655914610338578063158ef93e146103675761024f565b3661024f5761024d604051806040016040528060158152602001741b9bc81d1c985b9cd9995c9cc81858d8d95c1d1959605a1b815250610806565b005b61024d61025f5f3560f81c61086d565b61026f60ff5f3560f01c1661086d565b61027f60ff5f3560e81c1661086d565b61028f60ff5f3560e01c1661086d565b6040516020016102a29493929190612ff6565b604051602081830303815290604052610806565b3480156102c1575f5ffd5b506102d56102d0366004613042565b610959565b6040516001600160401b0390911681526020015b60405180910390f35b3480156102fd575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016102e9565b348015610343575f5ffd5b50610357610352366004613059565b610969565b60405190151581526020016102e9565b348015610372575f5ffd5b506103576109c8565b348015610386575f5ffd5b5061039a610395366004613042565b6109e4565b604080519485526001600160401b0390931660208501529183015260608201526080016102e9565b3480156103cd575f5ffd5b5061024d6103dc36600461308a565b610a96565b3480156103ec575f5ffd5b506103206103fb3660046130b7565b610ac7565b34801561040b575f5ffd5b5061035761041a3660046130f5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b348015610457575f5ffd5b507f0000000000000000000000000000000000000000000000000000000000000000610320565b348015610489575f5ffd5b50610492610dc9565b60405161ffff90911681526020016102e9565b6104ad610de6565b6040519081526020016102e9565b3480156104c6575f5ffd5b5061024d611122565b3480156104da575f5ffd5b5061024d6104e9366004613122565b611135565b3480156104f9575f5ffd5b5061050d610508366004613042565b611318565b6040516102e99190613169565b348015610525575f5ffd5b5061024d611488565b348015610539575f5ffd5b506103206105483660046130f5565b611490565b348015610558575f5ffd5b506104ad610567366004613042565b6115db565b348015610577575f5ffd5b505f546001600160a01b0316610320565b348015610593575f5ffd5b506104ad611627565b3480156105a7575f5ffd5b506103576105b6366004613042565b611646565b3480156105c6575f5ffd5b5061035761166a565b3480156105da575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000006104ad565b34801561060c575f5ffd5b5061062061061b366004613042565b61169a565b604080516001600160401b0390941684526020840192909252908201526060016102e9565b348015610650575f5ffd5b506104ad61065f366004613042565b611737565b34801561066f575f5ffd5b50610678611815565b6040805162ffffff95909516855261ffff938416602086015291909216908301526001600160401b031660608201526080016102e9565b3480156106ba575f5ffd5b50604051634518cc8b60e11b81526020016102e9565b3480156106db575f5ffd5b50610320611876565b3480156106ef575f5ffd5b5060408051808201909152600f81526e57697452616e646f6d6e657373563360881b60208201525b6040516102e991906131bd565b34801561072f575f5ffd5b506104ad61073e366004613042565b611891565b34801561074e575f5ffd5b5061024d61075d3660046131ee565b6118e9565b34801561076d575f5ffd5b5061024d61077c366004613241565b6119f3565b34801561078c575f5ffd5b50610717611d73565b3480156107a0575f5ffd5b506104ad6107af366004613042565b611e7f565b3480156107bf575f5ffd5b50610320611ef9565b3480156107d3575f5ffd5b506107176107e2366004613042565b611f0c565b3480156107f2575f5ffd5b5061024d6108013660046130f5565b611fd3565b60408051808201909152600f81526e57697452616e646f6d6e657373563360881b60208201528160405160200161083e9291906132b6565b60408051601f198184030181529082905262461bcd60e51b8252610864916004016131bd565b60405180910390fd5b6040805160028082528183019092526060915f91906020820181803683370190505090505f61089d60108561331b565b6108a890603061333c565b90505f6108b6601086613355565b6108c190603061333c565b905060398260ff1611156108dd576108da60078361333c565b91505b60398160ff1611156108f7576108f460078261333c565b90505b8160f81b835f8151811061090d5761090d613376565b60200101906001600160f81b03191690815f1a9053508060f81b8360018151811061093a5761093a613376565b60200101906001600160f81b03191690815f1a90535091949350505050565b5f61096382611fe7565b92915050565b5f61097383611646565b80156109c1575082826040516020016109a09291909182526001600160c01b031916602082015260400190565b604051602081830303815290604052805190602001206109bf846115db565b145b9392505050565b5f5f6109d261212c565b54600160681b900461ffff1611919050565b5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633fa59576610a2087611fe7565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401608060405180830381865afa158015610a62573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a86919061338a565b9298909750909550909350915050565b610a9e612150565b80610aa761212c565b60010160146101000a81548161ffff021916908361ffff16021790555050565b5f610ad061166a565b610b175760405162461bcd60e51b8152602060048201526018602482015277436c6f6e61626c653a206f6e6c79206f6e20636c6f6e657360401b6044820152606401610864565b5f610b2061217c565b805490915060ff600160401b82041615906001600160401b03165f81158015610b465750825b90505f826001600160401b03166001148015610b615750303b155b905081158015610b6f575080155b15610b8d5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610bb757845460ff60401b1916600160401b1785555b60408051808201909152600c81526b3d32b9379031bab930ba37b960a11b6020820152610bf0906001600160a01b038a161515906121a4565b610bf9886121b2565b610c605f610c0d60608a0160408b0161308a565b61ffff16118015610c325750607f610c2b60608a0160408b0161308a565b61ffff1611155b6040518060400160405280601081526020016f696e76616c69642073657474696e677360801b8152506121a4565b610c6d60208801886133c7565b610c7561212c565b805462ffffff191662ffffff92909216919091179055610c9b604088016020890161308a565b610ca361212c565b805461ffff9290921663010000000264ffff00000019909216919091179055610cd2606088016040890161308a565b610cda61212c565b805461ffff92909216600160681b0261ffff60681b19909216919091179055610d0960808801606089016133e0565b610d1161212c565b80546001600160401b0392909216600160781b0267ffffffffffffffff60781b19909216919091179055610d4b60a088016080890161308a565b610d5361212c565b60010160146101000a81548161ffff021916908361ffff1602179055503095508315610db957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b905090565b5f610dd261212c565b60010154600160a01b900461ffff16919050565b5f804380610df261212c565b54600160281b90046001600160401b031610156110ba573492507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633b3195b7347f00000000000000000000000000000000000000000000000000000000000000006040518060600160405280602261ffff168152602001610e7b61212c565b54600160681b900461ffff168152602001610e9461212c565b54600160781b90046001600160401b031690526040805180820190915230815260208101610ec061212c565b5462ffffff9081169091526040805160e088901b6001600160e01b03191681526004810195909552835161ffff908116602487015260208086015190911660448701529301516001600160401b0316606485015281516001600160a01b031660848501529101511660a482015260c40160206040518083038185885af1158015610f4c573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f7191906133fb565b91505f610f7c61212c565b54600160281b90046001600160401b031690505f610f9861212c565b5f8481526003919091016020526040902080546001600160401b0380871667ffffffffffffffff1992831617835560018301805491861691909216179055905082610fe161212c565b5f8481526003919091016020526040902080546001600160401b0392909216600160801b0267ffffffffffffffff60801b199092169190911790558261102561212c565b80546001600160401b0392909216600160281b026cffffffffffffffff0000000000199092169190911790558261105a61212c565b6001600160401b0386165f81815260029290920160209081526040928390209390935581514381529283015233917fd6df60dd4c94a4102a8b1bfbafbe6dda374d30909a84fb32305fc97d91f92f66910160405180910390a250506110e0565b6110c261212c565b5f82815260039190910160205260409020546001600160401b031691505b3483101561111d57336108fc6110f68534613412565b6040518115909202915f818181858888f1935050505015801561111b573d5f5f3e3d5ffd5b505b505090565b61112a612150565b6111335f6121b2565b565b61113d61166a565b6111845760405162461bcd60e51b8152602060048201526018602482015277436c6f6e61626c653a206f6e6c79206f6e20636c6f6e657360401b6044820152606401610864565b61118c612150565b6001600160a01b038216158015906111ad57505f826001600160a01b03163b115b156112e357816001600160a01b031663ae5ce03e6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561120c575060408051601f3d908101601f1916820190925261120991810190613425565b60015b611245573d808015611239576040519150601f19603f3d011682016040523d82523d5f602084013e61123e565b606091505b50506112e3565b306001600160a01b038216036112e15761129361c35062ffffff168362ffffff1610156040518060400160405280600d81526020016c1b1bddc819d85cc81b1a5b5a5d609a1b8152506121a4565b8261129c61212c565b60010180546001600160a01b0319166001600160a01b0392909216919091179055816112c661212c565b805462ffffff191662ffffff92909216919091179055505050565b505b6113146040518060400160405280601081526020016f34b73b30b634b21031b7b739bab6b2b960811b815250610806565b5050565b5f5f61132261212c565b5f84815260039190910160205260408120915083900361134457505f92915050565b80546001600160401b03165f03611361576109c161050884611e7f565b80546001600160401b031667fffffffffffffffe19016113b6578054600160801b90046001600160401b0316156113ad5780546109c190600160801b90046001600160401b0316611318565b50600392915050565b8054600160c01b900460c01b6001600160c01b031916611459575f6113d961212c565b60010154600160a01b900461ffff1611801561141457506113f861212c565b6001015461141190600160a01b900461ffff1684613440565b43115b801561143057508054600160801b90046001600160401b031615155b156114505780546109c190600160801b90046001600160401b0316611318565b50600192915050565b8054600160401b90046001600160401b03164310156114795760046109c1565b60029392505050565b50919050565b6111336121cb565b5f611499612246565b6001600160a01b03166338332c5c836040518060a001604052806114bb61212c565b5462ffffff1681526020016114ce61212c565b546301000000900461ffff1681526020016114e761212c565b54600160681b900461ffff16815260200161150061212c565b54600160781b90046001600160401b0316815260200161151e61212c565b60010154600160a01b900461ffff9081169091526040805160e086901b6001600160e01b03191681526001600160a01b039094166004850152825162ffffff1660248501526020830151821660448501528201518116606484015260608201516001600160401b031660848401526080909101511660a482015260c4016020604051808303815f875af11580156115b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109639190613425565b5f816115e683612379565b60405160200161160a9291909182526001600160c01b031916602082015260400190565b604051602081830303815290604052805190602001209050919050565b5f61163061212c565b54600160281b90046001600160401b0316919050565b5f600261165283611318565b600481111561166357611663613155565b1492915050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141590565b5f5f5f5f6116a661212c565b5f86815260039190910160205260408120805460018201546001600160401b0391821697509193501690036116e3576116de85611891565b6116f2565b60018101546001600160401b03165b8154909350600160801b90046001600160401b03165f0361171b5761171685611e7f565b61172e565b8054600160801b90046001600160401b03165b93959294505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166305e742ef8461177161212c565b5460405160e084901b6001600160e01b0319168152600481019290925262ffffff166024820152604401602060405180830381865afa1580156117b6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117da91906133fb565b905060646117e661212c565b546117fd906301000000900461ffff166064613453565b61180b9061ffff168361346d565b6109c19190613484565b5f5f5f5f61182161212c565b5462ffffff1661182f61212c565b546301000000900461ffff1661184361212c565b54600160681b900461ffff1661185761212c565b5492979196509450600160781b9091046001600160401b031692509050565b5f61187f61212c565b600101546001600160a01b0316919050565b5f5f61189b61212c565b54600160281b90046001600160401b03169050808311610963576118e4836118c161212c565b5f84815260039190910160205260409020600101546001600160401b031661256b565b6109c1565b6118f1612150565b61194b61c35062ffffff86161080159061190e57505f8361ffff16115b801561191f5750607f8361ffff1611155b6040518060400160405280600e81526020016d696e76616c696420706172616d7360901b8152506121a4565b8361195461212c565b805462ffffff191662ffffff929092169190911790558261197361212c565b805461ffff9290921663010000000264ffff000000199092169190911790558161199b61212c565b805461ffff92909216600160681b0261ffff60681b19909216919091179055806119c361212c565b80546001600160401b0392909216600160781b0267ffffffffffffffff60781b1990921691909117905550505050565b5f6119fc61212c565b6002015f856001600160401b03166001600160401b031681526020019081526020015f20549050611a545f82116040518060400160405280600d81526020016c696e76616c696420717565727960981b8152506121a4565b611aaf7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146040518060400160405280600e81526020016d696e76616c6964206f7261636c6560901b8152506121a4565b5f611ab861212c565b5f838152600391909101602052604081209150611ad784860186613663565b8254909150600160c01b900460c01b6001600160c01b031916158015611b1257505f611b0161212c565b60010154600160a01b900461ffff16115b8015611b3d5750611b2161212c565b60010154611b3a90600160a01b900461ffff1684613440565b43115b8015611b5957508154600160801b90046001600160401b031615155b15611b7b57815467ffffffffffffffff19166001600160401b03178255611d6b565b5f80825160ff811115611b9057611b90613155565b03611bd45782546001600160401b03888116911614611bc457825467ffffffffffffffff19166001600160401b0388161783555b611bcd826125a2565b9050611bed565b825467ffffffffffffffff19166001600160401b031783555b6060820151835477ffffffffffffffff0000000000000000ffffffffffffffff16600160401b6001600160401b03909216919091026001600160c01b031617600160c01b60c083901c021783555f611c4361212c565b600101546001600160a01b031690508015611d1957606083015160808401516040808601519051638eaa865f60e01b81526001600160c01b0319861660048201526024810189905260448101939093526001600160401b03909116606483015260848201526001600160a01b03821690638eaa865f9060a4015f604051808303815f87803b158015611cd3575f5ffd5b505af1925050508015611ce4575060015b611d19573d808015611d11576040519150601f19603f3d011682016040523d82523d5f602084013e611d16565b606091505b50505b6060808401516040805188815260208101929092526001600160c01b03198516908201527fe7af3c23f23afb584501c994ac9edf8c438702ea485979a2aacb3e3b24f260b9910160405180910390a150505b505050505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637b1039996040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dd1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611df59190613425565b6040516322889dd960e21b81527f000000000000000000000000000000000000000000000000000000000000000060048201526001600160a01b039190911690638a227764906024015f60405180830381865afa158015611e58573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610dc49190810190613750565b5f611e8861212c565b5f83815260039190910160205260409020546001600160401b031615611ed757611eb061212c565b5f8381526003919091016020526040902054600160801b90046001600160401b0316610963565b61096382611ee361212c565b54600160281b90046001600160401b0316612685565b5f610dc46001546001600160a01b031690565b60605f611f1883611318565b90506003816004811115611f2e57611f2e613155565b03611482577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c2581348611f6b85611fe7565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526024015f60405180830381865afa158015611fac573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109c19190810190613750565b611fdb612150565b611fe4816126ea565b50565b5f5f611ff161212c565b5f8481526003919091016020526040812080549092506001600160401b03169003612027576109c161202284611e7f565b611fe7565b80546001600160401b031667fffffffffffffffe1901612082578054600160801b90046001600160401b03166120675780546001600160401b03166109c1565b80546109c190600160801b90046001600160401b0316611fe7565b8054600160c01b900460c01b6001600160c01b03191661211c575f6120a561212c565b60010154600160a01b900461ffff161180156120e057506120c461212c565b600101546120dd90600160a01b900461ffff1684613440565b43115b80156120fc57508054600160801b90046001600160401b031615155b1561211c5780546109c190600160801b90046001600160401b0316611fe7565b546001600160401b031692915050565b7f43025ad356942e949bc1eab02ffb42d0642f59c8829febfec0169ebcda39070090565b5f546001600160a01b031633146111335760405163118cdaa760e01b8152336004820152602401610864565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610963565b816113145761131481610806565b600180546001600160a01b0319169055611fe48161271b565b33806121d5611ef9565b6001600160a01b03161461223d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610864565b611fe4816121b2565b5f5f6122ac604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81527f000000000000000000000000000000000000000000000000000000000000000060601b60148201526e5af43d82803e903d91602b57fd5bf360881b602882015290565b90506037815ff091506001600160a01b03821661230b5760405162461bcd60e51b815260206004820152601760248201527f436c6f6e61626c653a20435245415445206661696c65640000000000000000006044820152606401610864565b6001600160a01b0382167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316336001600160a01b03167ff376596be5039d6b2fb36fead4c8a370eae426e790a869be8db074ab608cc24860405160405180910390a45090565b5f5f61238361212c565b5f8481526003919091016020526040812080549092506001600160401b031690036123b9576109c16123b484611e7f565b612379565b80546001600160401b031667fffffffffffffffe190161244057805460408051808201909152601781527f6661696c65643a2072657472792072616e646f6d697a65000000000000000000602082015261242591600160801b90046001600160401b03161515906121a4565b80546109c190600160801b90046001600160401b0316612379565b8054600160c01b900460c01b6001600160c01b031916612511575f61246361212c565b60010154600160a01b900461ffff1611801561249e575061248261212c565b6001015461249b90600160a01b900461ffff1684613440565b43115b156124da5780546040805160608101909152602880825261242592600160801b90046001600160401b03161515919061381e60208301396121a4565b61250c6040518060400160405280601181526020017070656e64696e672072616e646f6d697a6560781b815250610806565b611482565b805461255a906001600160401b03600160401b9091041643811115906125369061276a565b604051602001612546919061379c565b6040516020818303038152906040526121a4565b54600160c01b900460c01b92915050565b5f818311611482576118e48361257f61212c565b5f85815260039190910160205260409020600101546001600160401b031661256b565b5f8160036125af826128be565b1580156125e157508060138111156125c9576125c9613155565b826020015160138111156125df576125df613155565b145b61262d5760405162461bcd60e51b815260206004820152601760248201527f63626f723a2063616e6e6f7420666574636820646174610000000000000000006044820152606401610864565b61264261263d8560a001516128cb565b612a14565b92506126518260a00151612a20565b8260200190601381111561266757612667613155565b9081601381111561267a5761267a613155565b815250505050919050565b5f818310156126bd576118e48361269a61212c565b5f85815260039190910160205260409020600101546001600160401b0316612685565b6126c561212c565b5f928352600301602052506040902054600160801b90046001600160401b0316919050565b6126f2612150565b6001600160a01b03811661223d57604051631e4fbdf760e01b81525f6004820152602401610864565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051606480825260a08201909252606091905f90826020820181803683370190505090505f5b5f61279e600a876137c5565b90506127ab600a87613484565b95506127b881603061333c565b60f81b83836127c6816137d8565b9450815181106127d8576127d8613376565b60200101906001600160f81b03191690815f1a90535050845f03612792575f816001600160401b0381111561280f5761280f6132df565b6040519080825280601f01601f191660200182016040528015612839576020820181803683370190505b50905060015b8281116128b457836128518285613412565b8151811061286157612861613376565b01602001516001600160f81b0319168261287c600184613412565b8151811061288c5761288c613376565b60200101906001600160f81b03191690815f1a905350806128ac816137d8565b91505061283f565b5095945050505050565b5f610963825f0151612ae7565b60608160028060ff16826040015160ff161461290b57604080830151905161800560e51b815260ff91821660048201529082166024820152604401610864565b61291c845f01518560600151612b17565b6001600160401b03166080850181905263fffffffe19016129f0575f612949855f01518660400151612bde565b905063ffffffff80821610156129ea57845161296e9063ffffffff80841690612c8a16565b60405160200161297e91906137f0565b60405160208183030381529060405293506129a0855f01518660400151612bde565b905063ffffffff80821610156129ea57845184906129c79063ffffffff80851690612c8a16565b6040516020016129d89291906137fb565b60405160208183030381529060405293505b50612a0d565b60808401518451612a0a9163ffffffff90811690612c8a16565b92505b5050919050565b5f610963826020612d4b565b5f612a348251805151602090910151101590565b612ae2576006826040015160ff1611612a7c5760408201516502020183808360d11b9060ff1660078110612a6a57612a6a613376565b1a601381111561096357610963613155565b816040015160ff16600703612ae257816060015160ff1660141480612aa85750816060015160ff166015145b15612ab557506002919050565b6019826060015160ff1610158015612ad55750601b826060015160ff1611155b15612ae257506005919050565b919050565b5f60f08260ff811115612afc57612afc613155565b1480610963575060f18260ff81111561166357611663613155565b5f60188260ff161015612b2e575060ff8116610963565b8160ff16601803612b4c57612b4283612db8565b60ff169050610963565b8160ff16601903612b6b57612b6083612e18565b61ffff169050610963565b8160ff16601a03612b8c57612b7f83612e83565b63ffffffff169050610963565b8160ff16601b03612ba757612ba083612ee1565b9050610963565b8160ff16601f03612bc057506001600160401b03610963565b604051636d785b1360e01b815260ff83166004820152602401610864565b5f5f612be984612db8565b90508060ff1660ff03612c06576001600160401b03915050610963565b612c138482601f16612b17565b91506001600160401b0380831610612c4957604051636d785b1360e01b81526001600160401b0383166004820152602401610864565b60ff83166007600583901c1614612c835760405161800560e51b81526007600583901c16600482015260ff84166024820152604401610864565b5092915050565b6060818360200151612c9c9190613440565b83515180821115612cca576040516363a056dd60e01b81526004810183905260248101829052604401610864565b836001600160401b03811115612ce257612ce26132df565b6040519080825280601f01601f191660200182016040528015612d0c576020820181803683370190505b5092508315612d43578451602080870151908183018101908601612d3181838a612f3f565b612d3d89896001612f85565b50505050505b505092915050565b5f60208260ff161115612d6057612d60613809565b5f8260ff16845111612d73578351612d78565b8260ff165b90505f5b81811015612d435780600802858281518110612d9a57612d9a613376565b01602001516001600160f81b031916901c9290921791600101612d7c565b5f8160200151825f01515180821115612dee576040516363a056dd60e01b81526004810183905260248101829052604401610864565b8351602085018051808301600101519550908190612e0b826137d8565b8152505050505050919050565b5f81602001516002612e2a9190613440565b82515180821115612e58576040516363a056dd60e01b81526004810183905260248101829052604401610864565b8351602085018051600281840181015196509091612e768284613440565b9052509395945050505050565b5f81602001516004612e959190613440565b82515180821115612ec3576040516363a056dd60e01b81526004810183905260248101829052604401610864565b8351602085018051600481840181015196509091612e768284613440565b5f81602001516008612ef39190613440565b82515180821115612f21576040516363a056dd60e01b81526004810183905260248101829052604401610864565b8351602085018051600881840181015196509091612e768284613440565b5b60208110612f5f578151835260209283019290910190601f1901612f40565b8015612f80578151835160208390036101000a5f1901801990921691161783525b505050565b5f82845f01515180821115612fb7576040516363a056dd60e01b81526004810183905260248101829052604401610864565b8315612fcf576020860151612fcc9086613440565b94505b5050505060209190910181905290565b5f81518060208401855e5f93019283525090919050565b720dcdee840d2dae0d8cadacadce8cac8744060f606b1b81525f61303861303261302c613026601386018a612fdf565b88612fdf565b86612fdf565b84612fdf565b9695505050505050565b5f60208284031215613052575f5ffd5b5035919050565b5f5f6040838503121561306a575f5ffd5b50508035926020909101359150565b803561ffff81168114612ae2575f5ffd5b5f6020828403121561309a575f5ffd5b6109c182613079565b6001600160a01b0381168114611fe4575f5ffd5b5f5f82840360c08112156130c9575f5ffd5b83356130d4816130a3565b925060a0601f19820112156130e7575f5ffd5b506020830190509250929050565b5f60208284031215613105575f5ffd5b81356109c1816130a3565b803562ffffff81168114612ae2575f5ffd5b5f5f60408385031215613133575f5ffd5b823561313e816130a3565b915061314c60208401613110565b90509250929050565b634e487b7160e01b5f52602160045260245ffd5b602081016005831061318957634e487b7160e01b5f52602160045260245ffd5b91905290565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6109c1602083018461318f565b6001600160401b0381168114611fe4575f5ffd5b8035612ae2816131cf565b5f5f5f5f60808587031215613201575f5ffd5b61320a85613110565b935061321860208601613079565b925061322660408601613079565b91506060850135613236816131cf565b939692955090935050565b5f5f5f60408486031215613253575f5ffd5b8335925060208401356001600160401b0381111561326f575f5ffd5b8401601f8101861361327f575f5ffd5b80356001600160401b03811115613294575f5ffd5b8660208284010111156132a5575f5ffd5b939660209190910195509293505050565b5f6132c18285612fdf565b6101d160f51b81526132d66002820185612fdf565b95945050505050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60ff83168061332d5761332d6132f3565b8060ff84160491505092915050565b60ff818116838216019081111561096357610963613307565b5f60ff831680613367576133676132f3565b8060ff84160691505092915050565b634e487b7160e01b5f52603260045260245ffd5b5f5f5f5f6080858703121561339d575f5ffd5b84516020860151604087015191955093506133b7816131cf565b6060959095015193969295505050565b5f602082840312156133d7575f5ffd5b6109c182613110565b5f602082840312156133f0575f5ffd5b81356109c1816131cf565b5f6020828403121561340b575f5ffd5b5051919050565b8181038181111561096357610963613307565b5f60208284031215613435575f5ffd5b81516109c1816130a3565b8082018082111561096357610963613307565b61ffff818116838216019081111561096357610963613307565b808202811582820484141761096357610963613307565b5f82613492576134926132f3565b500490565b60405160c081016001600160401b03811182821017156134b9576134b96132df565b60405290565b604080519081016001600160401b03811182821017156134b9576134b96132df565b604051601f8201601f191681016001600160401b0381118282101715613509576135096132df565b604052919050565b803560148110612ae2575f5ffd5b5f6001600160401b03821115613537576135376132df565b50601f01601f191660200190565b803560ff81168114612ae2575f5ffd5b5f60c08284031215613565575f5ffd5b61356d613497565b905081356001600160401b03811115613584575f5ffd5b820160408185031215613595575f5ffd5b61359d6134bf565b81356001600160401b038111156135b2575f5ffd5b8201601f810186136135c2575f5ffd5b80356135d56135d08261351f565b6134e1565b8181528760208385010111156135e9575f5ffd5b816020840160208301375f602092820183015283529283013582840152508252613614908301613545565b602082015261362560408301613545565b604082015261363660608301613545565b6060820152613647608083016131e3565b608082015261365860a083016131e3565b60a082015292915050565b5f60208284031215613673575f5ffd5b81356001600160401b03811115613688575f5ffd5b820160c08185031215613699575f5ffd5b6136a1613497565b813561010081106136b0575f5ffd5b81526136be60208301613511565b602082015260408281013590820152606080830135908201526136e3608083016131e3565b608082015260a08201356001600160401b03811115613700575f5ffd5b61370c86828501613555565b60a083015250949350505050565b5f6137276135d08461351f565b905082815283838301111561373a575f5ffd5b8282602083015e5f602084830101529392505050565b5f60208284031215613760575f5ffd5b81516001600160401b03811115613775575f5ffd5b8201601f81018413613785575f5ffd5b6137948482516020840161371a565b949350505050565b7466696e616c697a696e67206f6e20626c6f636b202360581b81525f6109c16015830184612fdf565b5f826137d3576137d36132f3565b500690565b5f600182016137e9576137e9613307565b5060010190565b5f6109c18284612fdf565b5f6137946130328386612fdf565b634e487b7160e01b5f52600160045260245ffdfe64656c617965643a206b6565702077616974696e67206f722072657472792072616e646f6d697a65a26469706673582212209a26047e5b9bc70a130a82ce2c709abdb12bbffd53234ac4251a78fc5060829c64736f6c634300081e0033",
  "immutableReferences": {
    "6376": [
      {
        "length": 32,
        "start": 1501
      },
      {
        "length": 32,
        "start": 3646
      },
      {
        "length": 32,
        "start": 7684
      }
    ],
    "6449": [
      {
        "length": 32,
        "start": 768
      },
      {
        "length": 32,
        "start": 1052
      },
      {
        "length": 32,
        "start": 2538
      },
      {
        "length": 32,
        "start": 3598
      },
      {
        "length": 32,
        "start": 5947
      },
      {
        "length": 32,
        "start": 6745
      },
      {
        "length": 32,
        "start": 7543
      },
      {
        "length": 32,
        "start": 7989
      }
    ],
    "45353": [
      {
        "length": 32,
        "start": 1114
      },
      {
        "length": 32,
        "start": 5749
      },
      {
        "length": 32,
        "start": 8810
      },
      {
        "length": 32,
        "start": 8983
      }
    ]
  },
  "generatedSources": [
    {
      "ast": {
        "nativeSrc": "0:9409:136",
        "nodeType": "YulBlock",
        "src": "0:9409:136",
        "statements": [
          {
            "nativeSrc": "6:3:136",
            "nodeType": "YulBlock",
            "src": "6:3:136",
            "statements": []
          },
          {
            "body": {
              "nativeSrc": "59:86:136",
              "nodeType": "YulBlock",
              "src": "59:86:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "123:16:136",
                    "nodeType": "YulBlock",
                    "src": "123:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "132:1:136",
                              "nodeType": "YulLiteral",
                              "src": "132:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "135:1:136",
                              "nodeType": "YulLiteral",
                              "src": "135:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "125:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "125:6:136"
                          },
                          "nativeSrc": "125:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "125:12:136"
                        },
                        "nativeSrc": "125:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "125:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "82:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "82:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "93:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "93:5:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nativeSrc": "108:3:136",
                                        "nodeType": "YulLiteral",
                                        "src": "108:3:136",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nativeSrc": "113:1:136",
                                        "nodeType": "YulLiteral",
                                        "src": "113:1:136",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nativeSrc": "104:3:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "104:3:136"
                                    },
                                    "nativeSrc": "104:11:136",
                                    "nodeType": "YulFunctionCall",
                                    "src": "104:11:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "117:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "117:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nativeSrc": "100:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "100:3:136"
                                },
                                "nativeSrc": "100:19:136",
                                "nodeType": "YulFunctionCall",
                                "src": "100:19:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "89:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "89:3:136"
                            },
                            "nativeSrc": "89:31:136",
                            "nodeType": "YulFunctionCall",
                            "src": "89:31:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "79:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "79:2:136"
                        },
                        "nativeSrc": "79:42:136",
                        "nodeType": "YulFunctionCall",
                        "src": "79:42:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "72:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "72:6:136"
                    },
                    "nativeSrc": "72:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "72:50:136"
                  },
                  "nativeSrc": "69:70:136",
                  "nodeType": "YulIf",
                  "src": "69:70:136"
                }
              ]
            },
            "name": "validator_revert_address",
            "nativeSrc": "14:131:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "48:5:136",
                "nodeType": "YulTypedName",
                "src": "48:5:136",
                "type": ""
              }
            ],
            "src": "14:131:136"
          },
          {
            "body": {
              "nativeSrc": "248:287:136",
              "nodeType": "YulBlock",
              "src": "248:287:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "294:16:136",
                    "nodeType": "YulBlock",
                    "src": "294:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "303:1:136",
                              "nodeType": "YulLiteral",
                              "src": "303:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "306:1:136",
                              "nodeType": "YulLiteral",
                              "src": "306:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "296:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "296:6:136"
                          },
                          "nativeSrc": "296:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "296:12:136"
                        },
                        "nativeSrc": "296:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "296:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "269:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "269:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "278:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "278:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "265:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "265:3:136"
                        },
                        "nativeSrc": "265:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "265:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "290:2:136",
                        "nodeType": "YulLiteral",
                        "src": "290:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "261:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "261:3:136"
                    },
                    "nativeSrc": "261:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "261:32:136"
                  },
                  "nativeSrc": "258:52:136",
                  "nodeType": "YulIf",
                  "src": "258:52:136"
                },
                {
                  "nativeSrc": "319:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "319:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "338:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "338:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "332:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "332:5:136"
                    },
                    "nativeSrc": "332:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "332:16:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "323:5:136",
                      "nodeType": "YulTypedName",
                      "src": "323:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "382:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "382:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "357:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "357:24:136"
                    },
                    "nativeSrc": "357:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "357:31:136"
                  },
                  "nativeSrc": "357:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "357:31:136"
                },
                {
                  "nativeSrc": "397:15:136",
                  "nodeType": "YulAssignment",
                  "src": "397:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "407:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "407:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "397:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "397:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "421:40:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "421:40:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "446:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "446:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "457:2:136",
                            "nodeType": "YulLiteral",
                            "src": "457:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "442:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "442:3:136"
                        },
                        "nativeSrc": "442:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "442:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "436:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "436:5:136"
                    },
                    "nativeSrc": "436:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "436:25:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "425:7:136",
                      "nodeType": "YulTypedName",
                      "src": "425:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "495:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "495:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "470:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "470:24:136"
                    },
                    "nativeSrc": "470:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "470:33:136"
                  },
                  "nativeSrc": "470:33:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "470:33:136"
                },
                {
                  "nativeSrc": "512:17:136",
                  "nodeType": "YulAssignment",
                  "src": "512:17:136",
                  "value": {
                    "name": "value_1",
                    "nativeSrc": "522:7:136",
                    "nodeType": "YulIdentifier",
                    "src": "522:7:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "512:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "512:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_address_fromMemory",
            "nativeSrc": "150:385:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "206:9:136",
                "nodeType": "YulTypedName",
                "src": "206:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "217:7:136",
                "nodeType": "YulTypedName",
                "src": "217:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "229:6:136",
                "nodeType": "YulTypedName",
                "src": "229:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "237:6:136",
                "nodeType": "YulTypedName",
                "src": "237:6:136",
                "type": ""
              }
            ],
            "src": "150:385:136"
          },
          {
            "body": {
              "nativeSrc": "641:102:136",
              "nodeType": "YulBlock",
              "src": "641:102:136",
              "statements": [
                {
                  "nativeSrc": "651:26:136",
                  "nodeType": "YulAssignment",
                  "src": "651:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "663:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "663:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "674:2:136",
                        "nodeType": "YulLiteral",
                        "src": "674:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "659:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "659:3:136"
                    },
                    "nativeSrc": "659:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "659:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "651:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "651:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "693:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "693:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "708:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "708:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "724:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "724:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "729:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "729:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "720:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "720:3:136"
                                },
                                "nativeSrc": "720:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "720:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "733:1:136",
                                "nodeType": "YulLiteral",
                                "src": "733:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "716:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "716:3:136"
                            },
                            "nativeSrc": "716:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "716:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "704:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "704:3:136"
                        },
                        "nativeSrc": "704:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "704:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "686:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "686:6:136"
                    },
                    "nativeSrc": "686:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "686:51:136"
                  },
                  "nativeSrc": "686:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "686:51:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nativeSrc": "540:203:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "610:9:136",
                "nodeType": "YulTypedName",
                "src": "610:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "621:6:136",
                "nodeType": "YulTypedName",
                "src": "621:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "632:4:136",
                "nodeType": "YulTypedName",
                "src": "632:4:136",
                "type": ""
              }
            ],
            "src": "540:203:136"
          },
          {
            "body": {
              "nativeSrc": "828:210:136",
              "nodeType": "YulBlock",
              "src": "828:210:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "874:16:136",
                    "nodeType": "YulBlock",
                    "src": "874:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "883:1:136",
                              "nodeType": "YulLiteral",
                              "src": "883:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "886:1:136",
                              "nodeType": "YulLiteral",
                              "src": "886:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "876:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "876:6:136"
                          },
                          "nativeSrc": "876:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "876:12:136"
                        },
                        "nativeSrc": "876:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "876:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "849:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "849:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "858:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "858:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "845:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "845:3:136"
                        },
                        "nativeSrc": "845:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "845:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "870:2:136",
                        "nodeType": "YulLiteral",
                        "src": "870:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "841:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "841:3:136"
                    },
                    "nativeSrc": "841:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "841:32:136"
                  },
                  "nativeSrc": "838:52:136",
                  "nodeType": "YulIf",
                  "src": "838:52:136"
                },
                {
                  "nativeSrc": "899:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "899:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "918:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "918:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "912:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "912:5:136"
                    },
                    "nativeSrc": "912:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "912:16:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "903:5:136",
                      "nodeType": "YulTypedName",
                      "src": "903:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "992:16:136",
                    "nodeType": "YulBlock",
                    "src": "992:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "1001:1:136",
                              "nodeType": "YulLiteral",
                              "src": "1001:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "1004:1:136",
                              "nodeType": "YulLiteral",
                              "src": "1004:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "994:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "994:6:136"
                          },
                          "nativeSrc": "994:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "994:12:136"
                        },
                        "nativeSrc": "994:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "994:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "950:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "950:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "961:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "961:5:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "972:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "972:3:136",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "977:10:136",
                                    "nodeType": "YulLiteral",
                                    "src": "977:10:136",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "968:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "968:3:136"
                                },
                                "nativeSrc": "968:20:136",
                                "nodeType": "YulFunctionCall",
                                "src": "968:20:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "957:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "957:3:136"
                            },
                            "nativeSrc": "957:32:136",
                            "nodeType": "YulFunctionCall",
                            "src": "957:32:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "947:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "947:2:136"
                        },
                        "nativeSrc": "947:43:136",
                        "nodeType": "YulFunctionCall",
                        "src": "947:43:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "940:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "940:6:136"
                    },
                    "nativeSrc": "940:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "940:51:136"
                  },
                  "nativeSrc": "937:71:136",
                  "nodeType": "YulIf",
                  "src": "937:71:136"
                },
                {
                  "nativeSrc": "1017:15:136",
                  "nodeType": "YulAssignment",
                  "src": "1017:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "1027:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "1027:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "1017:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1017:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4_fromMemory",
            "nativeSrc": "748:290:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "794:9:136",
                "nodeType": "YulTypedName",
                "src": "794:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "805:7:136",
                "nodeType": "YulTypedName",
                "src": "805:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "817:6:136",
                "nodeType": "YulTypedName",
                "src": "817:6:136",
                "type": ""
              }
            ],
            "src": "748:290:136"
          },
          {
            "body": {
              "nativeSrc": "1157:170:136",
              "nodeType": "YulBlock",
              "src": "1157:170:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "1203:16:136",
                    "nodeType": "YulBlock",
                    "src": "1203:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "1212:1:136",
                              "nodeType": "YulLiteral",
                              "src": "1212:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "1215:1:136",
                              "nodeType": "YulLiteral",
                              "src": "1215:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "1205:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "1205:6:136"
                          },
                          "nativeSrc": "1205:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "1205:12:136"
                        },
                        "nativeSrc": "1205:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "1205:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "1178:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "1178:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "1187:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "1187:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "1174:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1174:3:136"
                        },
                        "nativeSrc": "1174:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1174:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1199:2:136",
                        "nodeType": "YulLiteral",
                        "src": "1199:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "1170:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "1170:3:136"
                    },
                    "nativeSrc": "1170:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1170:32:136"
                  },
                  "nativeSrc": "1167:52:136",
                  "nodeType": "YulIf",
                  "src": "1167:52:136"
                },
                {
                  "nativeSrc": "1228:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "1228:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1247:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1247:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "1241:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "1241:5:136"
                    },
                    "nativeSrc": "1241:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1241:16:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "1232:5:136",
                      "nodeType": "YulTypedName",
                      "src": "1232:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "1291:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "1291:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "1266:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "1266:24:136"
                    },
                    "nativeSrc": "1266:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1266:31:136"
                  },
                  "nativeSrc": "1266:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1266:31:136"
                },
                {
                  "nativeSrc": "1306:15:136",
                  "nodeType": "YulAssignment",
                  "src": "1306:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "1316:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "1316:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "1306:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1306:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_contract$_IWitOracleRadonRegistry_$27394_fromMemory",
            "nativeSrc": "1043:284:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "1123:9:136",
                "nodeType": "YulTypedName",
                "src": "1123:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "1134:7:136",
                "nodeType": "YulTypedName",
                "src": "1134:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "1146:6:136",
                "nodeType": "YulTypedName",
                "src": "1146:6:136",
                "type": ""
              }
            ],
            "src": "1043:284:136"
          },
          {
            "body": {
              "nativeSrc": "1364:95:136",
              "nodeType": "YulBlock",
              "src": "1364:95:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "1381:1:136",
                        "nodeType": "YulLiteral",
                        "src": "1381:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "1388:3:136",
                            "nodeType": "YulLiteral",
                            "src": "1388:3:136",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1393:10:136",
                            "nodeType": "YulLiteral",
                            "src": "1393:10:136",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "1384:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1384:3:136"
                        },
                        "nativeSrc": "1384:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1384:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1374:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1374:6:136"
                    },
                    "nativeSrc": "1374:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1374:31:136"
                  },
                  "nativeSrc": "1374:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1374:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "1421:1:136",
                        "nodeType": "YulLiteral",
                        "src": "1421:1:136",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1424:4:136",
                        "nodeType": "YulLiteral",
                        "src": "1424:4:136",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1414:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1414:6:136"
                    },
                    "nativeSrc": "1414:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1414:15:136"
                  },
                  "nativeSrc": "1414:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1414:15:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "1445:1:136",
                        "nodeType": "YulLiteral",
                        "src": "1445:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1448:4:136",
                        "nodeType": "YulLiteral",
                        "src": "1448:4:136",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "1438:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1438:6:136"
                    },
                    "nativeSrc": "1438:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1438:15:136"
                  },
                  "nativeSrc": "1438:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1438:15:136"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nativeSrc": "1332:127:136",
            "nodeType": "YulFunctionDefinition",
            "src": "1332:127:136"
          },
          {
            "body": {
              "nativeSrc": "1496:95:136",
              "nodeType": "YulBlock",
              "src": "1496:95:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "1513:1:136",
                        "nodeType": "YulLiteral",
                        "src": "1513:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "1520:3:136",
                            "nodeType": "YulLiteral",
                            "src": "1520:3:136",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1525:10:136",
                            "nodeType": "YulLiteral",
                            "src": "1525:10:136",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "1516:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1516:3:136"
                        },
                        "nativeSrc": "1516:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1516:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1506:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1506:6:136"
                    },
                    "nativeSrc": "1506:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1506:31:136"
                  },
                  "nativeSrc": "1506:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1506:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "1553:1:136",
                        "nodeType": "YulLiteral",
                        "src": "1553:1:136",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1556:4:136",
                        "nodeType": "YulLiteral",
                        "src": "1556:4:136",
                        "type": "",
                        "value": "0x21"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1546:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1546:6:136"
                    },
                    "nativeSrc": "1546:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1546:15:136"
                  },
                  "nativeSrc": "1546:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1546:15:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "1577:1:136",
                        "nodeType": "YulLiteral",
                        "src": "1577:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1580:4:136",
                        "nodeType": "YulLiteral",
                        "src": "1580:4:136",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "1570:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1570:6:136"
                    },
                    "nativeSrc": "1570:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1570:15:136"
                  },
                  "nativeSrc": "1570:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1570:15:136"
                }
              ]
            },
            "name": "panic_error_0x21",
            "nativeSrc": "1464:127:136",
            "nodeType": "YulFunctionDefinition",
            "src": "1464:127:136"
          },
          {
            "body": {
              "nativeSrc": "1657:239:136",
              "nodeType": "YulBlock",
              "src": "1657:239:136",
              "statements": [
                {
                  "nativeSrc": "1667:26:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "1667:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "1687:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "1687:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "1681:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "1681:5:136"
                    },
                    "nativeSrc": "1681:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1681:12:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "1671:6:136",
                      "nodeType": "YulTypedName",
                      "src": "1671:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "1709:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "1709:3:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "1714:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "1714:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1702:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1702:6:136"
                    },
                    "nativeSrc": "1702:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1702:19:136"
                  },
                  "nativeSrc": "1702:19:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1702:19:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "1740:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "1740:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1745:4:136",
                            "nodeType": "YulLiteral",
                            "src": "1745:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1736:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1736:3:136"
                        },
                        "nativeSrc": "1736:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1736:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "1756:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "1756:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1763:4:136",
                            "nodeType": "YulLiteral",
                            "src": "1763:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1752:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1752:3:136"
                        },
                        "nativeSrc": "1752:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1752:16:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "1770:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "1770:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mcopy",
                      "nativeSrc": "1730:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "1730:5:136"
                    },
                    "nativeSrc": "1730:47:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1730:47:136"
                  },
                  "nativeSrc": "1730:47:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1730:47:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "pos",
                                "nativeSrc": "1801:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "1801:3:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "1806:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "1806:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "1797:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "1797:3:136"
                            },
                            "nativeSrc": "1797:16:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1797:16:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1815:4:136",
                            "nodeType": "YulLiteral",
                            "src": "1815:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1793:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1793:3:136"
                        },
                        "nativeSrc": "1793:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1793:27:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1822:1:136",
                        "nodeType": "YulLiteral",
                        "src": "1822:1:136",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1786:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1786:6:136"
                    },
                    "nativeSrc": "1786:38:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1786:38:136"
                  },
                  "nativeSrc": "1786:38:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1786:38:136"
                },
                {
                  "nativeSrc": "1833:57:136",
                  "nodeType": "YulAssignment",
                  "src": "1833:57:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "1848:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "1848:3:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nativeSrc": "1861:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "1861:6:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1869:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "1869:2:136",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "1857:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "1857:3:136"
                                },
                                "nativeSrc": "1857:15:136",
                                "nodeType": "YulFunctionCall",
                                "src": "1857:15:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1878:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "1878:2:136",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nativeSrc": "1874:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "1874:3:136"
                                },
                                "nativeSrc": "1874:7:136",
                                "nodeType": "YulFunctionCall",
                                "src": "1874:7:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "1853:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "1853:3:136"
                            },
                            "nativeSrc": "1853:29:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1853:29:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1844:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1844:3:136"
                        },
                        "nativeSrc": "1844:39:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1844:39:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1885:4:136",
                        "nodeType": "YulLiteral",
                        "src": "1885:4:136",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "1840:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "1840:3:136"
                    },
                    "nativeSrc": "1840:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1840:50:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "1833:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "1833:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string_memory_ptr",
            "nativeSrc": "1596:300:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "1634:5:136",
                "nodeType": "YulTypedName",
                "src": "1634:5:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "1641:3:136",
                "nodeType": "YulTypedName",
                "src": "1641:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "1649:3:136",
                "nodeType": "YulTypedName",
                "src": "1649:3:136",
                "type": ""
              }
            ],
            "src": "1596:300:136"
          },
          {
            "body": {
              "nativeSrc": "1956:102:136",
              "nodeType": "YulBlock",
              "src": "1956:102:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "1973:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "1973:3:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1978:1:136",
                        "nodeType": "YulLiteral",
                        "src": "1978:1:136",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1966:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1966:6:136"
                    },
                    "nativeSrc": "1966:14:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1966:14:136"
                  },
                  "nativeSrc": "1966:14:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1966:14:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "2000:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "2000:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2005:4:136",
                            "nodeType": "YulLiteral",
                            "src": "2005:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1996:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1996:3:136"
                        },
                        "nativeSrc": "1996:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1996:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "2016:3:136",
                            "nodeType": "YulLiteral",
                            "src": "2016:3:136",
                            "type": "",
                            "value": "255"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2021:1:136",
                            "nodeType": "YulLiteral",
                            "src": "2021:1:136",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "2012:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2012:3:136"
                        },
                        "nativeSrc": "2012:11:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2012:11:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1989:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1989:6:136"
                    },
                    "nativeSrc": "1989:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1989:35:136"
                  },
                  "nativeSrc": "1989:35:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1989:35:136"
                },
                {
                  "nativeSrc": "2033:19:136",
                  "nodeType": "YulAssignment",
                  "src": "2033:19:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "2044:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "2044:3:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2049:2:136",
                        "nodeType": "YulLiteral",
                        "src": "2049:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "2040:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "2040:3:136"
                    },
                    "nativeSrc": "2040:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2040:12:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "2033:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "2033:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_stringliteral_56e8",
            "nativeSrc": "1901:157:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "1940:3:136",
                "nodeType": "YulTypedName",
                "src": "1940:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "1948:3:136",
                "nodeType": "YulTypedName",
                "src": "1948:3:136",
                "type": ""
              }
            ],
            "src": "1901:157:136"
          },
          {
            "body": {
              "nativeSrc": "2635:1441:136",
              "nodeType": "YulBlock",
              "src": "2635:1441:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "2670:22:136",
                    "nodeType": "YulBlock",
                    "src": "2670:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x21",
                            "nativeSrc": "2672:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "2672:16:136"
                          },
                          "nativeSrc": "2672:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "2672:18:136"
                        },
                        "nativeSrc": "2672:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "2672:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "2658:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "2658:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2666:1:136",
                            "nodeType": "YulLiteral",
                            "src": "2666:1:136",
                            "type": "",
                            "value": "5"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "2655:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "2655:2:136"
                        },
                        "nativeSrc": "2655:13:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2655:13:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "2648:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2648:6:136"
                    },
                    "nativeSrc": "2648:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2648:21:136"
                  },
                  "nativeSrc": "2645:47:136",
                  "nodeType": "YulIf",
                  "src": "2645:47:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "2708:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "2708:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "2719:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "2719:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2701:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2701:6:136"
                    },
                    "nativeSrc": "2701:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2701:25:136"
                  },
                  "nativeSrc": "2701:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2701:25:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "2746:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "2746:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2757:2:136",
                            "nodeType": "YulLiteral",
                            "src": "2757:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2742:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2742:3:136"
                        },
                        "nativeSrc": "2742:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2742:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2762:3:136",
                        "nodeType": "YulLiteral",
                        "src": "2762:3:136",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2735:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2735:6:136"
                    },
                    "nativeSrc": "2735:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2735:31:136"
                  },
                  "nativeSrc": "2735:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2735:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "2786:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "2786:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2797:3:136",
                            "nodeType": "YulLiteral",
                            "src": "2797:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2782:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2782:3:136"
                        },
                        "nativeSrc": "2782:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2782:19:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2803:1:136",
                        "nodeType": "YulLiteral",
                        "src": "2803:1:136",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2775:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2775:6:136"
                    },
                    "nativeSrc": "2775:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2775:30:136"
                  },
                  "nativeSrc": "2775:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2775:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "2825:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "2825:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2836:2:136",
                            "nodeType": "YulLiteral",
                            "src": "2836:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2821:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2821:3:136"
                        },
                        "nativeSrc": "2821:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2821:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2841:3:136",
                        "nodeType": "YulLiteral",
                        "src": "2841:3:136",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2814:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2814:6:136"
                    },
                    "nativeSrc": "2814:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2814:31:136"
                  },
                  "nativeSrc": "2814:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2814:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "2865:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "2865:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2876:3:136",
                            "nodeType": "YulLiteral",
                            "src": "2876:3:136",
                            "type": "",
                            "value": "192"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2861:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2861:3:136"
                        },
                        "nativeSrc": "2861:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2861:19:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2882:1:136",
                        "nodeType": "YulLiteral",
                        "src": "2882:1:136",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2854:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2854:6:136"
                    },
                    "nativeSrc": "2854:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2854:30:136"
                  },
                  "nativeSrc": "2854:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2854:30:136"
                },
                {
                  "nativeSrc": "2893:38:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "2893:38:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "2916:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "2916:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2927:3:136",
                        "nodeType": "YulLiteral",
                        "src": "2927:3:136",
                        "type": "",
                        "value": "224"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "2912:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "2912:3:136"
                    },
                    "nativeSrc": "2912:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2912:19:136"
                  },
                  "variables": [
                    {
                      "name": "updated_pos",
                      "nativeSrc": "2897:11:136",
                      "nodeType": "YulTypedName",
                      "src": "2897:11:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "2951:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "2951:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2962:2:136",
                            "nodeType": "YulLiteral",
                            "src": "2962:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2947:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2947:3:136"
                        },
                        "nativeSrc": "2947:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2947:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2967:3:136",
                        "nodeType": "YulLiteral",
                        "src": "2967:3:136",
                        "type": "",
                        "value": "224"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2940:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2940:6:136"
                    },
                    "nativeSrc": "2940:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2940:31:136"
                  },
                  "nativeSrc": "2940:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2940:31:136"
                },
                {
                  "nativeSrc": "2980:22:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "2980:22:136",
                  "value": {
                    "name": "updated_pos",
                    "nativeSrc": "2991:11:136",
                    "nodeType": "YulIdentifier",
                    "src": "2991:11:136"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nativeSrc": "2984:3:136",
                      "nodeType": "YulTypedName",
                      "src": "2984:3:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "3011:27:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3011:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "3031:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "3031:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "3025:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "3025:5:136"
                    },
                    "nativeSrc": "3025:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3025:13:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "3015:6:136",
                      "nodeType": "YulTypedName",
                      "src": "3015:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "updated_pos",
                        "nativeSrc": "3054:11:136",
                        "nodeType": "YulIdentifier",
                        "src": "3054:11:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "3067:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "3067:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3047:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "3047:6:136"
                    },
                    "nativeSrc": "3047:27:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3047:27:136"
                  },
                  "nativeSrc": "3047:27:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "3047:27:136"
                },
                {
                  "nativeSrc": "3083:26:136",
                  "nodeType": "YulAssignment",
                  "src": "3083:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3094:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "3094:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3105:3:136",
                        "nodeType": "YulLiteral",
                        "src": "3105:3:136",
                        "type": "",
                        "value": "256"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3090:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3090:3:136"
                    },
                    "nativeSrc": "3090:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3090:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nativeSrc": "3083:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3083:3:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "3118:54:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3118:54:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "3140:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "3140:9:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "3155:1:136",
                                "nodeType": "YulLiteral",
                                "src": "3155:1:136",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "3158:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "3158:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "3151:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "3151:3:136"
                            },
                            "nativeSrc": "3151:14:136",
                            "nodeType": "YulFunctionCall",
                            "src": "3151:14:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3136:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3136:3:136"
                        },
                        "nativeSrc": "3136:30:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3136:30:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3168:3:136",
                        "nodeType": "YulLiteral",
                        "src": "3168:3:136",
                        "type": "",
                        "value": "256"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3132:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3132:3:136"
                    },
                    "nativeSrc": "3132:40:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3132:40:136"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nativeSrc": "3122:6:136",
                      "nodeType": "YulTypedName",
                      "src": "3122:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "3181:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3181:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "3199:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "3199:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3207:2:136",
                        "nodeType": "YulLiteral",
                        "src": "3207:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3195:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3195:3:136"
                    },
                    "nativeSrc": "3195:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3195:15:136"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nativeSrc": "3185:6:136",
                      "nodeType": "YulTypedName",
                      "src": "3185:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "3219:10:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3219:10:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "3228:1:136",
                    "nodeType": "YulLiteral",
                    "src": "3228:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nativeSrc": "3223:1:136",
                      "nodeType": "YulTypedName",
                      "src": "3223:1:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "3287:669:136",
                    "nodeType": "YulBlock",
                    "src": "3287:669:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "3308:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "3308:3:136"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "tail_1",
                                      "nativeSrc": "3321:6:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "3321:6:136"
                                    },
                                    {
                                      "name": "headStart",
                                      "nativeSrc": "3329:9:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "3329:9:136"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nativeSrc": "3317:3:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "3317:3:136"
                                  },
                                  "nativeSrc": "3317:22:136",
                                  "nodeType": "YulFunctionCall",
                                  "src": "3317:22:136"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "3345:3:136",
                                      "nodeType": "YulLiteral",
                                      "src": "3345:3:136",
                                      "type": "",
                                      "value": "255"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nativeSrc": "3341:3:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "3341:3:136"
                                  },
                                  "nativeSrc": "3341:8:136",
                                  "nodeType": "YulFunctionCall",
                                  "src": "3341:8:136"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "3313:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "3313:3:136"
                              },
                              "nativeSrc": "3313:37:136",
                              "nodeType": "YulFunctionCall",
                              "src": "3313:37:136"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "3301:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3301:6:136"
                          },
                          "nativeSrc": "3301:50:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3301:50:136"
                        },
                        "nativeSrc": "3301:50:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "3301:50:136"
                      },
                      {
                        "nativeSrc": "3364:23:136",
                        "nodeType": "YulVariableDeclaration",
                        "src": "3364:23:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nativeSrc": "3380:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "3380:6:136"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nativeSrc": "3374:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "3374:5:136"
                          },
                          "nativeSrc": "3374:13:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3374:13:136"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nativeSrc": "3368:2:136",
                            "nodeType": "YulTypedName",
                            "src": "3368:2:136",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "3400:19:136",
                        "nodeType": "YulVariableDeclaration",
                        "src": "3400:19:136",
                        "value": {
                          "name": "tail_1",
                          "nativeSrc": "3413:6:136",
                          "nodeType": "YulIdentifier",
                          "src": "3413:6:136"
                        },
                        "variables": [
                          {
                            "name": "pos_1",
                            "nativeSrc": "3404:5:136",
                            "nodeType": "YulTypedName",
                            "src": "3404:5:136",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "3432:15:136",
                        "nodeType": "YulAssignment",
                        "src": "3432:15:136",
                        "value": {
                          "name": "tail_1",
                          "nativeSrc": "3441:6:136",
                          "nodeType": "YulIdentifier",
                          "src": "3441:6:136"
                        },
                        "variableNames": [
                          {
                            "name": "pos_1",
                            "nativeSrc": "3432:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "3432:5:136"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "3460:29:136",
                        "nodeType": "YulVariableDeclaration",
                        "src": "3460:29:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "tail_1",
                              "nativeSrc": "3478:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "3478:6:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3486:2:136",
                              "nodeType": "YulLiteral",
                              "src": "3486:2:136",
                              "type": "",
                              "value": "64"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "3474:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "3474:3:136"
                          },
                          "nativeSrc": "3474:15:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3474:15:136"
                        },
                        "variables": [
                          {
                            "name": "tail_2",
                            "nativeSrc": "3464:6:136",
                            "nodeType": "YulTypedName",
                            "src": "3464:6:136",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "3502:18:136",
                        "nodeType": "YulVariableDeclaration",
                        "src": "3502:18:136",
                        "value": {
                          "name": "_1",
                          "nativeSrc": "3518:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "3518:2:136"
                        },
                        "variables": [
                          {
                            "name": "srcPtr_1",
                            "nativeSrc": "3506:8:136",
                            "nodeType": "YulTypedName",
                            "src": "3506:8:136",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "3533:12:136",
                        "nodeType": "YulVariableDeclaration",
                        "src": "3533:12:136",
                        "value": {
                          "kind": "number",
                          "nativeSrc": "3544:1:136",
                          "nodeType": "YulLiteral",
                          "src": "3544:1:136",
                          "type": "",
                          "value": "0"
                        },
                        "variables": [
                          {
                            "name": "i_1",
                            "nativeSrc": "3537:3:136",
                            "nodeType": "YulTypedName",
                            "src": "3537:3:136",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nativeSrc": "3615:232:136",
                          "nodeType": "YulBlock",
                          "src": "3615:232:136",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "pos_1",
                                    "nativeSrc": "3640:5:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "3640:5:136"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "name": "tail_2",
                                        "nativeSrc": "3651:6:136",
                                        "nodeType": "YulIdentifier",
                                        "src": "3651:6:136"
                                      },
                                      {
                                        "name": "tail_1",
                                        "nativeSrc": "3659:6:136",
                                        "nodeType": "YulIdentifier",
                                        "src": "3659:6:136"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nativeSrc": "3647:3:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "3647:3:136"
                                    },
                                    "nativeSrc": "3647:19:136",
                                    "nodeType": "YulFunctionCall",
                                    "src": "3647:19:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "mstore",
                                  "nativeSrc": "3633:6:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "3633:6:136"
                                },
                                "nativeSrc": "3633:34:136",
                                "nodeType": "YulFunctionCall",
                                "src": "3633:34:136"
                              },
                              "nativeSrc": "3633:34:136",
                              "nodeType": "YulExpressionStatement",
                              "src": "3633:34:136"
                            },
                            {
                              "nativeSrc": "3684:63:136",
                              "nodeType": "YulAssignment",
                              "src": "3684:63:136",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "srcPtr_1",
                                        "nativeSrc": "3729:8:136",
                                        "nodeType": "YulIdentifier",
                                        "src": "3729:8:136"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nativeSrc": "3723:5:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "3723:5:136"
                                    },
                                    "nativeSrc": "3723:15:136",
                                    "nodeType": "YulFunctionCall",
                                    "src": "3723:15:136"
                                  },
                                  {
                                    "name": "tail_2",
                                    "nativeSrc": "3740:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "3740:6:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "abi_encode_string_memory_ptr",
                                  "nativeSrc": "3694:28:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "3694:28:136"
                                },
                                "nativeSrc": "3694:53:136",
                                "nodeType": "YulFunctionCall",
                                "src": "3694:53:136"
                              },
                              "variableNames": [
                                {
                                  "name": "tail_2",
                                  "nativeSrc": "3684:6:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "3684:6:136"
                                }
                              ]
                            },
                            {
                              "nativeSrc": "3764:29:136",
                              "nodeType": "YulAssignment",
                              "src": "3764:29:136",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "srcPtr_1",
                                    "nativeSrc": "3780:8:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "3780:8:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "3790:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "3790:2:136",
                                    "type": "",
                                    "value": "32"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "3776:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "3776:3:136"
                                },
                                "nativeSrc": "3776:17:136",
                                "nodeType": "YulFunctionCall",
                                "src": "3776:17:136"
                              },
                              "variableNames": [
                                {
                                  "name": "srcPtr_1",
                                  "nativeSrc": "3764:8:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "3764:8:136"
                                }
                              ]
                            },
                            {
                              "nativeSrc": "3810:23:136",
                              "nodeType": "YulAssignment",
                              "src": "3810:23:136",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "pos_1",
                                    "nativeSrc": "3823:5:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "3823:5:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "3830:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "3830:2:136",
                                    "type": "",
                                    "value": "32"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "3819:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "3819:3:136"
                                },
                                "nativeSrc": "3819:14:136",
                                "nodeType": "YulFunctionCall",
                                "src": "3819:14:136"
                              },
                              "variableNames": [
                                {
                                  "name": "pos_1",
                                  "nativeSrc": "3810:5:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "3810:5:136"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "i_1",
                              "nativeSrc": "3569:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "3569:3:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3574:4:136",
                              "nodeType": "YulLiteral",
                              "src": "3574:4:136",
                              "type": "",
                              "value": "0x02"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nativeSrc": "3566:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "3566:2:136"
                          },
                          "nativeSrc": "3566:13:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3566:13:136"
                        },
                        "nativeSrc": "3558:289:136",
                        "nodeType": "YulForLoop",
                        "post": {
                          "nativeSrc": "3580:22:136",
                          "nodeType": "YulBlock",
                          "src": "3580:22:136",
                          "statements": [
                            {
                              "nativeSrc": "3582:18:136",
                              "nodeType": "YulAssignment",
                              "src": "3582:18:136",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "i_1",
                                    "nativeSrc": "3593:3:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "3593:3:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "3598:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "3598:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "3589:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "3589:3:136"
                                },
                                "nativeSrc": "3589:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "3589:11:136"
                              },
                              "variableNames": [
                                {
                                  "name": "i_1",
                                  "nativeSrc": "3582:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "3582:3:136"
                                }
                              ]
                            }
                          ]
                        },
                        "pre": {
                          "nativeSrc": "3562:3:136",
                          "nodeType": "YulBlock",
                          "src": "3562:3:136",
                          "statements": []
                        },
                        "src": "3558:289:136"
                      },
                      {
                        "nativeSrc": "3860:16:136",
                        "nodeType": "YulAssignment",
                        "src": "3860:16:136",
                        "value": {
                          "name": "tail_2",
                          "nativeSrc": "3870:6:136",
                          "nodeType": "YulIdentifier",
                          "src": "3870:6:136"
                        },
                        "variableNames": [
                          {
                            "name": "tail_1",
                            "nativeSrc": "3860:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3860:6:136"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "3889:25:136",
                        "nodeType": "YulAssignment",
                        "src": "3889:25:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nativeSrc": "3903:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "3903:6:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3911:2:136",
                              "nodeType": "YulLiteral",
                              "src": "3911:2:136",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "3899:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "3899:3:136"
                          },
                          "nativeSrc": "3899:15:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3899:15:136"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nativeSrc": "3889:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3889:6:136"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "3927:19:136",
                        "nodeType": "YulAssignment",
                        "src": "3927:19:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "3938:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "3938:3:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3943:2:136",
                              "nodeType": "YulLiteral",
                              "src": "3943:2:136",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "3934:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "3934:3:136"
                          },
                          "nativeSrc": "3934:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3934:12:136"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nativeSrc": "3927:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "3927:3:136"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nativeSrc": "3249:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "3249:1:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "3252:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "3252:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "3246:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "3246:2:136"
                    },
                    "nativeSrc": "3246:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3246:13:136"
                  },
                  "nativeSrc": "3238:718:136",
                  "nodeType": "YulForLoop",
                  "post": {
                    "nativeSrc": "3260:18:136",
                    "nodeType": "YulBlock",
                    "src": "3260:18:136",
                    "statements": [
                      {
                        "nativeSrc": "3262:14:136",
                        "nodeType": "YulAssignment",
                        "src": "3262:14:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nativeSrc": "3271:1:136",
                              "nodeType": "YulIdentifier",
                              "src": "3271:1:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3274:1:136",
                              "nodeType": "YulLiteral",
                              "src": "3274:1:136",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "3267:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "3267:3:136"
                          },
                          "nativeSrc": "3267:9:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3267:9:136"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nativeSrc": "3262:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "3262:1:136"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nativeSrc": "3242:3:136",
                    "nodeType": "YulBlock",
                    "src": "3242:3:136",
                    "statements": []
                  },
                  "src": "3238:718:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "3976:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "3976:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3987:3:136",
                            "nodeType": "YulLiteral",
                            "src": "3987:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3972:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3972:3:136"
                        },
                        "nativeSrc": "3972:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3972:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nativeSrc": "3997:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3997:6:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "4005:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "4005:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "3993:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3993:3:136"
                        },
                        "nativeSrc": "3993:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3993:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3965:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "3965:6:136"
                    },
                    "nativeSrc": "3965:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3965:51:136"
                  },
                  "nativeSrc": "3965:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "3965:51:136"
                },
                {
                  "nativeSrc": "4025:45:136",
                  "nodeType": "YulAssignment",
                  "src": "4025:45:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nativeSrc": "4063:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "4063:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_stringliteral_56e8",
                      "nativeSrc": "4033:29:136",
                      "nodeType": "YulIdentifier",
                      "src": "4033:29:136"
                    },
                    "nativeSrc": "4033:37:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4033:37:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "4025:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "4025:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_enum$_RadonRetrievalMethods_$37802_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_t_stringliteral_56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421__to_t_uint8_t_string_memory_ptr_t_string_memory_ptr_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed",
            "nativeSrc": "2063:2013:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "2596:9:136",
                "nodeType": "YulTypedName",
                "src": "2596:9:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "2607:6:136",
                "nodeType": "YulTypedName",
                "src": "2607:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "2615:6:136",
                "nodeType": "YulTypedName",
                "src": "2615:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "2626:4:136",
                "nodeType": "YulTypedName",
                "src": "2626:4:136",
                "type": ""
              }
            ],
            "src": "2063:2013:136"
          },
          {
            "body": {
              "nativeSrc": "4162:149:136",
              "nodeType": "YulBlock",
              "src": "4162:149:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "4208:16:136",
                    "nodeType": "YulBlock",
                    "src": "4208:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "4217:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4217:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "4220:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4220:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "4210:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "4210:6:136"
                          },
                          "nativeSrc": "4210:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "4210:12:136"
                        },
                        "nativeSrc": "4210:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "4210:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "4183:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "4183:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "4192:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "4192:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "4179:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4179:3:136"
                        },
                        "nativeSrc": "4179:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4179:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4204:2:136",
                        "nodeType": "YulLiteral",
                        "src": "4204:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "4175:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "4175:3:136"
                    },
                    "nativeSrc": "4175:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4175:32:136"
                  },
                  "nativeSrc": "4172:52:136",
                  "nodeType": "YulIf",
                  "src": "4172:52:136"
                },
                {
                  "nativeSrc": "4233:14:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4233:14:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "4246:1:136",
                    "nodeType": "YulLiteral",
                    "src": "4246:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "4237:5:136",
                      "nodeType": "YulTypedName",
                      "src": "4237:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "4256:25:136",
                  "nodeType": "YulAssignment",
                  "src": "4256:25:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4271:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "4271:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "4265:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "4265:5:136"
                    },
                    "nativeSrc": "4265:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4265:16:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "4256:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "4256:5:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "4290:15:136",
                  "nodeType": "YulAssignment",
                  "src": "4290:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "4300:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "4300:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "4290:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4290:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes32_fromMemory",
            "nativeSrc": "4081:230:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "4128:9:136",
                "nodeType": "YulTypedName",
                "src": "4128:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "4139:7:136",
                "nodeType": "YulTypedName",
                "src": "4139:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "4151:6:136",
                "nodeType": "YulTypedName",
                "src": "4151:6:136",
                "type": ""
              }
            ],
            "src": "4081:230:136"
          },
          {
            "body": {
              "nativeSrc": "4379:1055:136",
              "nodeType": "YulBlock",
              "src": "4379:1055:136",
              "statements": [
                {
                  "nativeSrc": "4389:26:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4389:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "4405:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "4405:3:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4410:4:136",
                        "nodeType": "YulLiteral",
                        "src": "4410:4:136",
                        "type": "",
                        "value": "0x40"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "4401:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "4401:3:136"
                    },
                    "nativeSrc": "4401:14:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4401:14:136"
                  },
                  "variables": [
                    {
                      "name": "tail",
                      "nativeSrc": "4393:4:136",
                      "nodeType": "YulTypedName",
                      "src": "4393:4:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "4424:22:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4424:22:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "4440:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "4440:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "4434:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "4434:5:136"
                    },
                    "nativeSrc": "4434:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4434:12:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "4428:2:136",
                      "nodeType": "YulTypedName",
                      "src": "4428:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "4477:22:136",
                    "nodeType": "YulBlock",
                    "src": "4477:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x21",
                            "nativeSrc": "4479:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "4479:16:136"
                          },
                          "nativeSrc": "4479:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "4479:18:136"
                        },
                        "nativeSrc": "4479:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "4479:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "4468:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "4468:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4472:2:136",
                            "nodeType": "YulLiteral",
                            "src": "4472:2:136",
                            "type": "",
                            "value": "12"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "4465:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "4465:2:136"
                        },
                        "nativeSrc": "4465:10:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4465:10:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "4458:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4458:6:136"
                    },
                    "nativeSrc": "4458:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4458:18:136"
                  },
                  "nativeSrc": "4455:44:136",
                  "nodeType": "YulIf",
                  "src": "4455:44:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "4515:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "4515:3:136"
                      },
                      {
                        "name": "_1",
                        "nativeSrc": "4520:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "4520:2:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4508:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4508:6:136"
                    },
                    "nativeSrc": "4508:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4508:15:136"
                  },
                  "nativeSrc": "4508:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4508:15:136"
                },
                {
                  "nativeSrc": "4532:43:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4532:43:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "4562:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "4562:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4569:4:136",
                            "nodeType": "YulLiteral",
                            "src": "4569:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4558:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4558:3:136"
                        },
                        "nativeSrc": "4558:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4558:16:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "4552:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "4552:5:136"
                    },
                    "nativeSrc": "4552:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4552:23:136"
                  },
                  "variables": [
                    {
                      "name": "memberValue0",
                      "nativeSrc": "4536:12:136",
                      "nodeType": "YulTypedName",
                      "src": "4536:12:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "4595:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "4595:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4600:4:136",
                            "nodeType": "YulLiteral",
                            "src": "4600:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4591:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4591:3:136"
                        },
                        "nativeSrc": "4591:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4591:14:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4607:4:136",
                        "nodeType": "YulLiteral",
                        "src": "4607:4:136",
                        "type": "",
                        "value": "0x40"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4584:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4584:6:136"
                    },
                    "nativeSrc": "4584:28:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4584:28:136"
                  },
                  "nativeSrc": "4584:28:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4584:28:136"
                },
                {
                  "nativeSrc": "4621:17:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4621:17:136",
                  "value": {
                    "name": "tail",
                    "nativeSrc": "4634:4:136",
                    "nodeType": "YulIdentifier",
                    "src": "4634:4:136"
                  },
                  "variables": [
                    {
                      "name": "pos_1",
                      "nativeSrc": "4625:5:136",
                      "nodeType": "YulTypedName",
                      "src": "4625:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "4647:33:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4647:33:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memberValue0",
                        "nativeSrc": "4667:12:136",
                        "nodeType": "YulIdentifier",
                        "src": "4667:12:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "4661:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "4661:5:136"
                    },
                    "nativeSrc": "4661:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4661:19:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "4651:6:136",
                      "nodeType": "YulTypedName",
                      "src": "4651:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail",
                        "nativeSrc": "4696:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "4696:4:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "4702:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "4702:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4689:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4689:6:136"
                    },
                    "nativeSrc": "4689:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4689:20:136"
                  },
                  "nativeSrc": "4689:20:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4689:20:136"
                },
                {
                  "nativeSrc": "4718:21:136",
                  "nodeType": "YulAssignment",
                  "src": "4718:21:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "4731:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "4731:3:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4736:2:136",
                        "nodeType": "YulLiteral",
                        "src": "4736:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "4727:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "4727:3:136"
                    },
                    "nativeSrc": "4727:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4727:12:136"
                  },
                  "variableNames": [
                    {
                      "name": "pos_1",
                      "nativeSrc": "4718:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "4718:5:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "4748:47:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4748:47:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "4770:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "4770:3:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "4779:1:136",
                                "nodeType": "YulLiteral",
                                "src": "4779:1:136",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "4782:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "4782:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "4775:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "4775:3:136"
                            },
                            "nativeSrc": "4775:14:136",
                            "nodeType": "YulFunctionCall",
                            "src": "4775:14:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4766:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4766:3:136"
                        },
                        "nativeSrc": "4766:24:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4766:24:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4792:2:136",
                        "nodeType": "YulLiteral",
                        "src": "4792:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "4762:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "4762:3:136"
                    },
                    "nativeSrc": "4762:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4762:33:136"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nativeSrc": "4752:6:136",
                      "nodeType": "YulTypedName",
                      "src": "4752:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "4804:37:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4804:37:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memberValue0",
                        "nativeSrc": "4822:12:136",
                        "nodeType": "YulIdentifier",
                        "src": "4822:12:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4836:4:136",
                        "nodeType": "YulLiteral",
                        "src": "4836:4:136",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "4818:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "4818:3:136"
                    },
                    "nativeSrc": "4818:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4818:23:136"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nativeSrc": "4808:6:136",
                      "nodeType": "YulTypedName",
                      "src": "4808:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "4850:10:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4850:10:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "4859:1:136",
                    "nodeType": "YulLiteral",
                    "src": "4859:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nativeSrc": "4854:1:136",
                      "nodeType": "YulTypedName",
                      "src": "4854:1:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "4918:488:136",
                    "nodeType": "YulBlock",
                    "src": "4918:488:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos_1",
                              "nativeSrc": "4939:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "4939:5:136"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "tail_1",
                                      "nativeSrc": "4954:6:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "4954:6:136"
                                    },
                                    {
                                      "name": "pos",
                                      "nativeSrc": "4962:3:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "4962:3:136"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nativeSrc": "4950:3:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "4950:3:136"
                                  },
                                  "nativeSrc": "4950:16:136",
                                  "nodeType": "YulFunctionCall",
                                  "src": "4950:16:136"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "4972:2:136",
                                      "nodeType": "YulLiteral",
                                      "src": "4972:2:136",
                                      "type": "",
                                      "value": "95"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nativeSrc": "4968:3:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "4968:3:136"
                                  },
                                  "nativeSrc": "4968:7:136",
                                  "nodeType": "YulFunctionCall",
                                  "src": "4968:7:136"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "4946:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "4946:3:136"
                              },
                              "nativeSrc": "4946:30:136",
                              "nodeType": "YulFunctionCall",
                              "src": "4946:30:136"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "4932:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "4932:6:136"
                          },
                          "nativeSrc": "4932:45:136",
                          "nodeType": "YulFunctionCall",
                          "src": "4932:45:136"
                        },
                        "nativeSrc": "4932:45:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "4932:45:136"
                      },
                      {
                        "nativeSrc": "4990:23:136",
                        "nodeType": "YulVariableDeclaration",
                        "src": "4990:23:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nativeSrc": "5006:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "5006:6:136"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nativeSrc": "5000:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "5000:5:136"
                          },
                          "nativeSrc": "5000:13:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5000:13:136"
                        },
                        "variables": [
                          {
                            "name": "_2",
                            "nativeSrc": "4994:2:136",
                            "nodeType": "YulTypedName",
                            "src": "4994:2:136",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "5026:19:136",
                        "nodeType": "YulVariableDeclaration",
                        "src": "5026:19:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "_2",
                              "nativeSrc": "5042:2:136",
                              "nodeType": "YulIdentifier",
                              "src": "5042:2:136"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nativeSrc": "5036:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "5036:5:136"
                          },
                          "nativeSrc": "5036:9:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5036:9:136"
                        },
                        "variables": [
                          {
                            "name": "_3",
                            "nativeSrc": "5030:2:136",
                            "nodeType": "YulTypedName",
                            "src": "5030:2:136",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nativeSrc": "5080:22:136",
                          "nodeType": "YulBlock",
                          "src": "5080:22:136",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [],
                                "functionName": {
                                  "name": "panic_error_0x21",
                                  "nativeSrc": "5082:16:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "5082:16:136"
                                },
                                "nativeSrc": "5082:18:136",
                                "nodeType": "YulFunctionCall",
                                "src": "5082:18:136"
                              },
                              "nativeSrc": "5082:18:136",
                              "nodeType": "YulExpressionStatement",
                              "src": "5082:18:136"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_3",
                                  "nativeSrc": "5071:2:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "5071:2:136"
                                },
                                {
                                  "kind": "number",
                                  "nativeSrc": "5075:2:136",
                                  "nodeType": "YulLiteral",
                                  "src": "5075:2:136",
                                  "type": "",
                                  "value": "10"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nativeSrc": "5068:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "5068:2:136"
                              },
                              "nativeSrc": "5068:10:136",
                              "nodeType": "YulFunctionCall",
                              "src": "5068:10:136"
                            }
                          ],
                          "functionName": {
                            "name": "iszero",
                            "nativeSrc": "5061:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5061:6:136"
                          },
                          "nativeSrc": "5061:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5061:18:136"
                        },
                        "nativeSrc": "5058:44:136",
                        "nodeType": "YulIf",
                        "src": "5058:44:136"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "tail_1",
                              "nativeSrc": "5122:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "5122:6:136"
                            },
                            {
                              "name": "_3",
                              "nativeSrc": "5130:2:136",
                              "nodeType": "YulIdentifier",
                              "src": "5130:2:136"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "5115:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5115:6:136"
                          },
                          "nativeSrc": "5115:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5115:18:136"
                        },
                        "nativeSrc": "5115:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "5115:18:136"
                      },
                      {
                        "nativeSrc": "5146:42:136",
                        "nodeType": "YulVariableDeclaration",
                        "src": "5146:42:136",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "_2",
                                  "nativeSrc": "5178:2:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "5178:2:136"
                                },
                                {
                                  "kind": "number",
                                  "nativeSrc": "5182:4:136",
                                  "nodeType": "YulLiteral",
                                  "src": "5182:4:136",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "5174:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "5174:3:136"
                              },
                              "nativeSrc": "5174:13:136",
                              "nodeType": "YulFunctionCall",
                              "src": "5174:13:136"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nativeSrc": "5168:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "5168:5:136"
                          },
                          "nativeSrc": "5168:20:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5168:20:136"
                        },
                        "variables": [
                          {
                            "name": "memberValue0_1",
                            "nativeSrc": "5150:14:136",
                            "nodeType": "YulTypedName",
                            "src": "5150:14:136",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "tail_1",
                                  "nativeSrc": "5212:6:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "5212:6:136"
                                },
                                {
                                  "kind": "number",
                                  "nativeSrc": "5220:4:136",
                                  "nodeType": "YulLiteral",
                                  "src": "5220:4:136",
                                  "type": "",
                                  "value": "0x20"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "5208:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "5208:3:136"
                              },
                              "nativeSrc": "5208:17:136",
                              "nodeType": "YulFunctionCall",
                              "src": "5208:17:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5227:4:136",
                              "nodeType": "YulLiteral",
                              "src": "5227:4:136",
                              "type": "",
                              "value": "0x40"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "5201:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5201:6:136"
                          },
                          "nativeSrc": "5201:31:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5201:31:136"
                        },
                        "nativeSrc": "5201:31:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "5201:31:136"
                      },
                      {
                        "nativeSrc": "5245:73:136",
                        "nodeType": "YulAssignment",
                        "src": "5245:73:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "memberValue0_1",
                              "nativeSrc": "5284:14:136",
                              "nodeType": "YulIdentifier",
                              "src": "5284:14:136"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "tail_1",
                                  "nativeSrc": "5304:6:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "5304:6:136"
                                },
                                {
                                  "kind": "number",
                                  "nativeSrc": "5312:4:136",
                                  "nodeType": "YulLiteral",
                                  "src": "5312:4:136",
                                  "type": "",
                                  "value": "0x40"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "5300:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "5300:3:136"
                              },
                              "nativeSrc": "5300:17:136",
                              "nodeType": "YulFunctionCall",
                              "src": "5300:17:136"
                            }
                          ],
                          "functionName": {
                            "name": "abi_encode_string_memory_ptr",
                            "nativeSrc": "5255:28:136",
                            "nodeType": "YulIdentifier",
                            "src": "5255:28:136"
                          },
                          "nativeSrc": "5255:63:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5255:63:136"
                        },
                        "variableNames": [
                          {
                            "name": "tail_1",
                            "nativeSrc": "5245:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5245:6:136"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "5331:27:136",
                        "nodeType": "YulAssignment",
                        "src": "5331:27:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nativeSrc": "5345:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "5345:6:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5353:4:136",
                              "nodeType": "YulLiteral",
                              "src": "5353:4:136",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "5341:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "5341:3:136"
                          },
                          "nativeSrc": "5341:17:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5341:17:136"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nativeSrc": "5331:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5331:6:136"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "5371:25:136",
                        "nodeType": "YulAssignment",
                        "src": "5371:25:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos_1",
                              "nativeSrc": "5384:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "5384:5:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5391:4:136",
                              "nodeType": "YulLiteral",
                              "src": "5391:4:136",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "5380:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "5380:3:136"
                          },
                          "nativeSrc": "5380:16:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5380:16:136"
                        },
                        "variableNames": [
                          {
                            "name": "pos_1",
                            "nativeSrc": "5371:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "5371:5:136"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nativeSrc": "4880:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "4880:1:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "4883:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "4883:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "4877:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "4877:2:136"
                    },
                    "nativeSrc": "4877:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4877:13:136"
                  },
                  "nativeSrc": "4869:537:136",
                  "nodeType": "YulForLoop",
                  "post": {
                    "nativeSrc": "4891:18:136",
                    "nodeType": "YulBlock",
                    "src": "4891:18:136",
                    "statements": [
                      {
                        "nativeSrc": "4893:14:136",
                        "nodeType": "YulAssignment",
                        "src": "4893:14:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nativeSrc": "4902:1:136",
                              "nodeType": "YulIdentifier",
                              "src": "4902:1:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "4905:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4905:1:136",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "4898:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "4898:3:136"
                          },
                          "nativeSrc": "4898:9:136",
                          "nodeType": "YulFunctionCall",
                          "src": "4898:9:136"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nativeSrc": "4893:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "4893:1:136"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nativeSrc": "4873:3:136",
                    "nodeType": "YulBlock",
                    "src": "4873:3:136",
                    "statements": []
                  },
                  "src": "4869:537:136"
                },
                {
                  "nativeSrc": "5415:13:136",
                  "nodeType": "YulAssignment",
                  "src": "5415:13:136",
                  "value": {
                    "name": "tail_1",
                    "nativeSrc": "5422:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "5422:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "5415:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "5415:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_struct_RadonReducer",
            "nativeSrc": "4316:1118:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "4356:5:136",
                "nodeType": "YulTypedName",
                "src": "4356:5:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "4363:3:136",
                "nodeType": "YulTypedName",
                "src": "4363:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "4371:3:136",
                "nodeType": "YulTypedName",
                "src": "4371:3:136",
                "type": ""
              }
            ],
            "src": "4316:1118:136"
          },
          {
            "body": {
              "nativeSrc": "5770:693:136",
              "nodeType": "YulBlock",
              "src": "5770:693:136",
              "statements": [
                {
                  "nativeSrc": "5780:32:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5780:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5798:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5798:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5809:2:136",
                        "nodeType": "YulLiteral",
                        "src": "5809:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5794:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "5794:3:136"
                    },
                    "nativeSrc": "5794:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5794:18:136"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nativeSrc": "5784:6:136",
                      "nodeType": "YulTypedName",
                      "src": "5784:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5828:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5828:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5839:2:136",
                        "nodeType": "YulLiteral",
                        "src": "5839:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5821:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5821:6:136"
                    },
                    "nativeSrc": "5821:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5821:21:136"
                  },
                  "nativeSrc": "5821:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "5821:21:136"
                },
                {
                  "nativeSrc": "5851:17:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5851:17:136",
                  "value": {
                    "name": "tail_1",
                    "nativeSrc": "5862:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "5862:6:136"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nativeSrc": "5855:3:136",
                      "nodeType": "YulTypedName",
                      "src": "5855:3:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "5877:27:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5877:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "5897:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5897:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "5891:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "5891:5:136"
                    },
                    "nativeSrc": "5891:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5891:13:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "5881:6:136",
                      "nodeType": "YulTypedName",
                      "src": "5881:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nativeSrc": "5920:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5920:6:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "5928:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5928:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5913:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5913:6:136"
                    },
                    "nativeSrc": "5913:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5913:22:136"
                  },
                  "nativeSrc": "5913:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "5913:22:136"
                },
                {
                  "nativeSrc": "5944:26:136",
                  "nodeType": "YulAssignment",
                  "src": "5944:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5955:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5955:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5966:3:136",
                        "nodeType": "YulLiteral",
                        "src": "5966:3:136",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5951:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "5951:3:136"
                    },
                    "nativeSrc": "5951:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5951:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nativeSrc": "5944:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "5944:3:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "5979:31:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5979:31:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "5997:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5997:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "6005:4:136",
                        "nodeType": "YulLiteral",
                        "src": "6005:4:136",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5993:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "5993:3:136"
                    },
                    "nativeSrc": "5993:17:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5993:17:136"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nativeSrc": "5983:6:136",
                      "nodeType": "YulTypedName",
                      "src": "5983:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "6019:10:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "6019:10:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "6028:1:136",
                    "nodeType": "YulLiteral",
                    "src": "6028:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nativeSrc": "6023:1:136",
                      "nodeType": "YulTypedName",
                      "src": "6023:1:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "6087:124:136",
                    "nodeType": "YulBlock",
                    "src": "6087:124:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "6108:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "6108:3:136"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr",
                                  "nativeSrc": "6119:6:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "6119:6:136"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nativeSrc": "6113:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "6113:5:136"
                              },
                              "nativeSrc": "6113:13:136",
                              "nodeType": "YulFunctionCall",
                              "src": "6113:13:136"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "6101:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "6101:6:136"
                          },
                          "nativeSrc": "6101:26:136",
                          "nodeType": "YulFunctionCall",
                          "src": "6101:26:136"
                        },
                        "nativeSrc": "6101:26:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "6101:26:136"
                      },
                      {
                        "nativeSrc": "6140:21:136",
                        "nodeType": "YulAssignment",
                        "src": "6140:21:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "6151:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "6151:3:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "6156:4:136",
                              "nodeType": "YulLiteral",
                              "src": "6156:4:136",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "6147:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "6147:3:136"
                          },
                          "nativeSrc": "6147:14:136",
                          "nodeType": "YulFunctionCall",
                          "src": "6147:14:136"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nativeSrc": "6140:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "6140:3:136"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "6174:27:136",
                        "nodeType": "YulAssignment",
                        "src": "6174:27:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nativeSrc": "6188:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "6188:6:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "6196:4:136",
                              "nodeType": "YulLiteral",
                              "src": "6196:4:136",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "6184:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "6184:3:136"
                          },
                          "nativeSrc": "6184:17:136",
                          "nodeType": "YulFunctionCall",
                          "src": "6184:17:136"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nativeSrc": "6174:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "6174:6:136"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nativeSrc": "6049:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "6049:1:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "6052:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "6052:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "6046:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "6046:2:136"
                    },
                    "nativeSrc": "6046:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6046:13:136"
                  },
                  "nativeSrc": "6038:173:136",
                  "nodeType": "YulForLoop",
                  "post": {
                    "nativeSrc": "6060:18:136",
                    "nodeType": "YulBlock",
                    "src": "6060:18:136",
                    "statements": [
                      {
                        "nativeSrc": "6062:14:136",
                        "nodeType": "YulAssignment",
                        "src": "6062:14:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nativeSrc": "6071:1:136",
                              "nodeType": "YulIdentifier",
                              "src": "6071:1:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "6074:1:136",
                              "nodeType": "YulLiteral",
                              "src": "6074:1:136",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "6067:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "6067:3:136"
                          },
                          "nativeSrc": "6067:9:136",
                          "nodeType": "YulFunctionCall",
                          "src": "6067:9:136"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nativeSrc": "6062:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "6062:1:136"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nativeSrc": "6042:3:136",
                    "nodeType": "YulBlock",
                    "src": "6042:3:136",
                    "statements": []
                  },
                  "src": "6038:173:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "6231:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "6231:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6242:4:136",
                            "nodeType": "YulLiteral",
                            "src": "6242:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "6227:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6227:3:136"
                        },
                        "nativeSrc": "6227:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6227:20:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "6253:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "6253:3:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "6258:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "6258:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "6249:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6249:3:136"
                        },
                        "nativeSrc": "6249:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6249:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6220:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6220:6:136"
                    },
                    "nativeSrc": "6220:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6220:49:136"
                  },
                  "nativeSrc": "6220:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "6220:49:136"
                },
                {
                  "nativeSrc": "6278:57:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "6278:57:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "6323:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "6323:6:136"
                      },
                      {
                        "name": "pos",
                        "nativeSrc": "6331:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "6331:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_struct_RadonReducer",
                      "nativeSrc": "6292:30:136",
                      "nodeType": "YulIdentifier",
                      "src": "6292:30:136"
                    },
                    "nativeSrc": "6292:43:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6292:43:136"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nativeSrc": "6282:6:136",
                      "nodeType": "YulTypedName",
                      "src": "6282:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "6355:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "6355:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6366:2:136",
                            "nodeType": "YulLiteral",
                            "src": "6366:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "6351:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6351:3:136"
                        },
                        "nativeSrc": "6351:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6351:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_2",
                            "nativeSrc": "6375:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "6375:6:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "6383:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "6383:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "6371:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6371:3:136"
                        },
                        "nativeSrc": "6371:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6371:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6344:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6344:6:136"
                    },
                    "nativeSrc": "6344:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6344:50:136"
                  },
                  "nativeSrc": "6344:50:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "6344:50:136"
                },
                {
                  "nativeSrc": "6403:54:136",
                  "nodeType": "YulAssignment",
                  "src": "6403:54:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nativeSrc": "6442:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "6442:6:136"
                      },
                      {
                        "name": "tail_2",
                        "nativeSrc": "6450:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "6450:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_struct_RadonReducer",
                      "nativeSrc": "6411:30:136",
                      "nodeType": "YulIdentifier",
                      "src": "6411:30:136"
                    },
                    "nativeSrc": "6411:46:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6411:46:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "6403:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "6403:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_t_struct$_RadonReducer_$37748_memory_ptr_t_struct$_RadonReducer_$37748_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr_t_struct$_RadonReducer_$37748_memory_ptr_t_struct$_RadonReducer_$37748_memory_ptr__fromStack_reversed",
            "nativeSrc": "5439:1024:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "5723:9:136",
                "nodeType": "YulTypedName",
                "src": "5723:9:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "5734:6:136",
                "nodeType": "YulTypedName",
                "src": "5734:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "5742:6:136",
                "nodeType": "YulTypedName",
                "src": "5742:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "5750:6:136",
                "nodeType": "YulTypedName",
                "src": "5750:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "5761:4:136",
                "nodeType": "YulTypedName",
                "src": "5761:4:136",
                "type": ""
              }
            ],
            "src": "5439:1024:136"
          },
          {
            "body": {
              "nativeSrc": "6580:149:136",
              "nodeType": "YulBlock",
              "src": "6580:149:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "6626:16:136",
                    "nodeType": "YulBlock",
                    "src": "6626:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "6635:1:136",
                              "nodeType": "YulLiteral",
                              "src": "6635:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "6638:1:136",
                              "nodeType": "YulLiteral",
                              "src": "6638:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "6628:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "6628:6:136"
                          },
                          "nativeSrc": "6628:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "6628:12:136"
                        },
                        "nativeSrc": "6628:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "6628:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "6601:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "6601:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "6610:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "6610:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "6597:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6597:3:136"
                        },
                        "nativeSrc": "6597:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6597:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "6622:2:136",
                        "nodeType": "YulLiteral",
                        "src": "6622:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "6593:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "6593:3:136"
                    },
                    "nativeSrc": "6593:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6593:32:136"
                  },
                  "nativeSrc": "6590:52:136",
                  "nodeType": "YulIf",
                  "src": "6590:52:136"
                },
                {
                  "nativeSrc": "6651:14:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "6651:14:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "6664:1:136",
                    "nodeType": "YulLiteral",
                    "src": "6664:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "6655:5:136",
                      "nodeType": "YulTypedName",
                      "src": "6655:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "6674:25:136",
                  "nodeType": "YulAssignment",
                  "src": "6674:25:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6689:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "6689:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "6683:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "6683:5:136"
                    },
                    "nativeSrc": "6683:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6683:16:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "6674:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "6674:5:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "6708:15:136",
                  "nodeType": "YulAssignment",
                  "src": "6708:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "6718:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "6718:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "6708:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6708:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_userDefinedValueType$_RadonHash_$37153_fromMemory",
            "nativeSrc": "6468:261:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "6546:9:136",
                "nodeType": "YulTypedName",
                "src": "6546:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "6557:7:136",
                "nodeType": "YulTypedName",
                "src": "6557:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "6569:6:136",
                "nodeType": "YulTypedName",
                "src": "6569:6:136",
                "type": ""
              }
            ],
            "src": "6468:261:136"
          },
          {
            "body": {
              "nativeSrc": "6943:414:136",
              "nodeType": "YulBlock",
              "src": "6943:414:136",
              "statements": [
                {
                  "nativeSrc": "6953:26:136",
                  "nodeType": "YulAssignment",
                  "src": "6953:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6965:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "6965:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "6976:2:136",
                        "nodeType": "YulLiteral",
                        "src": "6976:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "6961:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "6961:3:136"
                    },
                    "nativeSrc": "6961:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6961:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "6953:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "6953:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6995:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "6995:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "7006:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "7006:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6988:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6988:6:136"
                    },
                    "nativeSrc": "6988:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6988:25:136"
                  },
                  "nativeSrc": "6988:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "6988:25:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "7033:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "7033:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7044:2:136",
                            "nodeType": "YulLiteral",
                            "src": "7044:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7029:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7029:3:136"
                        },
                        "nativeSrc": "7029:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7029:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "7053:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "7053:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7061:4:136",
                            "nodeType": "YulLiteral",
                            "src": "7061:4:136",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "7049:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7049:3:136"
                        },
                        "nativeSrc": "7049:17:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7049:17:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7022:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "7022:6:136"
                    },
                    "nativeSrc": "7022:45:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7022:45:136"
                  },
                  "nativeSrc": "7022:45:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "7022:45:136"
                },
                {
                  "nativeSrc": "7076:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7076:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "7091:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "7091:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7102:2:136",
                        "nodeType": "YulLiteral",
                        "src": "7102:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "7087:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "7087:3:136"
                    },
                    "nativeSrc": "7087:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7087:18:136"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nativeSrc": "7080:3:136",
                      "nodeType": "YulTypedName",
                      "src": "7080:3:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "7114:10:136",
                  "nodeType": "YulAssignment",
                  "src": "7114:10:136",
                  "value": {
                    "name": "pos",
                    "nativeSrc": "7121:3:136",
                    "nodeType": "YulIdentifier",
                    "src": "7121:3:136"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nativeSrc": "7114:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "7114:3:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "7133:20:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7133:20:136",
                  "value": {
                    "name": "value2",
                    "nativeSrc": "7147:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "7147:6:136"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nativeSrc": "7137:6:136",
                      "nodeType": "YulTypedName",
                      "src": "7137:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "7162:10:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7162:10:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "7171:1:136",
                    "nodeType": "YulLiteral",
                    "src": "7171:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nativeSrc": "7166:1:136",
                      "nodeType": "YulTypedName",
                      "src": "7166:1:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "7231:120:136",
                    "nodeType": "YulBlock",
                    "src": "7231:120:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "7252:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "7252:3:136"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr",
                                  "nativeSrc": "7263:6:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "7263:6:136"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nativeSrc": "7257:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "7257:5:136"
                              },
                              "nativeSrc": "7257:13:136",
                              "nodeType": "YulFunctionCall",
                              "src": "7257:13:136"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "7245:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "7245:6:136"
                          },
                          "nativeSrc": "7245:26:136",
                          "nodeType": "YulFunctionCall",
                          "src": "7245:26:136"
                        },
                        "nativeSrc": "7245:26:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "7245:26:136"
                      },
                      {
                        "nativeSrc": "7284:19:136",
                        "nodeType": "YulAssignment",
                        "src": "7284:19:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "7295:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "7295:3:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "7300:2:136",
                              "nodeType": "YulLiteral",
                              "src": "7300:2:136",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "7291:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "7291:3:136"
                          },
                          "nativeSrc": "7291:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "7291:12:136"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nativeSrc": "7284:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "7284:3:136"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "7316:25:136",
                        "nodeType": "YulAssignment",
                        "src": "7316:25:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nativeSrc": "7330:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "7330:6:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "7338:2:136",
                              "nodeType": "YulLiteral",
                              "src": "7338:2:136",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "7326:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "7326:3:136"
                          },
                          "nativeSrc": "7326:15:136",
                          "nodeType": "YulFunctionCall",
                          "src": "7326:15:136"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nativeSrc": "7316:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "7316:6:136"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nativeSrc": "7192:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "7192:1:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7195:4:136",
                        "nodeType": "YulLiteral",
                        "src": "7195:4:136",
                        "type": "",
                        "value": "0x01"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "7189:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "7189:2:136"
                    },
                    "nativeSrc": "7189:11:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7189:11:136"
                  },
                  "nativeSrc": "7181:170:136",
                  "nodeType": "YulForLoop",
                  "post": {
                    "nativeSrc": "7201:21:136",
                    "nodeType": "YulBlock",
                    "src": "7201:21:136",
                    "statements": [
                      {
                        "nativeSrc": "7203:17:136",
                        "nodeType": "YulAssignment",
                        "src": "7203:17:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nativeSrc": "7212:1:136",
                              "nodeType": "YulIdentifier",
                              "src": "7212:1:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "7215:4:136",
                              "nodeType": "YulLiteral",
                              "src": "7215:4:136",
                              "type": "",
                              "value": "0x01"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "7208:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "7208:3:136"
                          },
                          "nativeSrc": "7208:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "7208:12:136"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nativeSrc": "7203:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "7203:1:136"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nativeSrc": "7185:3:136",
                    "nodeType": "YulBlock",
                    "src": "7185:3:136",
                    "statements": []
                  },
                  "src": "7181:170:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_rational_1_by_1_t_array$_t_bytes32_$1_memory_ptr__to_t_uint256_t_uint8_t_array$_t_bytes32_$1_memory_ptr__fromStack_reversed",
            "nativeSrc": "6734:623:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "6896:9:136",
                "nodeType": "YulTypedName",
                "src": "6896:9:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "6907:6:136",
                "nodeType": "YulTypedName",
                "src": "6907:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "6915:6:136",
                "nodeType": "YulTypedName",
                "src": "6915:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "6923:6:136",
                "nodeType": "YulTypedName",
                "src": "6923:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "6934:4:136",
                "nodeType": "YulTypedName",
                "src": "6934:4:136",
                "type": ""
              }
            ],
            "src": "6734:623:136"
          },
          {
            "body": {
              "nativeSrc": "7468:1059:136",
              "nodeType": "YulBlock",
              "src": "7468:1059:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "7514:16:136",
                    "nodeType": "YulBlock",
                    "src": "7514:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "7523:1:136",
                              "nodeType": "YulLiteral",
                              "src": "7523:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "7526:1:136",
                              "nodeType": "YulLiteral",
                              "src": "7526:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "7516:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "7516:6:136"
                          },
                          "nativeSrc": "7516:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "7516:12:136"
                        },
                        "nativeSrc": "7516:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "7516:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "7489:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "7489:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "7498:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "7498:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "7485:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7485:3:136"
                        },
                        "nativeSrc": "7485:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7485:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7510:2:136",
                        "nodeType": "YulLiteral",
                        "src": "7510:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "7481:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "7481:3:136"
                    },
                    "nativeSrc": "7481:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7481:32:136"
                  },
                  "nativeSrc": "7478:52:136",
                  "nodeType": "YulIf",
                  "src": "7478:52:136"
                },
                {
                  "nativeSrc": "7539:30:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7539:30:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "7559:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "7559:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "7553:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "7553:5:136"
                    },
                    "nativeSrc": "7553:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7553:16:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "7543:6:136",
                      "nodeType": "YulTypedName",
                      "src": "7543:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "7612:16:136",
                    "nodeType": "YulBlock",
                    "src": "7612:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "7621:1:136",
                              "nodeType": "YulLiteral",
                              "src": "7621:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "7624:1:136",
                              "nodeType": "YulLiteral",
                              "src": "7624:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "7614:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "7614:6:136"
                          },
                          "nativeSrc": "7614:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "7614:12:136"
                        },
                        "nativeSrc": "7614:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "7614:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "7584:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "7584:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "7600:2:136",
                                "nodeType": "YulLiteral",
                                "src": "7600:2:136",
                                "type": "",
                                "value": "64"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "7604:1:136",
                                "nodeType": "YulLiteral",
                                "src": "7604:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "7596:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "7596:3:136"
                            },
                            "nativeSrc": "7596:10:136",
                            "nodeType": "YulFunctionCall",
                            "src": "7596:10:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7608:1:136",
                            "nodeType": "YulLiteral",
                            "src": "7608:1:136",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "7592:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7592:3:136"
                        },
                        "nativeSrc": "7592:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7592:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "7581:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "7581:2:136"
                    },
                    "nativeSrc": "7581:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7581:30:136"
                  },
                  "nativeSrc": "7578:50:136",
                  "nodeType": "YulIf",
                  "src": "7578:50:136"
                },
                {
                  "nativeSrc": "7637:32:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7637:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "7651:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "7651:9:136"
                      },
                      {
                        "name": "offset",
                        "nativeSrc": "7662:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "7662:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "7647:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "7647:3:136"
                    },
                    "nativeSrc": "7647:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7647:22:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "7641:2:136",
                      "nodeType": "YulTypedName",
                      "src": "7641:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "7717:16:136",
                    "nodeType": "YulBlock",
                    "src": "7717:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "7726:1:136",
                              "nodeType": "YulLiteral",
                              "src": "7726:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "7729:1:136",
                              "nodeType": "YulLiteral",
                              "src": "7729:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "7719:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "7719:6:136"
                          },
                          "nativeSrc": "7719:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "7719:12:136"
                        },
                        "nativeSrc": "7719:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "7719:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "7696:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "7696:2:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "7700:4:136",
                                "nodeType": "YulLiteral",
                                "src": "7700:4:136",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "7692:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "7692:3:136"
                            },
                            "nativeSrc": "7692:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "7692:13:136"
                          },
                          {
                            "name": "dataEnd",
                            "nativeSrc": "7707:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "7707:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nativeSrc": "7688:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7688:3:136"
                        },
                        "nativeSrc": "7688:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7688:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "7681:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "7681:6:136"
                    },
                    "nativeSrc": "7681:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7681:35:136"
                  },
                  "nativeSrc": "7678:55:136",
                  "nodeType": "YulIf",
                  "src": "7678:55:136"
                },
                {
                  "nativeSrc": "7742:23:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7742:23:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "7762:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "7762:2:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "7756:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "7756:5:136"
                    },
                    "nativeSrc": "7756:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7756:9:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "7746:6:136",
                      "nodeType": "YulTypedName",
                      "src": "7746:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "7808:22:136",
                    "nodeType": "YulBlock",
                    "src": "7808:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "7810:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "7810:16:136"
                          },
                          "nativeSrc": "7810:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "7810:18:136"
                        },
                        "nativeSrc": "7810:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "7810:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nativeSrc": "7780:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "7780:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "7796:2:136",
                                "nodeType": "YulLiteral",
                                "src": "7796:2:136",
                                "type": "",
                                "value": "64"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "7800:1:136",
                                "nodeType": "YulLiteral",
                                "src": "7800:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "7792:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "7792:3:136"
                            },
                            "nativeSrc": "7792:10:136",
                            "nodeType": "YulFunctionCall",
                            "src": "7792:10:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7804:1:136",
                            "nodeType": "YulLiteral",
                            "src": "7804:1:136",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "7788:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7788:3:136"
                        },
                        "nativeSrc": "7788:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7788:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "7777:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "7777:2:136"
                    },
                    "nativeSrc": "7777:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7777:30:136"
                  },
                  "nativeSrc": "7774:56:136",
                  "nodeType": "YulIf",
                  "src": "7774:56:136"
                },
                {
                  "nativeSrc": "7839:24:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7839:24:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "7853:1:136",
                        "nodeType": "YulLiteral",
                        "src": "7853:1:136",
                        "type": "",
                        "value": "5"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "7856:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "7856:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "shl",
                      "nativeSrc": "7849:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "7849:3:136"
                    },
                    "nativeSrc": "7849:14:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7849:14:136"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nativeSrc": "7843:2:136",
                      "nodeType": "YulTypedName",
                      "src": "7843:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "7872:23:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7872:23:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "7892:2:136",
                        "nodeType": "YulLiteral",
                        "src": "7892:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "7886:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "7886:5:136"
                    },
                    "nativeSrc": "7886:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7886:9:136"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nativeSrc": "7876:6:136",
                      "nodeType": "YulTypedName",
                      "src": "7876:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "7904:56:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7904:56:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "7926:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "7926:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nativeSrc": "7942:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "7942:2:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "7946:2:136",
                                "nodeType": "YulLiteral",
                                "src": "7946:2:136",
                                "type": "",
                                "value": "63"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "7938:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "7938:3:136"
                            },
                            "nativeSrc": "7938:11:136",
                            "nodeType": "YulFunctionCall",
                            "src": "7938:11:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "7955:2:136",
                                "nodeType": "YulLiteral",
                                "src": "7955:2:136",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nativeSrc": "7951:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "7951:3:136"
                            },
                            "nativeSrc": "7951:7:136",
                            "nodeType": "YulFunctionCall",
                            "src": "7951:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "7934:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7934:3:136"
                        },
                        "nativeSrc": "7934:25:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7934:25:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "7922:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "7922:3:136"
                    },
                    "nativeSrc": "7922:38:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7922:38:136"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nativeSrc": "7908:10:136",
                      "nodeType": "YulTypedName",
                      "src": "7908:10:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "8035:22:136",
                    "nodeType": "YulBlock",
                    "src": "8035:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "8037:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "8037:16:136"
                          },
                          "nativeSrc": "8037:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "8037:18:136"
                        },
                        "nativeSrc": "8037:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "8037:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "7978:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "7978:10:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "7998:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "7998:2:136",
                                    "type": "",
                                    "value": "64"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "8002:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "8002:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "7994:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "7994:3:136"
                                },
                                "nativeSrc": "7994:10:136",
                                "nodeType": "YulFunctionCall",
                                "src": "7994:10:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "8006:1:136",
                                "nodeType": "YulLiteral",
                                "src": "8006:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "7990:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "7990:3:136"
                            },
                            "nativeSrc": "7990:18:136",
                            "nodeType": "YulFunctionCall",
                            "src": "7990:18:136"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nativeSrc": "7975:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "7975:2:136"
                        },
                        "nativeSrc": "7975:34:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7975:34:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "8014:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "8014:10:136"
                          },
                          {
                            "name": "memPtr",
                            "nativeSrc": "8026:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "8026:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "8011:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "8011:2:136"
                        },
                        "nativeSrc": "8011:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "8011:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nativeSrc": "7972:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "7972:2:136"
                    },
                    "nativeSrc": "7972:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7972:62:136"
                  },
                  "nativeSrc": "7969:88:136",
                  "nodeType": "YulIf",
                  "src": "7969:88:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "8073:2:136",
                        "nodeType": "YulLiteral",
                        "src": "8073:2:136",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nativeSrc": "8077:10:136",
                        "nodeType": "YulIdentifier",
                        "src": "8077:10:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "8066:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8066:6:136"
                    },
                    "nativeSrc": "8066:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8066:22:136"
                  },
                  "nativeSrc": "8066:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "8066:22:136"
                },
                {
                  "nativeSrc": "8097:17:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8097:17:136",
                  "value": {
                    "name": "memPtr",
                    "nativeSrc": "8108:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "8108:6:136"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nativeSrc": "8101:3:136",
                      "nodeType": "YulTypedName",
                      "src": "8101:3:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "8130:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "8130:6:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "8138:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "8138:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "8123:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8123:6:136"
                    },
                    "nativeSrc": "8123:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8123:22:136"
                  },
                  "nativeSrc": "8123:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "8123:22:136"
                },
                {
                  "nativeSrc": "8154:22:136",
                  "nodeType": "YulAssignment",
                  "src": "8154:22:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "8165:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "8165:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8173:2:136",
                        "nodeType": "YulLiteral",
                        "src": "8173:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "8161:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "8161:3:136"
                    },
                    "nativeSrc": "8161:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8161:15:136"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nativeSrc": "8154:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "8154:3:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "8185:34:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8185:34:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "8207:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "8207:2:136"
                          },
                          {
                            "name": "_2",
                            "nativeSrc": "8211:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "8211:2:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "8203:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "8203:3:136"
                        },
                        "nativeSrc": "8203:11:136",
                        "nodeType": "YulFunctionCall",
                        "src": "8203:11:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8216:2:136",
                        "nodeType": "YulLiteral",
                        "src": "8216:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "8199:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "8199:3:136"
                    },
                    "nativeSrc": "8199:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8199:20:136"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nativeSrc": "8189:6:136",
                      "nodeType": "YulTypedName",
                      "src": "8189:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "8251:16:136",
                    "nodeType": "YulBlock",
                    "src": "8251:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "8260:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8260:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8263:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8263:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "8253:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "8253:6:136"
                          },
                          "nativeSrc": "8253:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "8253:12:136"
                        },
                        "nativeSrc": "8253:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "8253:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nativeSrc": "8234:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "8234:6:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "8242:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "8242:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "8231:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "8231:2:136"
                    },
                    "nativeSrc": "8231:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8231:19:136"
                  },
                  "nativeSrc": "8228:39:136",
                  "nodeType": "YulIf",
                  "src": "8228:39:136"
                },
                {
                  "nativeSrc": "8276:22:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8276:22:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "8291:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "8291:2:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8295:2:136",
                        "nodeType": "YulLiteral",
                        "src": "8295:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "8287:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "8287:3:136"
                    },
                    "nativeSrc": "8287:11:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8287:11:136"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nativeSrc": "8280:3:136",
                      "nodeType": "YulTypedName",
                      "src": "8280:3:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "8363:133:136",
                    "nodeType": "YulBlock",
                    "src": "8363:133:136",
                    "statements": [
                      {
                        "nativeSrc": "8377:14:136",
                        "nodeType": "YulVariableDeclaration",
                        "src": "8377:14:136",
                        "value": {
                          "kind": "number",
                          "nativeSrc": "8390:1:136",
                          "nodeType": "YulLiteral",
                          "src": "8390:1:136",
                          "type": "",
                          "value": "0"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nativeSrc": "8381:5:136",
                            "nodeType": "YulTypedName",
                            "src": "8381:5:136",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "8404:19:136",
                        "nodeType": "YulAssignment",
                        "src": "8404:19:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nativeSrc": "8419:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "8419:3:136"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nativeSrc": "8413:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "8413:5:136"
                          },
                          "nativeSrc": "8413:10:136",
                          "nodeType": "YulFunctionCall",
                          "src": "8413:10:136"
                        },
                        "variableNames": [
                          {
                            "name": "value",
                            "nativeSrc": "8404:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "8404:5:136"
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nativeSrc": "8443:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "8443:3:136"
                            },
                            {
                              "name": "value",
                              "nativeSrc": "8448:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "8448:5:136"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "8436:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "8436:6:136"
                          },
                          "nativeSrc": "8436:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "8436:18:136"
                        },
                        "nativeSrc": "8436:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "8436:18:136"
                      },
                      {
                        "nativeSrc": "8467:19:136",
                        "nodeType": "YulAssignment",
                        "src": "8467:19:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nativeSrc": "8478:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "8478:3:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8483:2:136",
                              "nodeType": "YulLiteral",
                              "src": "8483:2:136",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "8474:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "8474:3:136"
                          },
                          "nativeSrc": "8474:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "8474:12:136"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nativeSrc": "8467:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "8467:3:136"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nativeSrc": "8318:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "8318:3:136"
                      },
                      {
                        "name": "srcEnd",
                        "nativeSrc": "8323:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "8323:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "8315:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "8315:2:136"
                    },
                    "nativeSrc": "8315:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8315:15:136"
                  },
                  "nativeSrc": "8307:189:136",
                  "nodeType": "YulForLoop",
                  "post": {
                    "nativeSrc": "8331:23:136",
                    "nodeType": "YulBlock",
                    "src": "8331:23:136",
                    "statements": [
                      {
                        "nativeSrc": "8333:19:136",
                        "nodeType": "YulAssignment",
                        "src": "8333:19:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nativeSrc": "8344:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "8344:3:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8349:2:136",
                              "nodeType": "YulLiteral",
                              "src": "8349:2:136",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "8340:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "8340:3:136"
                          },
                          "nativeSrc": "8340:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "8340:12:136"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nativeSrc": "8333:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "8333:3:136"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nativeSrc": "8311:3:136",
                    "nodeType": "YulBlock",
                    "src": "8311:3:136",
                    "statements": []
                  },
                  "src": "8307:189:136"
                },
                {
                  "nativeSrc": "8505:16:136",
                  "nodeType": "YulAssignment",
                  "src": "8505:16:136",
                  "value": {
                    "name": "memPtr",
                    "nativeSrc": "8515:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "8515:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "8505:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8505:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory",
            "nativeSrc": "7362:1165:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "7434:9:136",
                "nodeType": "YulTypedName",
                "src": "7434:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "7445:7:136",
                "nodeType": "YulTypedName",
                "src": "7445:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "7457:6:136",
                "nodeType": "YulTypedName",
                "src": "7457:6:136",
                "type": ""
              }
            ],
            "src": "7362:1165:136"
          },
          {
            "body": {
              "nativeSrc": "8582:162:136",
              "nodeType": "YulBlock",
              "src": "8582:162:136",
              "statements": [
                {
                  "nativeSrc": "8592:26:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8592:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "8612:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "8612:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "8606:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "8606:5:136"
                    },
                    "nativeSrc": "8606:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8606:12:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "8596:6:136",
                      "nodeType": "YulTypedName",
                      "src": "8596:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "8633:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "8633:3:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "8642:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "8642:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "8649:4:136",
                            "nodeType": "YulLiteral",
                            "src": "8649:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "8638:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "8638:3:136"
                        },
                        "nativeSrc": "8638:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "8638:16:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "8656:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "8656:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mcopy",
                      "nativeSrc": "8627:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "8627:5:136"
                    },
                    "nativeSrc": "8627:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8627:36:136"
                  },
                  "nativeSrc": "8627:36:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "8627:36:136"
                },
                {
                  "nativeSrc": "8672:26:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8672:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "8686:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "8686:3:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "8691:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "8691:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "8682:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "8682:3:136"
                    },
                    "nativeSrc": "8682:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8682:16:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "8676:2:136",
                      "nodeType": "YulTypedName",
                      "src": "8676:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "8714:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "8714:2:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8718:1:136",
                        "nodeType": "YulLiteral",
                        "src": "8718:1:136",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "8707:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8707:6:136"
                    },
                    "nativeSrc": "8707:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8707:13:136"
                  },
                  "nativeSrc": "8707:13:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "8707:13:136"
                },
                {
                  "nativeSrc": "8729:9:136",
                  "nodeType": "YulAssignment",
                  "src": "8729:9:136",
                  "value": {
                    "name": "_1",
                    "nativeSrc": "8736:2:136",
                    "nodeType": "YulIdentifier",
                    "src": "8736:2:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "8729:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "8729:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string",
            "nativeSrc": "8532:212:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "8559:5:136",
                "nodeType": "YulTypedName",
                "src": "8559:5:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "8566:3:136",
                "nodeType": "YulTypedName",
                "src": "8566:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "8574:3:136",
                "nodeType": "YulTypedName",
                "src": "8574:3:136",
                "type": ""
              }
            ],
            "src": "8532:212:136"
          },
          {
            "body": {
              "nativeSrc": "9037:134:136",
              "nodeType": "YulBlock",
              "src": "9037:134:136",
              "statements": [
                {
                  "nativeSrc": "9047:40:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9047:40:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "9075:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "9075:6:136"
                      },
                      {
                        "name": "pos",
                        "nativeSrc": "9083:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "9083:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nativeSrc": "9057:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "9057:17:136"
                    },
                    "nativeSrc": "9057:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9057:30:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "9051:2:136",
                      "nodeType": "YulTypedName",
                      "src": "9051:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "9103:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "9103:2:136"
                      },
                      {
                        "hexValue": "3a20",
                        "kind": "string",
                        "nativeSrc": "9107:4:136",
                        "nodeType": "YulLiteral",
                        "src": "9107:4:136",
                        "type": "",
                        "value": ": "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "9096:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9096:6:136"
                    },
                    "nativeSrc": "9096:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9096:16:136"
                  },
                  "nativeSrc": "9096:16:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "9096:16:136"
                },
                {
                  "nativeSrc": "9121:44:136",
                  "nodeType": "YulAssignment",
                  "src": "9121:44:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "9146:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "9146:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "9158:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "9158:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9162:1:136",
                            "nodeType": "YulLiteral",
                            "src": "9162:1:136",
                            "type": "",
                            "value": "2"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9154:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "9154:3:136"
                        },
                        "nativeSrc": "9154:10:136",
                        "nodeType": "YulFunctionCall",
                        "src": "9154:10:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nativeSrc": "9128:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "9128:17:136"
                    },
                    "nativeSrc": "9128:37:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9128:37:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "9121:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "9121:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nativeSrc": "8749:422:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "9005:3:136",
                "nodeType": "YulTypedName",
                "src": "9005:3:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "9010:6:136",
                "nodeType": "YulTypedName",
                "src": "9010:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "9018:6:136",
                "nodeType": "YulTypedName",
                "src": "9018:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "9029:3:136",
                "nodeType": "YulTypedName",
                "src": "9029:3:136",
                "type": ""
              }
            ],
            "src": "8749:422:136"
          },
          {
            "body": {
              "nativeSrc": "9297:110:136",
              "nodeType": "YulBlock",
              "src": "9297:110:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "9314:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "9314:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "9325:2:136",
                        "nodeType": "YulLiteral",
                        "src": "9325:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "9307:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9307:6:136"
                    },
                    "nativeSrc": "9307:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9307:21:136"
                  },
                  "nativeSrc": "9307:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "9307:21:136"
                },
                {
                  "nativeSrc": "9337:64:136",
                  "nodeType": "YulAssignment",
                  "src": "9337:64:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "9374:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "9374:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "9386:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "9386:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9397:2:136",
                            "nodeType": "YulLiteral",
                            "src": "9397:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9382:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "9382:3:136"
                        },
                        "nativeSrc": "9382:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "9382:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_memory_ptr",
                      "nativeSrc": "9345:28:136",
                      "nodeType": "YulIdentifier",
                      "src": "9345:28:136"
                    },
                    "nativeSrc": "9345:56:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9345:56:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "9337:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "9337:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "9176:231:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "9266:9:136",
                "nodeType": "YulTypedName",
                "src": "9266:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "9277:6:136",
                "nodeType": "YulTypedName",
                "src": "9277:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "9288:4:136",
                "nodeType": "YulTypedName",
                "src": "9288:4:136",
                "type": ""
              }
            ],
            "src": "9176:231:136"
          }
        ]
      },
      "contents": "{\n    { }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_contract$_IWitOracleRadonRegistry_$27394_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_string_memory_ptr(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        mcopy(add(pos, 0x20), add(value, 0x20), length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_stringliteral_56e8(pos) -> end\n    {\n        mstore(pos, 1)\n        mstore(add(pos, 0x20), shl(255, 1))\n        end := add(pos, 64)\n    }\n    function abi_encode_tuple_t_enum$_RadonRetrievalMethods_$37802_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_t_stringliteral_56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421__to_t_uint8_t_string_memory_ptr_t_string_memory_ptr_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        if iszero(lt(value0, 5)) { panic_error_0x21() }\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 160)\n        mstore(add(headStart, 160), 0)\n        mstore(add(headStart, 64), 192)\n        mstore(add(headStart, 192), 0)\n        let updated_pos := add(headStart, 224)\n        mstore(add(headStart, 96), 224)\n        let pos := updated_pos\n        let length := mload(value1)\n        mstore(updated_pos, length)\n        pos := add(headStart, 256)\n        let tail_1 := add(add(headStart, shl(5, length)), 256)\n        let srcPtr := add(value1, 32)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail_1, headStart), not(255)))\n            let _1 := mload(srcPtr)\n            let pos_1 := tail_1\n            pos_1 := tail_1\n            let tail_2 := add(tail_1, 64)\n            let srcPtr_1 := _1\n            let i_1 := 0\n            for { } lt(i_1, 0x02) { i_1 := add(i_1, 1) }\n            {\n                mstore(pos_1, sub(tail_2, tail_1))\n                tail_2 := abi_encode_string_memory_ptr(mload(srcPtr_1), tail_2)\n                srcPtr_1 := add(srcPtr_1, 32)\n                pos_1 := add(pos_1, 32)\n            }\n            tail_1 := tail_2\n            srcPtr := add(srcPtr, 32)\n            pos := add(pos, 32)\n        }\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        tail := abi_encode_stringliteral_56e8(tail_1)\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := mload(headStart)\n        value0 := value\n    }\n    function abi_encode_struct_RadonReducer(value, pos) -> end\n    {\n        let tail := add(pos, 0x40)\n        let _1 := mload(value)\n        if iszero(lt(_1, 12)) { panic_error_0x21() }\n        mstore(pos, _1)\n        let memberValue0 := mload(add(value, 0x20))\n        mstore(add(pos, 0x20), 0x40)\n        let pos_1 := tail\n        let length := mload(memberValue0)\n        mstore(tail, length)\n        pos_1 := add(pos, 96)\n        let tail_1 := add(add(pos, shl(5, length)), 96)\n        let srcPtr := add(memberValue0, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos_1, add(sub(tail_1, pos), not(95)))\n            let _2 := mload(srcPtr)\n            let _3 := mload(_2)\n            if iszero(lt(_3, 10)) { panic_error_0x21() }\n            mstore(tail_1, _3)\n            let memberValue0_1 := mload(add(_2, 0x20))\n            mstore(add(tail_1, 0x20), 0x40)\n            tail_1 := abi_encode_string_memory_ptr(memberValue0_1, add(tail_1, 0x40))\n            srcPtr := add(srcPtr, 0x20)\n            pos_1 := add(pos_1, 0x20)\n        }\n        end := tail_1\n    }\n    function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_t_struct$_RadonReducer_$37748_memory_ptr_t_struct$_RadonReducer_$37748_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr_t_struct$_RadonReducer_$37748_memory_ptr_t_struct$_RadonReducer_$37748_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 96)\n        mstore(headStart, 96)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 128)\n        let srcPtr := add(value0, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, 0x20)\n            srcPtr := add(srcPtr, 0x20)\n        }\n        mstore(add(headStart, 0x20), sub(pos, headStart))\n        let tail_2 := abi_encode_struct_RadonReducer(value1, pos)\n        mstore(add(headStart, 64), sub(tail_2, headStart))\n        tail := abi_encode_struct_RadonReducer(value2, tail_2)\n    }\n    function abi_decode_tuple_t_userDefinedValueType$_RadonHash_$37153_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := mload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256_t_rational_1_by_1_t_array$_t_bytes32_$1_memory_ptr__to_t_uint256_t_uint8_t_array$_t_bytes32_$1_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        let pos := add(headStart, 64)\n        pos := pos\n        let srcPtr := value2\n        let i := 0\n        for { } lt(i, 0x01) { i := add(i, 0x01) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, 32)\n            srcPtr := add(srcPtr, 32)\n        }\n    }\n    function abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, sub(shl(64, 1), 1)) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := mload(_1)\n        if gt(length, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        let _2 := shl(5, length)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(_2, 63), not(31)))\n        if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let dst := memPtr\n        mstore(memPtr, length)\n        dst := add(memPtr, 32)\n        let srcEnd := add(add(_1, _2), 32)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_1, 32)\n        for { } lt(src, srcEnd) { src := add(src, 32) }\n        {\n            let value := 0\n            value := mload(src)\n            mstore(dst, value)\n            dst := add(dst, 32)\n        }\n        value0 := memPtr\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mcopy(pos, add(value, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let _1 := abi_encode_string(value0, pos)\n        mstore(_1, \": \")\n        end := abi_encode_string(value1, add(_1, 2))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string_memory_ptr(value0, add(headStart, 32))\n    }\n}",
      "id": 136,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nativeSrc": "0:25423:136",
        "nodeType": "YulBlock",
        "src": "0:25423:136",
        "statements": [
          {
            "nativeSrc": "6:3:136",
            "nodeType": "YulBlock",
            "src": "6:3:136",
            "statements": []
          },
          {
            "body": {
              "nativeSrc": "64:162:136",
              "nodeType": "YulBlock",
              "src": "64:162:136",
              "statements": [
                {
                  "nativeSrc": "74:26:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "74:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "94:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "94:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "88:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "88:5:136"
                    },
                    "nativeSrc": "88:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "88:12:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "78:6:136",
                      "nodeType": "YulTypedName",
                      "src": "78:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "115:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "115:3:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "124:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "124:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "131:4:136",
                            "nodeType": "YulLiteral",
                            "src": "131:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "120:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "120:3:136"
                        },
                        "nativeSrc": "120:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "120:16:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "138:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "138:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mcopy",
                      "nativeSrc": "109:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "109:5:136"
                    },
                    "nativeSrc": "109:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "109:36:136"
                  },
                  "nativeSrc": "109:36:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "109:36:136"
                },
                {
                  "nativeSrc": "154:26:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "154:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "168:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "168:3:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "173:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "173:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "164:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "164:3:136"
                    },
                    "nativeSrc": "164:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "164:16:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "158:2:136",
                      "nodeType": "YulTypedName",
                      "src": "158:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "196:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "196:2:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "200:1:136",
                        "nodeType": "YulLiteral",
                        "src": "200:1:136",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "189:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "189:6:136"
                    },
                    "nativeSrc": "189:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "189:13:136"
                  },
                  "nativeSrc": "189:13:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "189:13:136"
                },
                {
                  "nativeSrc": "211:9:136",
                  "nodeType": "YulAssignment",
                  "src": "211:9:136",
                  "value": {
                    "name": "_1",
                    "nativeSrc": "218:2:136",
                    "nodeType": "YulIdentifier",
                    "src": "218:2:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "211:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "211:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string",
            "nativeSrc": "14:212:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "41:5:136",
                "nodeType": "YulTypedName",
                "src": "41:5:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "48:3:136",
                "nodeType": "YulTypedName",
                "src": "48:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "56:3:136",
                "nodeType": "YulTypedName",
                "src": "56:3:136",
                "type": ""
              }
            ],
            "src": "14:212:136"
          },
          {
            "body": {
              "nativeSrc": "615:186:136",
              "nodeType": "YulBlock",
              "src": "615:186:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "632:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "632:3:136"
                      },
                      {
                        "hexValue": "6e6f7420696d706c656d656e7465643a203078",
                        "kind": "string",
                        "nativeSrc": "637:21:136",
                        "nodeType": "YulLiteral",
                        "src": "637:21:136",
                        "type": "",
                        "value": "not implemented: 0x"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "625:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "625:6:136"
                    },
                    "nativeSrc": "625:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "625:34:136"
                  },
                  "nativeSrc": "625:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "625:34:136"
                },
                {
                  "nativeSrc": "668:127:136",
                  "nodeType": "YulAssignment",
                  "src": "668:127:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nativeSrc": "693:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "693:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value2",
                            "nativeSrc": "719:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "719:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value1",
                                "nativeSrc": "745:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "745:6:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "name": "value0",
                                    "nativeSrc": "771:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "771:6:136"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "name": "pos",
                                        "nativeSrc": "783:3:136",
                                        "nodeType": "YulIdentifier",
                                        "src": "783:3:136"
                                      },
                                      {
                                        "kind": "number",
                                        "nativeSrc": "788:2:136",
                                        "nodeType": "YulLiteral",
                                        "src": "788:2:136",
                                        "type": "",
                                        "value": "19"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nativeSrc": "779:3:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "779:3:136"
                                    },
                                    "nativeSrc": "779:12:136",
                                    "nodeType": "YulFunctionCall",
                                    "src": "779:12:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "abi_encode_string",
                                  "nativeSrc": "753:17:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "753:17:136"
                                },
                                "nativeSrc": "753:39:136",
                                "nodeType": "YulFunctionCall",
                                "src": "753:39:136"
                              }
                            ],
                            "functionName": {
                              "name": "abi_encode_string",
                              "nativeSrc": "727:17:136",
                              "nodeType": "YulIdentifier",
                              "src": "727:17:136"
                            },
                            "nativeSrc": "727:66:136",
                            "nodeType": "YulFunctionCall",
                            "src": "727:66:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_encode_string",
                          "nativeSrc": "701:17:136",
                          "nodeType": "YulIdentifier",
                          "src": "701:17:136"
                        },
                        "nativeSrc": "701:93:136",
                        "nodeType": "YulFunctionCall",
                        "src": "701:93:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nativeSrc": "675:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "675:17:136"
                    },
                    "nativeSrc": "675:120:136",
                    "nodeType": "YulFunctionCall",
                    "src": "675:120:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "668:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "668:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_stringliteral_6aa2932fe75962e4eb862ba4982429ce713637712a759cb9d40b6d5260a002eb_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nativeSrc": "231:570:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "567:3:136",
                "nodeType": "YulTypedName",
                "src": "567:3:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "572:6:136",
                "nodeType": "YulTypedName",
                "src": "572:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "580:6:136",
                "nodeType": "YulTypedName",
                "src": "580:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "588:6:136",
                "nodeType": "YulTypedName",
                "src": "588:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "596:6:136",
                "nodeType": "YulTypedName",
                "src": "596:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "607:3:136",
                "nodeType": "YulTypedName",
                "src": "607:3:136",
                "type": ""
              }
            ],
            "src": "231:570:136"
          },
          {
            "body": {
              "nativeSrc": "876:156:136",
              "nodeType": "YulBlock",
              "src": "876:156:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "922:16:136",
                    "nodeType": "YulBlock",
                    "src": "922:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "931:1:136",
                              "nodeType": "YulLiteral",
                              "src": "931:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "934:1:136",
                              "nodeType": "YulLiteral",
                              "src": "934:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "924:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "924:6:136"
                          },
                          "nativeSrc": "924:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "924:12:136"
                        },
                        "nativeSrc": "924:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "924:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "897:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "897:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "906:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "906:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "893:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "893:3:136"
                        },
                        "nativeSrc": "893:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "893:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "918:2:136",
                        "nodeType": "YulLiteral",
                        "src": "918:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "889:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "889:3:136"
                    },
                    "nativeSrc": "889:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "889:32:136"
                  },
                  "nativeSrc": "886:52:136",
                  "nodeType": "YulIf",
                  "src": "886:52:136"
                },
                {
                  "nativeSrc": "947:14:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "947:14:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "960:1:136",
                    "nodeType": "YulLiteral",
                    "src": "960:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "951:5:136",
                      "nodeType": "YulTypedName",
                      "src": "951:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "970:32:136",
                  "nodeType": "YulAssignment",
                  "src": "970:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "992:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "992:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "979:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "979:12:136"
                    },
                    "nativeSrc": "979:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "979:23:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "970:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "970:5:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "1011:15:136",
                  "nodeType": "YulAssignment",
                  "src": "1011:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "1021:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "1021:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "1011:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1011:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256",
            "nativeSrc": "806:226:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "842:9:136",
                "nodeType": "YulTypedName",
                "src": "842:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "853:7:136",
                "nodeType": "YulTypedName",
                "src": "853:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "865:6:136",
                "nodeType": "YulTypedName",
                "src": "865:6:136",
                "type": ""
              }
            ],
            "src": "806:226:136"
          },
          {
            "body": {
              "nativeSrc": "1166:101:136",
              "nodeType": "YulBlock",
              "src": "1166:101:136",
              "statements": [
                {
                  "nativeSrc": "1176:26:136",
                  "nodeType": "YulAssignment",
                  "src": "1176:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1188:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1188:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1199:2:136",
                        "nodeType": "YulLiteral",
                        "src": "1199:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "1184:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "1184:3:136"
                    },
                    "nativeSrc": "1184:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1184:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "1176:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "1176:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1218:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1218:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "1233:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "1233:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1241:18:136",
                            "nodeType": "YulLiteral",
                            "src": "1241:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "1229:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1229:3:136"
                        },
                        "nativeSrc": "1229:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1229:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1211:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1211:6:136"
                    },
                    "nativeSrc": "1211:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1211:50:136"
                  },
                  "nativeSrc": "1211:50:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1211:50:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_QueryId_$37151__to_t_uint64__fromStack_reversed",
            "nativeSrc": "1037:230:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "1135:9:136",
                "nodeType": "YulTypedName",
                "src": "1135:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "1146:6:136",
                "nodeType": "YulTypedName",
                "src": "1146:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "1157:4:136",
                "nodeType": "YulTypedName",
                "src": "1157:4:136",
                "type": ""
              }
            ],
            "src": "1037:230:136"
          },
          {
            "body": {
              "nativeSrc": "1373:102:136",
              "nodeType": "YulBlock",
              "src": "1373:102:136",
              "statements": [
                {
                  "nativeSrc": "1383:26:136",
                  "nodeType": "YulAssignment",
                  "src": "1383:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1395:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1395:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1406:2:136",
                        "nodeType": "YulLiteral",
                        "src": "1406:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "1391:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "1391:3:136"
                    },
                    "nativeSrc": "1391:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1391:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "1383:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "1383:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1425:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1425:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "1440:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "1440:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1456:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "1456:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1461:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "1461:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "1452:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "1452:3:136"
                                },
                                "nativeSrc": "1452:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "1452:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "1465:1:136",
                                "nodeType": "YulLiteral",
                                "src": "1465:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "1448:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "1448:3:136"
                            },
                            "nativeSrc": "1448:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1448:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "1436:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1436:3:136"
                        },
                        "nativeSrc": "1436:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1436:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1418:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1418:6:136"
                    },
                    "nativeSrc": "1418:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1418:51:136"
                  },
                  "nativeSrc": "1418:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1418:51:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nativeSrc": "1272:203:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "1342:9:136",
                "nodeType": "YulTypedName",
                "src": "1342:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "1353:6:136",
                "nodeType": "YulTypedName",
                "src": "1353:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "1364:4:136",
                "nodeType": "YulTypedName",
                "src": "1364:4:136",
                "type": ""
              }
            ],
            "src": "1272:203:136"
          },
          {
            "body": {
              "nativeSrc": "1567:259:136",
              "nodeType": "YulBlock",
              "src": "1567:259:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "1613:16:136",
                    "nodeType": "YulBlock",
                    "src": "1613:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "1622:1:136",
                              "nodeType": "YulLiteral",
                              "src": "1622:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "1625:1:136",
                              "nodeType": "YulLiteral",
                              "src": "1625:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "1615:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "1615:6:136"
                          },
                          "nativeSrc": "1615:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "1615:12:136"
                        },
                        "nativeSrc": "1615:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "1615:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "1588:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "1588:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "1597:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "1597:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "1584:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1584:3:136"
                        },
                        "nativeSrc": "1584:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1584:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1609:2:136",
                        "nodeType": "YulLiteral",
                        "src": "1609:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "1580:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "1580:3:136"
                    },
                    "nativeSrc": "1580:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1580:32:136"
                  },
                  "nativeSrc": "1577:52:136",
                  "nodeType": "YulIf",
                  "src": "1577:52:136"
                },
                {
                  "nativeSrc": "1638:14:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "1638:14:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "1651:1:136",
                    "nodeType": "YulLiteral",
                    "src": "1651:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "1642:5:136",
                      "nodeType": "YulTypedName",
                      "src": "1642:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "1661:32:136",
                  "nodeType": "YulAssignment",
                  "src": "1661:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1683:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1683:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "1670:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "1670:12:136"
                    },
                    "nativeSrc": "1670:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1670:23:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "1661:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "1661:5:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "1702:15:136",
                  "nodeType": "YulAssignment",
                  "src": "1702:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "1712:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "1712:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "1702:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1702:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "1726:16:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "1726:16:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "1741:1:136",
                    "nodeType": "YulLiteral",
                    "src": "1741:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "1730:7:136",
                      "nodeType": "YulTypedName",
                      "src": "1730:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "1751:43:136",
                  "nodeType": "YulAssignment",
                  "src": "1751:43:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "1779:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "1779:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1790:2:136",
                            "nodeType": "YulLiteral",
                            "src": "1790:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1775:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1775:3:136"
                        },
                        "nativeSrc": "1775:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1775:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "1762:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "1762:12:136"
                    },
                    "nativeSrc": "1762:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1762:32:136"
                  },
                  "variableNames": [
                    {
                      "name": "value_1",
                      "nativeSrc": "1751:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "1751:7:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "1803:17:136",
                  "nodeType": "YulAssignment",
                  "src": "1803:17:136",
                  "value": {
                    "name": "value_1",
                    "nativeSrc": "1813:7:136",
                    "nodeType": "YulIdentifier",
                    "src": "1813:7:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "1803:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1803:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_bytes32",
            "nativeSrc": "1480:346:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "1525:9:136",
                "nodeType": "YulTypedName",
                "src": "1525:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "1536:7:136",
                "nodeType": "YulTypedName",
                "src": "1536:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "1548:6:136",
                "nodeType": "YulTypedName",
                "src": "1548:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "1556:6:136",
                "nodeType": "YulTypedName",
                "src": "1556:6:136",
                "type": ""
              }
            ],
            "src": "1480:346:136"
          },
          {
            "body": {
              "nativeSrc": "1926:92:136",
              "nodeType": "YulBlock",
              "src": "1926:92:136",
              "statements": [
                {
                  "nativeSrc": "1936:26:136",
                  "nodeType": "YulAssignment",
                  "src": "1936:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1948:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1948:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1959:2:136",
                        "nodeType": "YulLiteral",
                        "src": "1959:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "1944:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "1944:3:136"
                    },
                    "nativeSrc": "1944:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1944:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "1936:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "1936:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1978:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1978:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nativeSrc": "2003:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "2003:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nativeSrc": "1996:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "1996:6:136"
                            },
                            "nativeSrc": "1996:14:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1996:14:136"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nativeSrc": "1989:6:136",
                          "nodeType": "YulIdentifier",
                          "src": "1989:6:136"
                        },
                        "nativeSrc": "1989:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1989:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1971:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1971:6:136"
                    },
                    "nativeSrc": "1971:41:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1971:41:136"
                  },
                  "nativeSrc": "1971:41:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1971:41:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nativeSrc": "1831:187:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "1895:9:136",
                "nodeType": "YulTypedName",
                "src": "1895:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "1906:6:136",
                "nodeType": "YulTypedName",
                "src": "1906:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "1917:4:136",
                "nodeType": "YulTypedName",
                "src": "1917:4:136",
                "type": ""
              }
            ],
            "src": "1831:187:136"
          },
          {
            "body": {
              "nativeSrc": "2275:231:136",
              "nodeType": "YulBlock",
              "src": "2275:231:136",
              "statements": [
                {
                  "nativeSrc": "2285:27:136",
                  "nodeType": "YulAssignment",
                  "src": "2285:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "2297:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "2297:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2308:3:136",
                        "nodeType": "YulLiteral",
                        "src": "2308:3:136",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "2293:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "2293:3:136"
                    },
                    "nativeSrc": "2293:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2293:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "2285:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "2285:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "2328:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "2328:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "2339:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "2339:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2321:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2321:6:136"
                    },
                    "nativeSrc": "2321:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2321:25:136"
                  },
                  "nativeSrc": "2321:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2321:25:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "2366:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "2366:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2377:2:136",
                            "nodeType": "YulLiteral",
                            "src": "2377:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2362:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2362:3:136"
                        },
                        "nativeSrc": "2362:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2362:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "2386:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "2386:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2394:18:136",
                            "nodeType": "YulLiteral",
                            "src": "2394:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "2382:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2382:3:136"
                        },
                        "nativeSrc": "2382:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2382:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2355:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2355:6:136"
                    },
                    "nativeSrc": "2355:59:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2355:59:136"
                  },
                  "nativeSrc": "2355:59:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2355:59:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "2434:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "2434:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2445:2:136",
                            "nodeType": "YulLiteral",
                            "src": "2445:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2430:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2430:3:136"
                        },
                        "nativeSrc": "2430:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2430:18:136"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "2450:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "2450:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2423:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2423:6:136"
                    },
                    "nativeSrc": "2423:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2423:34:136"
                  },
                  "nativeSrc": "2423:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2423:34:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "2477:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "2477:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2488:2:136",
                            "nodeType": "YulLiteral",
                            "src": "2488:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2473:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2473:3:136"
                        },
                        "nativeSrc": "2473:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2473:18:136"
                      },
                      {
                        "name": "value3",
                        "nativeSrc": "2493:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "2493:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2466:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2466:6:136"
                    },
                    "nativeSrc": "2466:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2466:34:136"
                  },
                  "nativeSrc": "2466:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2466:34:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes32_t_userDefinedValueType$_Timestamp_$37157_t_userDefinedValueType$_TransactionHash_$37159_t_uint256__to_t_bytes32_t_uint64_t_bytes32_t_uint256__fromStack_reversed",
            "nativeSrc": "2023:483:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "2220:9:136",
                "nodeType": "YulTypedName",
                "src": "2220:9:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "2231:6:136",
                "nodeType": "YulTypedName",
                "src": "2231:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "2239:6:136",
                "nodeType": "YulTypedName",
                "src": "2239:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "2247:6:136",
                "nodeType": "YulTypedName",
                "src": "2247:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "2255:6:136",
                "nodeType": "YulTypedName",
                "src": "2255:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "2266:4:136",
                "nodeType": "YulTypedName",
                "src": "2266:4:136",
                "type": ""
              }
            ],
            "src": "2023:483:136"
          },
          {
            "body": {
              "nativeSrc": "2559:111:136",
              "nodeType": "YulBlock",
              "src": "2559:111:136",
              "statements": [
                {
                  "nativeSrc": "2569:29:136",
                  "nodeType": "YulAssignment",
                  "src": "2569:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "2591:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "2591:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "2578:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "2578:12:136"
                    },
                    "nativeSrc": "2578:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2578:20:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "2569:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "2569:5:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "2648:16:136",
                    "nodeType": "YulBlock",
                    "src": "2648:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "2657:1:136",
                              "nodeType": "YulLiteral",
                              "src": "2657:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "2660:1:136",
                              "nodeType": "YulLiteral",
                              "src": "2660:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "2650:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "2650:6:136"
                          },
                          "nativeSrc": "2650:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "2650:12:136"
                        },
                        "nativeSrc": "2650:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "2650:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "2620:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "2620:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "2631:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "2631:5:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "2638:6:136",
                                "nodeType": "YulLiteral",
                                "src": "2638:6:136",
                                "type": "",
                                "value": "0xffff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "2627:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "2627:3:136"
                            },
                            "nativeSrc": "2627:18:136",
                            "nodeType": "YulFunctionCall",
                            "src": "2627:18:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "2617:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "2617:2:136"
                        },
                        "nativeSrc": "2617:29:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2617:29:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "2610:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2610:6:136"
                    },
                    "nativeSrc": "2610:37:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2610:37:136"
                  },
                  "nativeSrc": "2607:57:136",
                  "nodeType": "YulIf",
                  "src": "2607:57:136"
                }
              ]
            },
            "name": "abi_decode_uint16",
            "nativeSrc": "2511:159:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "2538:6:136",
                "nodeType": "YulTypedName",
                "src": "2538:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "2549:5:136",
                "nodeType": "YulTypedName",
                "src": "2549:5:136",
                "type": ""
              }
            ],
            "src": "2511:159:136"
          },
          {
            "body": {
              "nativeSrc": "2744:115:136",
              "nodeType": "YulBlock",
              "src": "2744:115:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "2790:16:136",
                    "nodeType": "YulBlock",
                    "src": "2790:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "2799:1:136",
                              "nodeType": "YulLiteral",
                              "src": "2799:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "2802:1:136",
                              "nodeType": "YulLiteral",
                              "src": "2802:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "2792:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "2792:6:136"
                          },
                          "nativeSrc": "2792:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "2792:12:136"
                        },
                        "nativeSrc": "2792:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "2792:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "2765:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "2765:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "2774:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "2774:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "2761:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2761:3:136"
                        },
                        "nativeSrc": "2761:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2761:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2786:2:136",
                        "nodeType": "YulLiteral",
                        "src": "2786:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "2757:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "2757:3:136"
                    },
                    "nativeSrc": "2757:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2757:32:136"
                  },
                  "nativeSrc": "2754:52:136",
                  "nodeType": "YulIf",
                  "src": "2754:52:136"
                },
                {
                  "nativeSrc": "2815:38:136",
                  "nodeType": "YulAssignment",
                  "src": "2815:38:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "2843:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "2843:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_uint16",
                      "nativeSrc": "2825:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "2825:17:136"
                    },
                    "nativeSrc": "2825:28:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2825:28:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "2815:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2815:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint16",
            "nativeSrc": "2675:184:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "2710:9:136",
                "nodeType": "YulTypedName",
                "src": "2710:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "2721:7:136",
                "nodeType": "YulTypedName",
                "src": "2721:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "2733:6:136",
                "nodeType": "YulTypedName",
                "src": "2733:6:136",
                "type": ""
              }
            ],
            "src": "2675:184:136"
          },
          {
            "body": {
              "nativeSrc": "2909:86:136",
              "nodeType": "YulBlock",
              "src": "2909:86:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "2973:16:136",
                    "nodeType": "YulBlock",
                    "src": "2973:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "2982:1:136",
                              "nodeType": "YulLiteral",
                              "src": "2982:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "2985:1:136",
                              "nodeType": "YulLiteral",
                              "src": "2985:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "2975:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "2975:6:136"
                          },
                          "nativeSrc": "2975:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "2975:12:136"
                        },
                        "nativeSrc": "2975:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "2975:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "2932:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "2932:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "2943:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "2943:5:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nativeSrc": "2958:3:136",
                                        "nodeType": "YulLiteral",
                                        "src": "2958:3:136",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nativeSrc": "2963:1:136",
                                        "nodeType": "YulLiteral",
                                        "src": "2963:1:136",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nativeSrc": "2954:3:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "2954:3:136"
                                    },
                                    "nativeSrc": "2954:11:136",
                                    "nodeType": "YulFunctionCall",
                                    "src": "2954:11:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "2967:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "2967:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nativeSrc": "2950:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "2950:3:136"
                                },
                                "nativeSrc": "2950:19:136",
                                "nodeType": "YulFunctionCall",
                                "src": "2950:19:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "2939:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "2939:3:136"
                            },
                            "nativeSrc": "2939:31:136",
                            "nodeType": "YulFunctionCall",
                            "src": "2939:31:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "2929:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "2929:2:136"
                        },
                        "nativeSrc": "2929:42:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2929:42:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "2922:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2922:6:136"
                    },
                    "nativeSrc": "2922:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2922:50:136"
                  },
                  "nativeSrc": "2919:70:136",
                  "nodeType": "YulIf",
                  "src": "2919:70:136"
                }
              ]
            },
            "name": "validator_revert_address",
            "nativeSrc": "2864:131:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "2898:5:136",
                "nodeType": "YulTypedName",
                "src": "2898:5:136",
                "type": ""
              }
            ],
            "src": "2864:131:136"
          },
          {
            "body": {
              "nativeSrc": "3120:291:136",
              "nodeType": "YulBlock",
              "src": "3120:291:136",
              "statements": [
                {
                  "nativeSrc": "3130:33:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3130:33:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "dataEnd",
                        "nativeSrc": "3144:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "3144:7:136"
                      },
                      {
                        "name": "headStart",
                        "nativeSrc": "3153:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "3153:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nativeSrc": "3140:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3140:3:136"
                    },
                    "nativeSrc": "3140:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3140:23:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "3134:2:136",
                      "nodeType": "YulTypedName",
                      "src": "3134:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "3188:16:136",
                    "nodeType": "YulBlock",
                    "src": "3188:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "3197:1:136",
                              "nodeType": "YulLiteral",
                              "src": "3197:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3200:1:136",
                              "nodeType": "YulLiteral",
                              "src": "3200:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "3190:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3190:6:136"
                          },
                          "nativeSrc": "3190:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3190:12:136"
                        },
                        "nativeSrc": "3190:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "3190:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "3179:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "3179:2:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3183:3:136",
                        "nodeType": "YulLiteral",
                        "src": "3183:3:136",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "3175:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3175:3:136"
                    },
                    "nativeSrc": "3175:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3175:12:136"
                  },
                  "nativeSrc": "3172:32:136",
                  "nodeType": "YulIf",
                  "src": "3172:32:136"
                },
                {
                  "nativeSrc": "3213:36:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3213:36:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3239:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "3239:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "3226:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "3226:12:136"
                    },
                    "nativeSrc": "3226:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3226:23:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "3217:5:136",
                      "nodeType": "YulTypedName",
                      "src": "3217:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "3283:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "3283:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "3258:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "3258:24:136"
                    },
                    "nativeSrc": "3258:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3258:31:136"
                  },
                  "nativeSrc": "3258:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "3258:31:136"
                },
                {
                  "nativeSrc": "3298:15:136",
                  "nodeType": "YulAssignment",
                  "src": "3298:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "3308:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "3308:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "3298:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "3298:6:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "3352:16:136",
                    "nodeType": "YulBlock",
                    "src": "3352:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "3361:1:136",
                              "nodeType": "YulLiteral",
                              "src": "3361:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3364:1:136",
                              "nodeType": "YulLiteral",
                              "src": "3364:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "3354:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3354:6:136"
                          },
                          "nativeSrc": "3354:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3354:12:136"
                        },
                        "nativeSrc": "3354:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "3354:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "3333:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "3333:2:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "3341:2:136",
                                "nodeType": "YulLiteral",
                                "src": "3341:2:136",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nativeSrc": "3337:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "3337:3:136"
                            },
                            "nativeSrc": "3337:7:136",
                            "nodeType": "YulFunctionCall",
                            "src": "3337:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3329:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3329:3:136"
                        },
                        "nativeSrc": "3329:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3329:16:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3347:3:136",
                        "nodeType": "YulLiteral",
                        "src": "3347:3:136",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "3325:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3325:3:136"
                    },
                    "nativeSrc": "3325:26:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3325:26:136"
                  },
                  "nativeSrc": "3322:46:136",
                  "nodeType": "YulIf",
                  "src": "3322:46:136"
                },
                {
                  "nativeSrc": "3377:28:136",
                  "nodeType": "YulAssignment",
                  "src": "3377:28:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3391:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "3391:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3402:2:136",
                        "nodeType": "YulLiteral",
                        "src": "3402:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3387:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3387:3:136"
                    },
                    "nativeSrc": "3387:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3387:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "3377:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "3377:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_struct$_CloneSettings_$6416_calldata_ptr",
            "nativeSrc": "3000:411:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "3078:9:136",
                "nodeType": "YulTypedName",
                "src": "3078:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "3089:7:136",
                "nodeType": "YulTypedName",
                "src": "3089:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "3101:6:136",
                "nodeType": "YulTypedName",
                "src": "3101:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "3109:6:136",
                "nodeType": "YulTypedName",
                "src": "3109:6:136",
                "type": ""
              }
            ],
            "src": "3000:411:136"
          },
          {
            "body": {
              "nativeSrc": "3541:102:136",
              "nodeType": "YulBlock",
              "src": "3541:102:136",
              "statements": [
                {
                  "nativeSrc": "3551:26:136",
                  "nodeType": "YulAssignment",
                  "src": "3551:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3563:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "3563:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3574:2:136",
                        "nodeType": "YulLiteral",
                        "src": "3574:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3559:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3559:3:136"
                    },
                    "nativeSrc": "3559:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3559:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "3551:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "3551:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3593:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "3593:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "3608:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3608:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "3624:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "3624:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "3629:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "3629:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "3620:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "3620:3:136"
                                },
                                "nativeSrc": "3620:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "3620:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "3633:1:136",
                                "nodeType": "YulLiteral",
                                "src": "3633:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "3616:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "3616:3:136"
                            },
                            "nativeSrc": "3616:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "3616:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "3604:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3604:3:136"
                        },
                        "nativeSrc": "3604:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3604:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3586:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "3586:6:136"
                    },
                    "nativeSrc": "3586:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3586:51:136"
                  },
                  "nativeSrc": "3586:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "3586:51:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_contract$_IWitRandomness_$28351__to_t_address__fromStack_reversed",
            "nativeSrc": "3416:227:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "3510:9:136",
                "nodeType": "YulTypedName",
                "src": "3510:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "3521:6:136",
                "nodeType": "YulTypedName",
                "src": "3521:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "3532:4:136",
                "nodeType": "YulTypedName",
                "src": "3532:4:136",
                "type": ""
              }
            ],
            "src": "3416:227:136"
          },
          {
            "body": {
              "nativeSrc": "3718:177:136",
              "nodeType": "YulBlock",
              "src": "3718:177:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "3764:16:136",
                    "nodeType": "YulBlock",
                    "src": "3764:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "3773:1:136",
                              "nodeType": "YulLiteral",
                              "src": "3773:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3776:1:136",
                              "nodeType": "YulLiteral",
                              "src": "3776:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "3766:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3766:6:136"
                          },
                          "nativeSrc": "3766:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3766:12:136"
                        },
                        "nativeSrc": "3766:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "3766:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "3739:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "3739:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "3748:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "3748:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "3735:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3735:3:136"
                        },
                        "nativeSrc": "3735:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3735:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3760:2:136",
                        "nodeType": "YulLiteral",
                        "src": "3760:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "3731:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3731:3:136"
                    },
                    "nativeSrc": "3731:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3731:32:136"
                  },
                  "nativeSrc": "3728:52:136",
                  "nodeType": "YulIf",
                  "src": "3728:52:136"
                },
                {
                  "nativeSrc": "3789:36:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3789:36:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "3815:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "3815:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "3802:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "3802:12:136"
                    },
                    "nativeSrc": "3802:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3802:23:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "3793:5:136",
                      "nodeType": "YulTypedName",
                      "src": "3793:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "3859:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "3859:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "3834:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "3834:24:136"
                    },
                    "nativeSrc": "3834:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3834:31:136"
                  },
                  "nativeSrc": "3834:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "3834:31:136"
                },
                {
                  "nativeSrc": "3874:15:136",
                  "nodeType": "YulAssignment",
                  "src": "3874:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "3884:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "3884:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "3874:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "3874:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nativeSrc": "3648:247:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "3684:9:136",
                "nodeType": "YulTypedName",
                "src": "3684:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "3695:7:136",
                "nodeType": "YulTypedName",
                "src": "3695:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "3707:6:136",
                "nodeType": "YulTypedName",
                "src": "3707:6:136",
                "type": ""
              }
            ],
            "src": "3648:247:136"
          },
          {
            "body": {
              "nativeSrc": "3999:89:136",
              "nodeType": "YulBlock",
              "src": "3999:89:136",
              "statements": [
                {
                  "nativeSrc": "4009:26:136",
                  "nodeType": "YulAssignment",
                  "src": "4009:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4021:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "4021:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4032:2:136",
                        "nodeType": "YulLiteral",
                        "src": "4032:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "4017:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "4017:3:136"
                    },
                    "nativeSrc": "4017:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4017:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "4009:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "4009:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4051:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "4051:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "4066:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "4066:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4074:6:136",
                            "nodeType": "YulLiteral",
                            "src": "4074:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "4062:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4062:3:136"
                        },
                        "nativeSrc": "4062:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4062:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4044:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4044:6:136"
                    },
                    "nativeSrc": "4044:38:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4044:38:136"
                  },
                  "nativeSrc": "4044:38:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4044:38:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed",
            "nativeSrc": "3900:188:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "3968:9:136",
                "nodeType": "YulTypedName",
                "src": "3968:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "3979:6:136",
                "nodeType": "YulTypedName",
                "src": "3979:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "3990:4:136",
                "nodeType": "YulTypedName",
                "src": "3990:4:136",
                "type": ""
              }
            ],
            "src": "3900:188:136"
          },
          {
            "body": {
              "nativeSrc": "4194:76:136",
              "nodeType": "YulBlock",
              "src": "4194:76:136",
              "statements": [
                {
                  "nativeSrc": "4204:26:136",
                  "nodeType": "YulAssignment",
                  "src": "4204:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4216:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "4216:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4227:2:136",
                        "nodeType": "YulLiteral",
                        "src": "4227:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "4212:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "4212:3:136"
                    },
                    "nativeSrc": "4212:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4212:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "4204:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "4204:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4246:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "4246:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "4257:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "4257:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4239:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4239:6:136"
                    },
                    "nativeSrc": "4239:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4239:25:136"
                  },
                  "nativeSrc": "4239:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4239:25:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
            "nativeSrc": "4093:177:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "4163:9:136",
                "nodeType": "YulTypedName",
                "src": "4163:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "4174:6:136",
                "nodeType": "YulTypedName",
                "src": "4174:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "4185:4:136",
                "nodeType": "YulTypedName",
                "src": "4185:4:136",
                "type": ""
              }
            ],
            "src": "4093:177:136"
          },
          {
            "body": {
              "nativeSrc": "4323:113:136",
              "nodeType": "YulBlock",
              "src": "4323:113:136",
              "statements": [
                {
                  "nativeSrc": "4333:29:136",
                  "nodeType": "YulAssignment",
                  "src": "4333:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "4355:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "4355:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "4342:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "4342:12:136"
                    },
                    "nativeSrc": "4342:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4342:20:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "4333:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "4333:5:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "4414:16:136",
                    "nodeType": "YulBlock",
                    "src": "4414:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "4423:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4423:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "4426:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4426:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "4416:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "4416:6:136"
                          },
                          "nativeSrc": "4416:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "4416:12:136"
                        },
                        "nativeSrc": "4416:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "4416:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "4384:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "4384:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "4395:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "4395:5:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "4402:8:136",
                                "nodeType": "YulLiteral",
                                "src": "4402:8:136",
                                "type": "",
                                "value": "0xffffff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "4391:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "4391:3:136"
                            },
                            "nativeSrc": "4391:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "4391:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "4381:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "4381:2:136"
                        },
                        "nativeSrc": "4381:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4381:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "4374:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4374:6:136"
                    },
                    "nativeSrc": "4374:39:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4374:39:136"
                  },
                  "nativeSrc": "4371:59:136",
                  "nodeType": "YulIf",
                  "src": "4371:59:136"
                }
              ]
            },
            "name": "abi_decode_uint24",
            "nativeSrc": "4275:161:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "4302:6:136",
                "nodeType": "YulTypedName",
                "src": "4302:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "4313:5:136",
                "nodeType": "YulTypedName",
                "src": "4313:5:136",
                "type": ""
              }
            ],
            "src": "4275:161:136"
          },
          {
            "body": {
              "nativeSrc": "4527:233:136",
              "nodeType": "YulBlock",
              "src": "4527:233:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "4573:16:136",
                    "nodeType": "YulBlock",
                    "src": "4573:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "4582:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4582:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "4585:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4585:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "4575:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "4575:6:136"
                          },
                          "nativeSrc": "4575:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "4575:12:136"
                        },
                        "nativeSrc": "4575:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "4575:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "4548:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "4548:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "4557:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "4557:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "4544:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4544:3:136"
                        },
                        "nativeSrc": "4544:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4544:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4569:2:136",
                        "nodeType": "YulLiteral",
                        "src": "4569:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "4540:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "4540:3:136"
                    },
                    "nativeSrc": "4540:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4540:32:136"
                  },
                  "nativeSrc": "4537:52:136",
                  "nodeType": "YulIf",
                  "src": "4537:52:136"
                },
                {
                  "nativeSrc": "4598:36:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "4598:36:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4624:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "4624:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "4611:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "4611:12:136"
                    },
                    "nativeSrc": "4611:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4611:23:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "4602:5:136",
                      "nodeType": "YulTypedName",
                      "src": "4602:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "4668:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "4668:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "4643:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "4643:24:136"
                    },
                    "nativeSrc": "4643:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4643:31:136"
                  },
                  "nativeSrc": "4643:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4643:31:136"
                },
                {
                  "nativeSrc": "4683:15:136",
                  "nodeType": "YulAssignment",
                  "src": "4683:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "4693:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "4693:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "4683:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4683:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "4707:47:136",
                  "nodeType": "YulAssignment",
                  "src": "4707:47:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "4739:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "4739:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4750:2:136",
                            "nodeType": "YulLiteral",
                            "src": "4750:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4735:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4735:3:136"
                        },
                        "nativeSrc": "4735:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4735:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_uint24",
                      "nativeSrc": "4717:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "4717:17:136"
                    },
                    "nativeSrc": "4717:37:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4717:37:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "4707:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4707:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint24",
            "nativeSrc": "4441:319:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "4485:9:136",
                "nodeType": "YulTypedName",
                "src": "4485:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "4496:7:136",
                "nodeType": "YulTypedName",
                "src": "4496:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "4508:6:136",
                "nodeType": "YulTypedName",
                "src": "4508:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "4516:6:136",
                "nodeType": "YulTypedName",
                "src": "4516:6:136",
                "type": ""
              }
            ],
            "src": "4441:319:136"
          },
          {
            "body": {
              "nativeSrc": "4797:95:136",
              "nodeType": "YulBlock",
              "src": "4797:95:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "4814:1:136",
                        "nodeType": "YulLiteral",
                        "src": "4814:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "4821:3:136",
                            "nodeType": "YulLiteral",
                            "src": "4821:3:136",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4826:10:136",
                            "nodeType": "YulLiteral",
                            "src": "4826:10:136",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "4817:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4817:3:136"
                        },
                        "nativeSrc": "4817:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4817:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4807:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4807:6:136"
                    },
                    "nativeSrc": "4807:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4807:31:136"
                  },
                  "nativeSrc": "4807:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4807:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "4854:1:136",
                        "nodeType": "YulLiteral",
                        "src": "4854:1:136",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4857:4:136",
                        "nodeType": "YulLiteral",
                        "src": "4857:4:136",
                        "type": "",
                        "value": "0x21"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4847:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4847:6:136"
                    },
                    "nativeSrc": "4847:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4847:15:136"
                  },
                  "nativeSrc": "4847:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4847:15:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "4878:1:136",
                        "nodeType": "YulLiteral",
                        "src": "4878:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4881:4:136",
                        "nodeType": "YulLiteral",
                        "src": "4881:4:136",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "4871:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4871:6:136"
                    },
                    "nativeSrc": "4871:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4871:15:136"
                  },
                  "nativeSrc": "4871:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4871:15:136"
                }
              ]
            },
            "name": "panic_error_0x21",
            "nativeSrc": "4765:127:136",
            "nodeType": "YulFunctionDefinition",
            "src": "4765:127:136"
          },
          {
            "body": {
              "nativeSrc": "5017:229:136",
              "nodeType": "YulBlock",
              "src": "5017:229:136",
              "statements": [
                {
                  "nativeSrc": "5027:26:136",
                  "nodeType": "YulAssignment",
                  "src": "5027:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5039:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5039:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5050:2:136",
                        "nodeType": "YulLiteral",
                        "src": "5050:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5035:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "5035:3:136"
                    },
                    "nativeSrc": "5035:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5035:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "5027:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "5027:4:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "5095:111:136",
                    "nodeType": "YulBlock",
                    "src": "5095:111:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "5116:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5116:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "5123:3:136",
                                  "nodeType": "YulLiteral",
                                  "src": "5123:3:136",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nativeSrc": "5128:10:136",
                                  "nodeType": "YulLiteral",
                                  "src": "5128:10:136",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nativeSrc": "5119:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "5119:3:136"
                              },
                              "nativeSrc": "5119:20:136",
                              "nodeType": "YulFunctionCall",
                              "src": "5119:20:136"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "5109:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5109:6:136"
                          },
                          "nativeSrc": "5109:31:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5109:31:136"
                        },
                        "nativeSrc": "5109:31:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "5109:31:136"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "5160:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5160:1:136",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5163:4:136",
                              "nodeType": "YulLiteral",
                              "src": "5163:4:136",
                              "type": "",
                              "value": "0x21"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "5153:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5153:6:136"
                          },
                          "nativeSrc": "5153:15:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5153:15:136"
                        },
                        "nativeSrc": "5153:15:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "5153:15:136"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "5188:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5188:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5191:4:136",
                              "nodeType": "YulLiteral",
                              "src": "5191:4:136",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "5181:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5181:6:136"
                          },
                          "nativeSrc": "5181:15:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5181:15:136"
                        },
                        "nativeSrc": "5181:15:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "5181:15:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "5075:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5075:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "5083:1:136",
                            "nodeType": "YulLiteral",
                            "src": "5083:1:136",
                            "type": "",
                            "value": "5"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "5072:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "5072:2:136"
                        },
                        "nativeSrc": "5072:13:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5072:13:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "5065:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5065:6:136"
                    },
                    "nativeSrc": "5065:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5065:21:136"
                  },
                  "nativeSrc": "5062:144:136",
                  "nodeType": "YulIf",
                  "src": "5062:144:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5222:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5222:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "5233:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5233:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5215:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5215:6:136"
                    },
                    "nativeSrc": "5215:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5215:25:136"
                  },
                  "nativeSrc": "5215:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "5215:25:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_enum$_RandomizeStatus_$28460__to_t_uint8__fromStack_reversed",
            "nativeSrc": "4897:349:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "4986:9:136",
                "nodeType": "YulTypedName",
                "src": "4986:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "4997:6:136",
                "nodeType": "YulTypedName",
                "src": "4997:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "5008:4:136",
                "nodeType": "YulTypedName",
                "src": "5008:4:136",
                "type": ""
              }
            ],
            "src": "4897:349:136"
          },
          {
            "body": {
              "nativeSrc": "5352:76:136",
              "nodeType": "YulBlock",
              "src": "5352:76:136",
              "statements": [
                {
                  "nativeSrc": "5362:26:136",
                  "nodeType": "YulAssignment",
                  "src": "5362:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5374:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5374:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5385:2:136",
                        "nodeType": "YulLiteral",
                        "src": "5385:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5370:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "5370:3:136"
                    },
                    "nativeSrc": "5370:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5370:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "5362:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "5362:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5404:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5404:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "5415:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5415:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5397:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5397:6:136"
                    },
                    "nativeSrc": "5397:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5397:25:136"
                  },
                  "nativeSrc": "5397:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "5397:25:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
            "nativeSrc": "5251:177:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "5321:9:136",
                "nodeType": "YulTypedName",
                "src": "5321:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "5332:6:136",
                "nodeType": "YulTypedName",
                "src": "5332:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "5343:4:136",
                "nodeType": "YulTypedName",
                "src": "5343:4:136",
                "type": ""
              }
            ],
            "src": "5251:177:136"
          },
          {
            "body": {
              "nativeSrc": "5565:76:136",
              "nodeType": "YulBlock",
              "src": "5565:76:136",
              "statements": [
                {
                  "nativeSrc": "5575:26:136",
                  "nodeType": "YulAssignment",
                  "src": "5575:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5587:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5587:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5598:2:136",
                        "nodeType": "YulLiteral",
                        "src": "5598:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5583:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "5583:3:136"
                    },
                    "nativeSrc": "5583:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5583:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "5575:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "5575:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5617:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5617:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "5628:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5628:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5610:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5610:6:136"
                    },
                    "nativeSrc": "5610:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5610:25:136"
                  },
                  "nativeSrc": "5610:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "5610:25:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_RadonHash_$37153__to_t_bytes32__fromStack_reversed",
            "nativeSrc": "5433:208:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "5534:9:136",
                "nodeType": "YulTypedName",
                "src": "5534:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "5545:6:136",
                "nodeType": "YulTypedName",
                "src": "5545:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "5556:4:136",
                "nodeType": "YulTypedName",
                "src": "5556:4:136",
                "type": ""
              }
            ],
            "src": "5433:208:136"
          },
          {
            "body": {
              "nativeSrc": "5831:187:136",
              "nodeType": "YulBlock",
              "src": "5831:187:136",
              "statements": [
                {
                  "nativeSrc": "5841:26:136",
                  "nodeType": "YulAssignment",
                  "src": "5841:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5853:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5853:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5864:2:136",
                        "nodeType": "YulLiteral",
                        "src": "5864:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5849:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "5849:3:136"
                    },
                    "nativeSrc": "5849:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5849:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "5841:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "5841:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5883:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5883:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "5898:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5898:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "5906:18:136",
                            "nodeType": "YulLiteral",
                            "src": "5906:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "5894:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "5894:3:136"
                        },
                        "nativeSrc": "5894:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5894:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5876:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5876:6:136"
                    },
                    "nativeSrc": "5876:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5876:50:136"
                  },
                  "nativeSrc": "5876:50:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "5876:50:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "5946:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "5946:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "5957:2:136",
                            "nodeType": "YulLiteral",
                            "src": "5957:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5942:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "5942:3:136"
                        },
                        "nativeSrc": "5942:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5942:18:136"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "5962:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5962:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5935:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5935:6:136"
                    },
                    "nativeSrc": "5935:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5935:34:136"
                  },
                  "nativeSrc": "5935:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "5935:34:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "5989:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "5989:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6000:2:136",
                            "nodeType": "YulLiteral",
                            "src": "6000:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5985:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "5985:3:136"
                        },
                        "nativeSrc": "5985:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5985:18:136"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "6005:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "6005:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5978:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5978:6:136"
                    },
                    "nativeSrc": "5978:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5978:34:136"
                  },
                  "nativeSrc": "5978:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "5978:34:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_QueryId_$37151_t_uint256_t_uint256__to_t_uint64_t_uint256_t_uint256__fromStack_reversed",
            "nativeSrc": "5646:372:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "5784:9:136",
                "nodeType": "YulTypedName",
                "src": "5784:9:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "5795:6:136",
                "nodeType": "YulTypedName",
                "src": "5795:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "5803:6:136",
                "nodeType": "YulTypedName",
                "src": "5803:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "5811:6:136",
                "nodeType": "YulTypedName",
                "src": "5811:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "5822:4:136",
                "nodeType": "YulTypedName",
                "src": "5822:4:136",
                "type": ""
              }
            ],
            "src": "5646:372:136"
          },
          {
            "body": {
              "nativeSrc": "6200:272:136",
              "nodeType": "YulBlock",
              "src": "6200:272:136",
              "statements": [
                {
                  "nativeSrc": "6210:27:136",
                  "nodeType": "YulAssignment",
                  "src": "6210:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6222:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "6222:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "6233:3:136",
                        "nodeType": "YulLiteral",
                        "src": "6233:3:136",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "6218:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "6218:3:136"
                    },
                    "nativeSrc": "6218:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6218:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "6210:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "6210:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6253:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "6253:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "6268:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "6268:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6276:8:136",
                            "nodeType": "YulLiteral",
                            "src": "6276:8:136",
                            "type": "",
                            "value": "0xffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "6264:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6264:3:136"
                        },
                        "nativeSrc": "6264:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6264:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6246:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6246:6:136"
                    },
                    "nativeSrc": "6246:40:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6246:40:136"
                  },
                  "nativeSrc": "6246:40:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "6246:40:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "6306:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "6306:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6317:2:136",
                            "nodeType": "YulLiteral",
                            "src": "6317:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "6302:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6302:3:136"
                        },
                        "nativeSrc": "6302:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6302:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "6326:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "6326:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6334:6:136",
                            "nodeType": "YulLiteral",
                            "src": "6334:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "6322:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6322:3:136"
                        },
                        "nativeSrc": "6322:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6322:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6295:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6295:6:136"
                    },
                    "nativeSrc": "6295:47:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6295:47:136"
                  },
                  "nativeSrc": "6295:47:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "6295:47:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "6362:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "6362:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6373:2:136",
                            "nodeType": "YulLiteral",
                            "src": "6373:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "6358:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6358:3:136"
                        },
                        "nativeSrc": "6358:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6358:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value2",
                            "nativeSrc": "6382:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "6382:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6390:6:136",
                            "nodeType": "YulLiteral",
                            "src": "6390:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "6378:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6378:3:136"
                        },
                        "nativeSrc": "6378:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6378:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6351:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6351:6:136"
                    },
                    "nativeSrc": "6351:47:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6351:47:136"
                  },
                  "nativeSrc": "6351:47:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "6351:47:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "6418:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "6418:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6429:2:136",
                            "nodeType": "YulLiteral",
                            "src": "6429:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "6414:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6414:3:136"
                        },
                        "nativeSrc": "6414:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6414:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value3",
                            "nativeSrc": "6438:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "6438:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6446:18:136",
                            "nodeType": "YulLiteral",
                            "src": "6446:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "6434:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6434:3:136"
                        },
                        "nativeSrc": "6434:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6434:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6407:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6407:6:136"
                    },
                    "nativeSrc": "6407:59:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6407:59:136"
                  },
                  "nativeSrc": "6407:59:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "6407:59:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint24_t_uint16_t_uint16_t_uint64__to_t_uint24_t_uint16_t_uint16_t_uint64__fromStack_reversed",
            "nativeSrc": "6023:449:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "6145:9:136",
                "nodeType": "YulTypedName",
                "src": "6145:9:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "6156:6:136",
                "nodeType": "YulTypedName",
                "src": "6156:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "6164:6:136",
                "nodeType": "YulTypedName",
                "src": "6164:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "6172:6:136",
                "nodeType": "YulTypedName",
                "src": "6172:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "6180:6:136",
                "nodeType": "YulTypedName",
                "src": "6180:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "6191:4:136",
                "nodeType": "YulTypedName",
                "src": "6191:4:136",
                "type": ""
              }
            ],
            "src": "6023:449:136"
          },
          {
            "body": {
              "nativeSrc": "6576:103:136",
              "nodeType": "YulBlock",
              "src": "6576:103:136",
              "statements": [
                {
                  "nativeSrc": "6586:26:136",
                  "nodeType": "YulAssignment",
                  "src": "6586:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6598:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "6598:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "6609:2:136",
                        "nodeType": "YulLiteral",
                        "src": "6609:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "6594:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "6594:3:136"
                    },
                    "nativeSrc": "6594:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6594:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "6586:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "6586:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6628:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "6628:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "6643:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "6643:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "6655:3:136",
                                "nodeType": "YulLiteral",
                                "src": "6655:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "6660:10:136",
                                "nodeType": "YulLiteral",
                                "src": "6660:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "6651:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "6651:3:136"
                            },
                            "nativeSrc": "6651:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "6651:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "6639:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6639:3:136"
                        },
                        "nativeSrc": "6639:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6639:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6621:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6621:6:136"
                    },
                    "nativeSrc": "6621:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6621:52:136"
                  },
                  "nativeSrc": "6621:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "6621:52:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed",
            "nativeSrc": "6477:202:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "6545:9:136",
                "nodeType": "YulTypedName",
                "src": "6545:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "6556:6:136",
                "nodeType": "YulTypedName",
                "src": "6556:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "6567:4:136",
                "nodeType": "YulTypedName",
                "src": "6567:4:136",
                "type": ""
              }
            ],
            "src": "6477:202:136"
          },
          {
            "body": {
              "nativeSrc": "6817:102:136",
              "nodeType": "YulBlock",
              "src": "6817:102:136",
              "statements": [
                {
                  "nativeSrc": "6827:26:136",
                  "nodeType": "YulAssignment",
                  "src": "6827:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6839:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "6839:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "6850:2:136",
                        "nodeType": "YulLiteral",
                        "src": "6850:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "6835:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "6835:3:136"
                    },
                    "nativeSrc": "6835:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6835:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "6827:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "6827:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6869:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "6869:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "6884:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "6884:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "6900:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "6900:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "6905:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "6905:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "6896:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "6896:3:136"
                                },
                                "nativeSrc": "6896:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "6896:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "6909:1:136",
                                "nodeType": "YulLiteral",
                                "src": "6909:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "6892:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "6892:3:136"
                            },
                            "nativeSrc": "6892:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "6892:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "6880:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6880:3:136"
                        },
                        "nativeSrc": "6880:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6880:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6862:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6862:6:136"
                    },
                    "nativeSrc": "6862:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6862:51:136"
                  },
                  "nativeSrc": "6862:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "6862:51:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_contract$_IWitRandomnessConsumer_$28425__to_t_address__fromStack_reversed",
            "nativeSrc": "6684:235:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "6786:9:136",
                "nodeType": "YulTypedName",
                "src": "6786:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "6797:6:136",
                "nodeType": "YulTypedName",
                "src": "6797:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "6808:4:136",
                "nodeType": "YulTypedName",
                "src": "6808:4:136",
                "type": ""
              }
            ],
            "src": "6684:235:136"
          },
          {
            "body": {
              "nativeSrc": "6985:239:136",
              "nodeType": "YulBlock",
              "src": "6985:239:136",
              "statements": [
                {
                  "nativeSrc": "6995:26:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "6995:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "7015:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "7015:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "7009:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "7009:5:136"
                    },
                    "nativeSrc": "7009:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7009:12:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "6999:6:136",
                      "nodeType": "YulTypedName",
                      "src": "6999:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "7037:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "7037:3:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "7042:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "7042:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7030:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "7030:6:136"
                    },
                    "nativeSrc": "7030:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7030:19:136"
                  },
                  "nativeSrc": "7030:19:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "7030:19:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "7068:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "7068:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7073:4:136",
                            "nodeType": "YulLiteral",
                            "src": "7073:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7064:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7064:3:136"
                        },
                        "nativeSrc": "7064:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7064:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "7084:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "7084:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7091:4:136",
                            "nodeType": "YulLiteral",
                            "src": "7091:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7080:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7080:3:136"
                        },
                        "nativeSrc": "7080:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7080:16:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "7098:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "7098:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mcopy",
                      "nativeSrc": "7058:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "7058:5:136"
                    },
                    "nativeSrc": "7058:47:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7058:47:136"
                  },
                  "nativeSrc": "7058:47:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "7058:47:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "pos",
                                "nativeSrc": "7129:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "7129:3:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "7134:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "7134:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "7125:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "7125:3:136"
                            },
                            "nativeSrc": "7125:16:136",
                            "nodeType": "YulFunctionCall",
                            "src": "7125:16:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7143:4:136",
                            "nodeType": "YulLiteral",
                            "src": "7143:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7121:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7121:3:136"
                        },
                        "nativeSrc": "7121:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7121:27:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7150:1:136",
                        "nodeType": "YulLiteral",
                        "src": "7150:1:136",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7114:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "7114:6:136"
                    },
                    "nativeSrc": "7114:38:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7114:38:136"
                  },
                  "nativeSrc": "7114:38:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "7114:38:136"
                },
                {
                  "nativeSrc": "7161:57:136",
                  "nodeType": "YulAssignment",
                  "src": "7161:57:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "7176:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "7176:3:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nativeSrc": "7189:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "7189:6:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "7197:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "7197:2:136",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "7185:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "7185:3:136"
                                },
                                "nativeSrc": "7185:15:136",
                                "nodeType": "YulFunctionCall",
                                "src": "7185:15:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "7206:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "7206:2:136",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nativeSrc": "7202:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "7202:3:136"
                                },
                                "nativeSrc": "7202:7:136",
                                "nodeType": "YulFunctionCall",
                                "src": "7202:7:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "7181:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "7181:3:136"
                            },
                            "nativeSrc": "7181:29:136",
                            "nodeType": "YulFunctionCall",
                            "src": "7181:29:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7172:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7172:3:136"
                        },
                        "nativeSrc": "7172:39:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7172:39:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7213:4:136",
                        "nodeType": "YulLiteral",
                        "src": "7213:4:136",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "7168:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "7168:3:136"
                    },
                    "nativeSrc": "7168:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7168:50:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "7161:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "7161:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string_memory_ptr",
            "nativeSrc": "6924:300:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "6962:5:136",
                "nodeType": "YulTypedName",
                "src": "6962:5:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "6969:3:136",
                "nodeType": "YulTypedName",
                "src": "6969:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "6977:3:136",
                "nodeType": "YulTypedName",
                "src": "6977:3:136",
                "type": ""
              }
            ],
            "src": "6924:300:136"
          },
          {
            "body": {
              "nativeSrc": "7350:110:136",
              "nodeType": "YulBlock",
              "src": "7350:110:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "7367:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "7367:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7378:2:136",
                        "nodeType": "YulLiteral",
                        "src": "7378:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7360:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "7360:6:136"
                    },
                    "nativeSrc": "7360:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7360:21:136"
                  },
                  "nativeSrc": "7360:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "7360:21:136"
                },
                {
                  "nativeSrc": "7390:64:136",
                  "nodeType": "YulAssignment",
                  "src": "7390:64:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "7427:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "7427:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "7439:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "7439:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7450:2:136",
                            "nodeType": "YulLiteral",
                            "src": "7450:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7435:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7435:3:136"
                        },
                        "nativeSrc": "7435:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7435:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_memory_ptr",
                      "nativeSrc": "7398:28:136",
                      "nodeType": "YulIdentifier",
                      "src": "7398:28:136"
                    },
                    "nativeSrc": "7398:56:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7398:56:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "7390:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "7390:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "7229:231:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "7319:9:136",
                "nodeType": "YulTypedName",
                "src": "7319:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "7330:6:136",
                "nodeType": "YulTypedName",
                "src": "7330:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "7341:4:136",
                "nodeType": "YulTypedName",
                "src": "7341:4:136",
                "type": ""
              }
            ],
            "src": "7229:231:136"
          },
          {
            "body": {
              "nativeSrc": "7509:85:136",
              "nodeType": "YulBlock",
              "src": "7509:85:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "7572:16:136",
                    "nodeType": "YulBlock",
                    "src": "7572:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "7581:1:136",
                              "nodeType": "YulLiteral",
                              "src": "7581:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "7584:1:136",
                              "nodeType": "YulLiteral",
                              "src": "7584:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "7574:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "7574:6:136"
                          },
                          "nativeSrc": "7574:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "7574:12:136"
                        },
                        "nativeSrc": "7574:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "7574:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "7532:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "7532:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "7543:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "7543:5:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "7550:18:136",
                                "nodeType": "YulLiteral",
                                "src": "7550:18:136",
                                "type": "",
                                "value": "0xffffffffffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "7539:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "7539:3:136"
                            },
                            "nativeSrc": "7539:30:136",
                            "nodeType": "YulFunctionCall",
                            "src": "7539:30:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "7529:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "7529:2:136"
                        },
                        "nativeSrc": "7529:41:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7529:41:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "7522:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "7522:6:136"
                    },
                    "nativeSrc": "7522:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7522:49:136"
                  },
                  "nativeSrc": "7519:69:136",
                  "nodeType": "YulIf",
                  "src": "7519:69:136"
                }
              ]
            },
            "name": "validator_revert_uint64",
            "nativeSrc": "7465:129:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "7498:5:136",
                "nodeType": "YulTypedName",
                "src": "7498:5:136",
                "type": ""
              }
            ],
            "src": "7465:129:136"
          },
          {
            "body": {
              "nativeSrc": "7647:84:136",
              "nodeType": "YulBlock",
              "src": "7647:84:136",
              "statements": [
                {
                  "nativeSrc": "7657:29:136",
                  "nodeType": "YulAssignment",
                  "src": "7657:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "7679:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "7679:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "7666:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "7666:12:136"
                    },
                    "nativeSrc": "7666:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7666:20:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "7657:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "7657:5:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "7719:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "7719:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "7695:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "7695:23:136"
                    },
                    "nativeSrc": "7695:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7695:30:136"
                  },
                  "nativeSrc": "7695:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "7695:30:136"
                }
              ]
            },
            "name": "abi_decode_uint64",
            "nativeSrc": "7599:132:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "7626:6:136",
                "nodeType": "YulTypedName",
                "src": "7626:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "7637:5:136",
                "nodeType": "YulTypedName",
                "src": "7637:5:136",
                "type": ""
              }
            ],
            "src": "7599:132:136"
          },
          {
            "body": {
              "nativeSrc": "7853:345:136",
              "nodeType": "YulBlock",
              "src": "7853:345:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "7900:16:136",
                    "nodeType": "YulBlock",
                    "src": "7900:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "7909:1:136",
                              "nodeType": "YulLiteral",
                              "src": "7909:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "7912:1:136",
                              "nodeType": "YulLiteral",
                              "src": "7912:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "7902:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "7902:6:136"
                          },
                          "nativeSrc": "7902:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "7902:12:136"
                        },
                        "nativeSrc": "7902:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "7902:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "7874:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "7874:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "7883:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "7883:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "7870:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7870:3:136"
                        },
                        "nativeSrc": "7870:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7870:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7895:3:136",
                        "nodeType": "YulLiteral",
                        "src": "7895:3:136",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "7866:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "7866:3:136"
                    },
                    "nativeSrc": "7866:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7866:33:136"
                  },
                  "nativeSrc": "7863:53:136",
                  "nodeType": "YulIf",
                  "src": "7863:53:136"
                },
                {
                  "nativeSrc": "7925:38:136",
                  "nodeType": "YulAssignment",
                  "src": "7925:38:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "7953:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "7953:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_uint24",
                      "nativeSrc": "7935:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "7935:17:136"
                    },
                    "nativeSrc": "7935:28:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7935:28:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "7925:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "7925:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "7972:47:136",
                  "nodeType": "YulAssignment",
                  "src": "7972:47:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "8004:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "8004:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "8015:2:136",
                            "nodeType": "YulLiteral",
                            "src": "8015:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "8000:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "8000:3:136"
                        },
                        "nativeSrc": "8000:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "8000:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_uint16",
                      "nativeSrc": "7982:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "7982:17:136"
                    },
                    "nativeSrc": "7982:37:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7982:37:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "7972:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "7972:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "8028:47:136",
                  "nodeType": "YulAssignment",
                  "src": "8028:47:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "8060:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "8060:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "8071:2:136",
                            "nodeType": "YulLiteral",
                            "src": "8071:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "8056:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "8056:3:136"
                        },
                        "nativeSrc": "8056:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "8056:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_uint16",
                      "nativeSrc": "8038:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "8038:17:136"
                    },
                    "nativeSrc": "8038:37:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8038:37:136"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nativeSrc": "8028:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8028:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "8084:45:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8084:45:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "8114:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "8114:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "8125:2:136",
                            "nodeType": "YulLiteral",
                            "src": "8125:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "8110:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "8110:3:136"
                        },
                        "nativeSrc": "8110:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "8110:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "8097:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "8097:12:136"
                    },
                    "nativeSrc": "8097:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8097:32:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "8088:5:136",
                      "nodeType": "YulTypedName",
                      "src": "8088:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "8162:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "8162:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "8138:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "8138:23:136"
                    },
                    "nativeSrc": "8138:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8138:30:136"
                  },
                  "nativeSrc": "8138:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "8138:30:136"
                },
                {
                  "nativeSrc": "8177:15:136",
                  "nodeType": "YulAssignment",
                  "src": "8177:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "8187:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "8187:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nativeSrc": "8177:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8177:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint24t_uint16t_uint16t_uint64",
            "nativeSrc": "7736:462:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "7795:9:136",
                "nodeType": "YulTypedName",
                "src": "7795:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "7806:7:136",
                "nodeType": "YulTypedName",
                "src": "7806:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "7818:6:136",
                "nodeType": "YulTypedName",
                "src": "7818:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "7826:6:136",
                "nodeType": "YulTypedName",
                "src": "7826:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "7834:6:136",
                "nodeType": "YulTypedName",
                "src": "7834:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "7842:6:136",
                "nodeType": "YulTypedName",
                "src": "7842:6:136",
                "type": ""
              }
            ],
            "src": "7736:462:136"
          },
          {
            "body": {
              "nativeSrc": "8309:594:136",
              "nodeType": "YulBlock",
              "src": "8309:594:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "8355:16:136",
                    "nodeType": "YulBlock",
                    "src": "8355:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "8364:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8364:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8367:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8367:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "8357:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "8357:6:136"
                          },
                          "nativeSrc": "8357:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "8357:12:136"
                        },
                        "nativeSrc": "8357:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "8357:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "8330:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "8330:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "8339:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "8339:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "8326:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "8326:3:136"
                        },
                        "nativeSrc": "8326:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "8326:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8351:2:136",
                        "nodeType": "YulLiteral",
                        "src": "8351:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "8322:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "8322:3:136"
                    },
                    "nativeSrc": "8322:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8322:32:136"
                  },
                  "nativeSrc": "8319:52:136",
                  "nodeType": "YulIf",
                  "src": "8319:52:136"
                },
                {
                  "nativeSrc": "8380:14:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8380:14:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "8393:1:136",
                    "nodeType": "YulLiteral",
                    "src": "8393:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "8384:5:136",
                      "nodeType": "YulTypedName",
                      "src": "8384:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "8403:32:136",
                  "nodeType": "YulAssignment",
                  "src": "8403:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "8425:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "8425:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "8412:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "8412:12:136"
                    },
                    "nativeSrc": "8412:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8412:23:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "8403:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "8403:5:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "8444:15:136",
                  "nodeType": "YulAssignment",
                  "src": "8444:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "8454:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "8454:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "8444:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8444:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "8468:46:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8468:46:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "8499:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "8499:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "8510:2:136",
                            "nodeType": "YulLiteral",
                            "src": "8510:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "8495:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "8495:3:136"
                        },
                        "nativeSrc": "8495:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "8495:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "8482:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "8482:12:136"
                    },
                    "nativeSrc": "8482:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8482:32:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "8472:6:136",
                      "nodeType": "YulTypedName",
                      "src": "8472:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "8557:16:136",
                    "nodeType": "YulBlock",
                    "src": "8557:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "8566:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8566:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8569:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8569:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "8559:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "8559:6:136"
                          },
                          "nativeSrc": "8559:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "8559:12:136"
                        },
                        "nativeSrc": "8559:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "8559:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "8529:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "8529:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8537:18:136",
                        "nodeType": "YulLiteral",
                        "src": "8537:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "8526:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "8526:2:136"
                    },
                    "nativeSrc": "8526:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8526:30:136"
                  },
                  "nativeSrc": "8523:50:136",
                  "nodeType": "YulIf",
                  "src": "8523:50:136"
                },
                {
                  "nativeSrc": "8582:32:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8582:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "8596:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "8596:9:136"
                      },
                      {
                        "name": "offset",
                        "nativeSrc": "8607:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "8607:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "8592:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "8592:3:136"
                    },
                    "nativeSrc": "8592:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8592:22:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "8586:2:136",
                      "nodeType": "YulTypedName",
                      "src": "8586:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "8662:16:136",
                    "nodeType": "YulBlock",
                    "src": "8662:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "8671:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8671:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8674:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8674:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "8664:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "8664:6:136"
                          },
                          "nativeSrc": "8664:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "8664:12:136"
                        },
                        "nativeSrc": "8664:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "8664:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "8641:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "8641:2:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "8645:4:136",
                                "nodeType": "YulLiteral",
                                "src": "8645:4:136",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "8637:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "8637:3:136"
                            },
                            "nativeSrc": "8637:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "8637:13:136"
                          },
                          {
                            "name": "dataEnd",
                            "nativeSrc": "8652:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "8652:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nativeSrc": "8633:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "8633:3:136"
                        },
                        "nativeSrc": "8633:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "8633:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "8626:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8626:6:136"
                    },
                    "nativeSrc": "8626:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8626:35:136"
                  },
                  "nativeSrc": "8623:55:136",
                  "nodeType": "YulIf",
                  "src": "8623:55:136"
                },
                {
                  "nativeSrc": "8687:30:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8687:30:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "8714:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "8714:2:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "8701:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "8701:12:136"
                    },
                    "nativeSrc": "8701:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8701:16:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "8691:6:136",
                      "nodeType": "YulTypedName",
                      "src": "8691:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "8760:16:136",
                    "nodeType": "YulBlock",
                    "src": "8760:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "8769:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8769:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8772:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8772:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "8762:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "8762:6:136"
                          },
                          "nativeSrc": "8762:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "8762:12:136"
                        },
                        "nativeSrc": "8762:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "8762:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nativeSrc": "8732:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "8732:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8740:18:136",
                        "nodeType": "YulLiteral",
                        "src": "8740:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "8729:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "8729:2:136"
                    },
                    "nativeSrc": "8729:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8729:30:136"
                  },
                  "nativeSrc": "8726:50:136",
                  "nodeType": "YulIf",
                  "src": "8726:50:136"
                },
                {
                  "body": {
                    "nativeSrc": "8826:16:136",
                    "nodeType": "YulBlock",
                    "src": "8826:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "8835:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8835:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8838:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8838:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "8828:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "8828:6:136"
                          },
                          "nativeSrc": "8828:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "8828:12:136"
                        },
                        "nativeSrc": "8828:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "8828:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "8799:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "8799:2:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "8803:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "8803:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "8795:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "8795:3:136"
                            },
                            "nativeSrc": "8795:15:136",
                            "nodeType": "YulFunctionCall",
                            "src": "8795:15:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "8812:2:136",
                            "nodeType": "YulLiteral",
                            "src": "8812:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "8791:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "8791:3:136"
                        },
                        "nativeSrc": "8791:24:136",
                        "nodeType": "YulFunctionCall",
                        "src": "8791:24:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "8817:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "8817:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "8788:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "8788:2:136"
                    },
                    "nativeSrc": "8788:37:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8788:37:136"
                  },
                  "nativeSrc": "8785:57:136",
                  "nodeType": "YulIf",
                  "src": "8785:57:136"
                },
                {
                  "nativeSrc": "8851:21:136",
                  "nodeType": "YulAssignment",
                  "src": "8851:21:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "8865:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "8865:2:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8869:2:136",
                        "nodeType": "YulLiteral",
                        "src": "8869:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "8861:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "8861:3:136"
                    },
                    "nativeSrc": "8861:11:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8861:11:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "8851:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8851:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "8881:16:136",
                  "nodeType": "YulAssignment",
                  "src": "8881:16:136",
                  "value": {
                    "name": "length",
                    "nativeSrc": "8891:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "8891:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nativeSrc": "8881:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8881:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_bytes_calldata_ptr",
            "nativeSrc": "8203:700:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "8259:9:136",
                "nodeType": "YulTypedName",
                "src": "8259:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "8270:7:136",
                "nodeType": "YulTypedName",
                "src": "8270:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "8282:6:136",
                "nodeType": "YulTypedName",
                "src": "8282:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "8290:6:136",
                "nodeType": "YulTypedName",
                "src": "8290:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "8298:6:136",
                "nodeType": "YulTypedName",
                "src": "8298:6:136",
                "type": ""
              }
            ],
            "src": "8203:700:136"
          },
          {
            "body": {
              "nativeSrc": "9027:110:136",
              "nodeType": "YulBlock",
              "src": "9027:110:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "9044:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "9044:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "9055:2:136",
                        "nodeType": "YulLiteral",
                        "src": "9055:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "9037:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9037:6:136"
                    },
                    "nativeSrc": "9037:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9037:21:136"
                  },
                  "nativeSrc": "9037:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "9037:21:136"
                },
                {
                  "nativeSrc": "9067:64:136",
                  "nodeType": "YulAssignment",
                  "src": "9067:64:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "9104:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "9104:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "9116:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "9116:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9127:2:136",
                            "nodeType": "YulLiteral",
                            "src": "9127:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9112:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "9112:3:136"
                        },
                        "nativeSrc": "9112:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "9112:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_memory_ptr",
                      "nativeSrc": "9075:28:136",
                      "nodeType": "YulIdentifier",
                      "src": "9075:28:136"
                    },
                    "nativeSrc": "9075:56:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9075:56:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "9067:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "9067:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed",
            "nativeSrc": "8908:229:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "8996:9:136",
                "nodeType": "YulTypedName",
                "src": "8996:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "9007:6:136",
                "nodeType": "YulTypedName",
                "src": "9007:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "9018:4:136",
                "nodeType": "YulTypedName",
                "src": "9018:4:136",
                "type": ""
              }
            ],
            "src": "8908:229:136"
          },
          {
            "body": {
              "nativeSrc": "9430:134:136",
              "nodeType": "YulBlock",
              "src": "9430:134:136",
              "statements": [
                {
                  "nativeSrc": "9440:40:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9440:40:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "9468:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "9468:6:136"
                      },
                      {
                        "name": "pos",
                        "nativeSrc": "9476:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "9476:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nativeSrc": "9450:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "9450:17:136"
                    },
                    "nativeSrc": "9450:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9450:30:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "9444:2:136",
                      "nodeType": "YulTypedName",
                      "src": "9444:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "9496:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "9496:2:136"
                      },
                      {
                        "hexValue": "3a20",
                        "kind": "string",
                        "nativeSrc": "9500:4:136",
                        "nodeType": "YulLiteral",
                        "src": "9500:4:136",
                        "type": "",
                        "value": ": "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "9489:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9489:6:136"
                    },
                    "nativeSrc": "9489:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9489:16:136"
                  },
                  "nativeSrc": "9489:16:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "9489:16:136"
                },
                {
                  "nativeSrc": "9514:44:136",
                  "nodeType": "YulAssignment",
                  "src": "9514:44:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "9539:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "9539:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "9551:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "9551:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9555:1:136",
                            "nodeType": "YulLiteral",
                            "src": "9555:1:136",
                            "type": "",
                            "value": "2"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9547:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "9547:3:136"
                        },
                        "nativeSrc": "9547:10:136",
                        "nodeType": "YulFunctionCall",
                        "src": "9547:10:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nativeSrc": "9521:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "9521:17:136"
                    },
                    "nativeSrc": "9521:37:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9521:37:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "9514:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "9514:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nativeSrc": "9142:422:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "9398:3:136",
                "nodeType": "YulTypedName",
                "src": "9398:3:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "9403:6:136",
                "nodeType": "YulTypedName",
                "src": "9403:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "9411:6:136",
                "nodeType": "YulTypedName",
                "src": "9411:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "9422:3:136",
                "nodeType": "YulTypedName",
                "src": "9422:3:136",
                "type": ""
              }
            ],
            "src": "9142:422:136"
          },
          {
            "body": {
              "nativeSrc": "9601:95:136",
              "nodeType": "YulBlock",
              "src": "9601:95:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "9618:1:136",
                        "nodeType": "YulLiteral",
                        "src": "9618:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "9625:3:136",
                            "nodeType": "YulLiteral",
                            "src": "9625:3:136",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9630:10:136",
                            "nodeType": "YulLiteral",
                            "src": "9630:10:136",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "9621:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "9621:3:136"
                        },
                        "nativeSrc": "9621:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "9621:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "9611:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9611:6:136"
                    },
                    "nativeSrc": "9611:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9611:31:136"
                  },
                  "nativeSrc": "9611:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "9611:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "9658:1:136",
                        "nodeType": "YulLiteral",
                        "src": "9658:1:136",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "9661:4:136",
                        "nodeType": "YulLiteral",
                        "src": "9661:4:136",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "9651:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9651:6:136"
                    },
                    "nativeSrc": "9651:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9651:15:136"
                  },
                  "nativeSrc": "9651:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "9651:15:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "9682:1:136",
                        "nodeType": "YulLiteral",
                        "src": "9682:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "9685:4:136",
                        "nodeType": "YulLiteral",
                        "src": "9685:4:136",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "9675:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9675:6:136"
                    },
                    "nativeSrc": "9675:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9675:15:136"
                  },
                  "nativeSrc": "9675:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "9675:15:136"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nativeSrc": "9569:127:136",
            "nodeType": "YulFunctionDefinition",
            "src": "9569:127:136"
          },
          {
            "body": {
              "nativeSrc": "9733:95:136",
              "nodeType": "YulBlock",
              "src": "9733:95:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "9750:1:136",
                        "nodeType": "YulLiteral",
                        "src": "9750:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "9757:3:136",
                            "nodeType": "YulLiteral",
                            "src": "9757:3:136",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9762:10:136",
                            "nodeType": "YulLiteral",
                            "src": "9762:10:136",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "9753:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "9753:3:136"
                        },
                        "nativeSrc": "9753:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "9753:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "9743:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9743:6:136"
                    },
                    "nativeSrc": "9743:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9743:31:136"
                  },
                  "nativeSrc": "9743:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "9743:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "9790:1:136",
                        "nodeType": "YulLiteral",
                        "src": "9790:1:136",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "9793:4:136",
                        "nodeType": "YulLiteral",
                        "src": "9793:4:136",
                        "type": "",
                        "value": "0x12"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "9783:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9783:6:136"
                    },
                    "nativeSrc": "9783:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9783:15:136"
                  },
                  "nativeSrc": "9783:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "9783:15:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "9814:1:136",
                        "nodeType": "YulLiteral",
                        "src": "9814:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "9817:4:136",
                        "nodeType": "YulLiteral",
                        "src": "9817:4:136",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "9807:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9807:6:136"
                    },
                    "nativeSrc": "9807:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9807:15:136"
                  },
                  "nativeSrc": "9807:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "9807:15:136"
                }
              ]
            },
            "name": "panic_error_0x12",
            "nativeSrc": "9701:127:136",
            "nodeType": "YulFunctionDefinition",
            "src": "9701:127:136"
          },
          {
            "body": {
              "nativeSrc": "9865:95:136",
              "nodeType": "YulBlock",
              "src": "9865:95:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "9882:1:136",
                        "nodeType": "YulLiteral",
                        "src": "9882:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "9889:3:136",
                            "nodeType": "YulLiteral",
                            "src": "9889:3:136",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9894:10:136",
                            "nodeType": "YulLiteral",
                            "src": "9894:10:136",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "9885:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "9885:3:136"
                        },
                        "nativeSrc": "9885:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "9885:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "9875:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9875:6:136"
                    },
                    "nativeSrc": "9875:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9875:31:136"
                  },
                  "nativeSrc": "9875:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "9875:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "9922:1:136",
                        "nodeType": "YulLiteral",
                        "src": "9922:1:136",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "9925:4:136",
                        "nodeType": "YulLiteral",
                        "src": "9925:4:136",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "9915:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9915:6:136"
                    },
                    "nativeSrc": "9915:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9915:15:136"
                  },
                  "nativeSrc": "9915:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "9915:15:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "9946:1:136",
                        "nodeType": "YulLiteral",
                        "src": "9946:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "9949:4:136",
                        "nodeType": "YulLiteral",
                        "src": "9949:4:136",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "9939:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9939:6:136"
                    },
                    "nativeSrc": "9939:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9939:15:136"
                  },
                  "nativeSrc": "9939:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "9939:15:136"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nativeSrc": "9833:127:136",
            "nodeType": "YulFunctionDefinition",
            "src": "9833:127:136"
          },
          {
            "body": {
              "nativeSrc": "10009:121:136",
              "nodeType": "YulBlock",
              "src": "10009:121:136",
              "statements": [
                {
                  "nativeSrc": "10019:23:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "10019:23:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "y",
                        "nativeSrc": "10034:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "10034:1:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "10037:4:136",
                        "nodeType": "YulLiteral",
                        "src": "10037:4:136",
                        "type": "",
                        "value": "0xff"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nativeSrc": "10030:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "10030:3:136"
                    },
                    "nativeSrc": "10030:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10030:12:136"
                  },
                  "variables": [
                    {
                      "name": "y_1",
                      "nativeSrc": "10023:3:136",
                      "nodeType": "YulTypedName",
                      "src": "10023:3:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "10066:22:136",
                    "nodeType": "YulBlock",
                    "src": "10066:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x12",
                            "nativeSrc": "10068:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "10068:16:136"
                          },
                          "nativeSrc": "10068:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "10068:18:136"
                        },
                        "nativeSrc": "10068:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "10068:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "y_1",
                        "nativeSrc": "10061:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "10061:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "10054:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "10054:6:136"
                    },
                    "nativeSrc": "10054:11:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10054:11:136"
                  },
                  "nativeSrc": "10051:37:136",
                  "nodeType": "YulIf",
                  "src": "10051:37:136"
                },
                {
                  "nativeSrc": "10097:27:136",
                  "nodeType": "YulAssignment",
                  "src": "10097:27:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "x",
                            "nativeSrc": "10110:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "10110:1:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10113:4:136",
                            "nodeType": "YulLiteral",
                            "src": "10113:4:136",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "10106:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "10106:3:136"
                        },
                        "nativeSrc": "10106:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "10106:12:136"
                      },
                      {
                        "name": "y_1",
                        "nativeSrc": "10120:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "10120:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "div",
                      "nativeSrc": "10102:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "10102:3:136"
                    },
                    "nativeSrc": "10102:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10102:22:136"
                  },
                  "variableNames": [
                    {
                      "name": "r",
                      "nativeSrc": "10097:1:136",
                      "nodeType": "YulIdentifier",
                      "src": "10097:1:136"
                    }
                  ]
                }
              ]
            },
            "name": "checked_div_t_uint8",
            "nativeSrc": "9965:165:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "9994:1:136",
                "nodeType": "YulTypedName",
                "src": "9994:1:136",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "9997:1:136",
                "nodeType": "YulTypedName",
                "src": "9997:1:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "r",
                "nativeSrc": "10003:1:136",
                "nodeType": "YulTypedName",
                "src": "10003:1:136",
                "type": ""
              }
            ],
            "src": "9965:165:136"
          },
          {
            "body": {
              "nativeSrc": "10181:102:136",
              "nodeType": "YulBlock",
              "src": "10181:102:136",
              "statements": [
                {
                  "nativeSrc": "10191:38:136",
                  "nodeType": "YulAssignment",
                  "src": "10191:38:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "x",
                            "nativeSrc": "10206:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "10206:1:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10209:4:136",
                            "nodeType": "YulLiteral",
                            "src": "10209:4:136",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "10202:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "10202:3:136"
                        },
                        "nativeSrc": "10202:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "10202:12:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "y",
                            "nativeSrc": "10220:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "10220:1:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10223:4:136",
                            "nodeType": "YulLiteral",
                            "src": "10223:4:136",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "10216:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "10216:3:136"
                        },
                        "nativeSrc": "10216:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "10216:12:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "10198:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "10198:3:136"
                    },
                    "nativeSrc": "10198:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10198:31:136"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nativeSrc": "10191:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "10191:3:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "10255:22:136",
                    "nodeType": "YulBlock",
                    "src": "10255:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "10257:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "10257:16:136"
                          },
                          "nativeSrc": "10257:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "10257:18:136"
                        },
                        "nativeSrc": "10257:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "10257:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "sum",
                        "nativeSrc": "10244:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "10244:3:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "10249:4:136",
                        "nodeType": "YulLiteral",
                        "src": "10249:4:136",
                        "type": "",
                        "value": "0xff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "10241:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "10241:2:136"
                    },
                    "nativeSrc": "10241:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10241:13:136"
                  },
                  "nativeSrc": "10238:39:136",
                  "nodeType": "YulIf",
                  "src": "10238:39:136"
                }
              ]
            },
            "name": "checked_add_t_uint8",
            "nativeSrc": "10135:148:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "10164:1:136",
                "nodeType": "YulTypedName",
                "src": "10164:1:136",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "10167:1:136",
                "nodeType": "YulTypedName",
                "src": "10167:1:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nativeSrc": "10173:3:136",
                "nodeType": "YulTypedName",
                "src": "10173:3:136",
                "type": ""
              }
            ],
            "src": "10135:148:136"
          },
          {
            "body": {
              "nativeSrc": "10324:121:136",
              "nodeType": "YulBlock",
              "src": "10324:121:136",
              "statements": [
                {
                  "nativeSrc": "10334:23:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "10334:23:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "y",
                        "nativeSrc": "10349:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "10349:1:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "10352:4:136",
                        "nodeType": "YulLiteral",
                        "src": "10352:4:136",
                        "type": "",
                        "value": "0xff"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nativeSrc": "10345:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "10345:3:136"
                    },
                    "nativeSrc": "10345:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10345:12:136"
                  },
                  "variables": [
                    {
                      "name": "y_1",
                      "nativeSrc": "10338:3:136",
                      "nodeType": "YulTypedName",
                      "src": "10338:3:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "10381:22:136",
                    "nodeType": "YulBlock",
                    "src": "10381:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x12",
                            "nativeSrc": "10383:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "10383:16:136"
                          },
                          "nativeSrc": "10383:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "10383:18:136"
                        },
                        "nativeSrc": "10383:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "10383:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "y_1",
                        "nativeSrc": "10376:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "10376:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "10369:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "10369:6:136"
                    },
                    "nativeSrc": "10369:11:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10369:11:136"
                  },
                  "nativeSrc": "10366:37:136",
                  "nodeType": "YulIf",
                  "src": "10366:37:136"
                },
                {
                  "nativeSrc": "10412:27:136",
                  "nodeType": "YulAssignment",
                  "src": "10412:27:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "x",
                            "nativeSrc": "10425:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "10425:1:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10428:4:136",
                            "nodeType": "YulLiteral",
                            "src": "10428:4:136",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "10421:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "10421:3:136"
                        },
                        "nativeSrc": "10421:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "10421:12:136"
                      },
                      {
                        "name": "y_1",
                        "nativeSrc": "10435:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "10435:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "mod",
                      "nativeSrc": "10417:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "10417:3:136"
                    },
                    "nativeSrc": "10417:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10417:22:136"
                  },
                  "variableNames": [
                    {
                      "name": "r",
                      "nativeSrc": "10412:1:136",
                      "nodeType": "YulIdentifier",
                      "src": "10412:1:136"
                    }
                  ]
                }
              ]
            },
            "name": "mod_t_uint8",
            "nativeSrc": "10288:157:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "10309:1:136",
                "nodeType": "YulTypedName",
                "src": "10309:1:136",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "10312:1:136",
                "nodeType": "YulTypedName",
                "src": "10312:1:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "r",
                "nativeSrc": "10318:1:136",
                "nodeType": "YulTypedName",
                "src": "10318:1:136",
                "type": ""
              }
            ],
            "src": "10288:157:136"
          },
          {
            "body": {
              "nativeSrc": "10482:95:136",
              "nodeType": "YulBlock",
              "src": "10482:95:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "10499:1:136",
                        "nodeType": "YulLiteral",
                        "src": "10499:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "10506:3:136",
                            "nodeType": "YulLiteral",
                            "src": "10506:3:136",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10511:10:136",
                            "nodeType": "YulLiteral",
                            "src": "10511:10:136",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "10502:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "10502:3:136"
                        },
                        "nativeSrc": "10502:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "10502:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "10492:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "10492:6:136"
                    },
                    "nativeSrc": "10492:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10492:31:136"
                  },
                  "nativeSrc": "10492:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "10492:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "10539:1:136",
                        "nodeType": "YulLiteral",
                        "src": "10539:1:136",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "10542:4:136",
                        "nodeType": "YulLiteral",
                        "src": "10542:4:136",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "10532:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "10532:6:136"
                    },
                    "nativeSrc": "10532:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10532:15:136"
                  },
                  "nativeSrc": "10532:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "10532:15:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "10563:1:136",
                        "nodeType": "YulLiteral",
                        "src": "10563:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "10566:4:136",
                        "nodeType": "YulLiteral",
                        "src": "10566:4:136",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "10556:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "10556:6:136"
                    },
                    "nativeSrc": "10556:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10556:15:136"
                  },
                  "nativeSrc": "10556:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "10556:15:136"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nativeSrc": "10450:127:136",
            "nodeType": "YulFunctionDefinition",
            "src": "10450:127:136"
          },
          {
            "body": {
              "nativeSrc": "10709:154:136",
              "nodeType": "YulBlock",
              "src": "10709:154:136",
              "statements": [
                {
                  "nativeSrc": "10719:26:136",
                  "nodeType": "YulAssignment",
                  "src": "10719:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "10731:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "10731:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "10742:2:136",
                        "nodeType": "YulLiteral",
                        "src": "10742:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "10727:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "10727:3:136"
                    },
                    "nativeSrc": "10727:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10727:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "10719:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "10719:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "10761:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "10761:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "10772:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "10772:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "10754:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "10754:6:136"
                    },
                    "nativeSrc": "10754:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10754:25:136"
                  },
                  "nativeSrc": "10754:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "10754:25:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "10799:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "10799:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10810:2:136",
                            "nodeType": "YulLiteral",
                            "src": "10810:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "10795:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "10795:3:136"
                        },
                        "nativeSrc": "10795:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "10795:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "10819:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "10819:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "10831:3:136",
                                "nodeType": "YulLiteral",
                                "src": "10831:3:136",
                                "type": "",
                                "value": "192"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "10836:18:136",
                                "nodeType": "YulLiteral",
                                "src": "10836:18:136",
                                "type": "",
                                "value": "0xffffffffffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "10827:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "10827:3:136"
                            },
                            "nativeSrc": "10827:28:136",
                            "nodeType": "YulFunctionCall",
                            "src": "10827:28:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "10815:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "10815:3:136"
                        },
                        "nativeSrc": "10815:41:136",
                        "nodeType": "YulFunctionCall",
                        "src": "10815:41:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "10788:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "10788:6:136"
                    },
                    "nativeSrc": "10788:69:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10788:69:136"
                  },
                  "nativeSrc": "10788:69:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "10788:69:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_bytes8__to_t_uint256_t_bytes8__fromStack_reversed",
            "nativeSrc": "10582:281:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "10670:9:136",
                "nodeType": "YulTypedName",
                "src": "10670:9:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "10681:6:136",
                "nodeType": "YulTypedName",
                "src": "10681:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "10689:6:136",
                "nodeType": "YulTypedName",
                "src": "10689:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "10700:4:136",
                "nodeType": "YulTypedName",
                "src": "10700:4:136",
                "type": ""
              }
            ],
            "src": "10582:281:136"
          },
          {
            "body": {
              "nativeSrc": "10968:101:136",
              "nodeType": "YulBlock",
              "src": "10968:101:136",
              "statements": [
                {
                  "nativeSrc": "10978:26:136",
                  "nodeType": "YulAssignment",
                  "src": "10978:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "10990:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "10990:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "11001:2:136",
                        "nodeType": "YulLiteral",
                        "src": "11001:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "10986:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "10986:3:136"
                    },
                    "nativeSrc": "10986:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10986:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "10978:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "10978:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "11020:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "11020:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "11035:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "11035:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "11043:18:136",
                            "nodeType": "YulLiteral",
                            "src": "11043:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "11031:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "11031:3:136"
                        },
                        "nativeSrc": "11031:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "11031:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "11013:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "11013:6:136"
                    },
                    "nativeSrc": "11013:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11013:50:136"
                  },
                  "nativeSrc": "11013:50:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "11013:50:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint64__to_t_uint256__fromStack_reversed",
            "nativeSrc": "10868:201:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "10937:9:136",
                "nodeType": "YulTypedName",
                "src": "10937:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "10948:6:136",
                "nodeType": "YulTypedName",
                "src": "10948:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "10959:4:136",
                "nodeType": "YulTypedName",
                "src": "10959:4:136",
                "type": ""
              }
            ],
            "src": "10868:201:136"
          },
          {
            "body": {
              "nativeSrc": "11274:458:136",
              "nodeType": "YulBlock",
              "src": "11274:458:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "11321:16:136",
                    "nodeType": "YulBlock",
                    "src": "11321:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "11330:1:136",
                              "nodeType": "YulLiteral",
                              "src": "11330:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "11333:1:136",
                              "nodeType": "YulLiteral",
                              "src": "11333:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "11323:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "11323:6:136"
                          },
                          "nativeSrc": "11323:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "11323:12:136"
                        },
                        "nativeSrc": "11323:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "11323:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "11295:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "11295:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "11304:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "11304:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "11291:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "11291:3:136"
                        },
                        "nativeSrc": "11291:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "11291:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "11316:3:136",
                        "nodeType": "YulLiteral",
                        "src": "11316:3:136",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "11287:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "11287:3:136"
                    },
                    "nativeSrc": "11287:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11287:33:136"
                  },
                  "nativeSrc": "11284:53:136",
                  "nodeType": "YulIf",
                  "src": "11284:53:136"
                },
                {
                  "nativeSrc": "11346:14:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "11346:14:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "11359:1:136",
                    "nodeType": "YulLiteral",
                    "src": "11359:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "11350:5:136",
                      "nodeType": "YulTypedName",
                      "src": "11350:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "11369:25:136",
                  "nodeType": "YulAssignment",
                  "src": "11369:25:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "11384:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "11384:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "11378:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "11378:5:136"
                    },
                    "nativeSrc": "11378:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11378:16:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "11369:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "11369:5:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "11403:15:136",
                  "nodeType": "YulAssignment",
                  "src": "11403:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "11413:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "11413:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "11403:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "11403:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "11427:16:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "11427:16:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "11442:1:136",
                    "nodeType": "YulLiteral",
                    "src": "11442:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "11431:7:136",
                      "nodeType": "YulTypedName",
                      "src": "11431:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "11452:36:136",
                  "nodeType": "YulAssignment",
                  "src": "11452:36:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "11473:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "11473:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "11484:2:136",
                            "nodeType": "YulLiteral",
                            "src": "11484:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "11469:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "11469:3:136"
                        },
                        "nativeSrc": "11469:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "11469:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "11463:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "11463:5:136"
                    },
                    "nativeSrc": "11463:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11463:25:136"
                  },
                  "variableNames": [
                    {
                      "name": "value_1",
                      "nativeSrc": "11452:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "11452:7:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "11497:17:136",
                  "nodeType": "YulAssignment",
                  "src": "11497:17:136",
                  "value": {
                    "name": "value_1",
                    "nativeSrc": "11507:7:136",
                    "nodeType": "YulIdentifier",
                    "src": "11507:7:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "11497:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "11497:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "11523:40:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "11523:40:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "11548:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "11548:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "11559:2:136",
                            "nodeType": "YulLiteral",
                            "src": "11559:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "11544:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "11544:3:136"
                        },
                        "nativeSrc": "11544:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "11544:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "11538:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "11538:5:136"
                    },
                    "nativeSrc": "11538:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11538:25:136"
                  },
                  "variables": [
                    {
                      "name": "value_2",
                      "nativeSrc": "11527:7:136",
                      "nodeType": "YulTypedName",
                      "src": "11527:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_2",
                        "nativeSrc": "11596:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "11596:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "11572:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "11572:23:136"
                    },
                    "nativeSrc": "11572:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11572:32:136"
                  },
                  "nativeSrc": "11572:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "11572:32:136"
                },
                {
                  "nativeSrc": "11613:17:136",
                  "nodeType": "YulAssignment",
                  "src": "11613:17:136",
                  "value": {
                    "name": "value_2",
                    "nativeSrc": "11623:7:136",
                    "nodeType": "YulIdentifier",
                    "src": "11623:7:136"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nativeSrc": "11613:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "11613:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "11639:16:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "11639:16:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "11654:1:136",
                    "nodeType": "YulLiteral",
                    "src": "11654:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value_3",
                      "nativeSrc": "11643:7:136",
                      "nodeType": "YulTypedName",
                      "src": "11643:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "11664:36:136",
                  "nodeType": "YulAssignment",
                  "src": "11664:36:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "11685:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "11685:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "11696:2:136",
                            "nodeType": "YulLiteral",
                            "src": "11696:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "11681:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "11681:3:136"
                        },
                        "nativeSrc": "11681:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "11681:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "11675:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "11675:5:136"
                    },
                    "nativeSrc": "11675:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11675:25:136"
                  },
                  "variableNames": [
                    {
                      "name": "value_3",
                      "nativeSrc": "11664:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "11664:7:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "11709:17:136",
                  "nodeType": "YulAssignment",
                  "src": "11709:17:136",
                  "value": {
                    "name": "value_3",
                    "nativeSrc": "11719:7:136",
                    "nodeType": "YulIdentifier",
                    "src": "11719:7:136"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nativeSrc": "11709:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "11709:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes32t_userDefinedValueType$_TransactionHash_$37159t_userDefinedValueType$_Timestamp_$37157t_uint256_fromMemory",
            "nativeSrc": "11074:658:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "11216:9:136",
                "nodeType": "YulTypedName",
                "src": "11216:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "11227:7:136",
                "nodeType": "YulTypedName",
                "src": "11227:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "11239:6:136",
                "nodeType": "YulTypedName",
                "src": "11239:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "11247:6:136",
                "nodeType": "YulTypedName",
                "src": "11247:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "11255:6:136",
                "nodeType": "YulTypedName",
                "src": "11255:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "11263:6:136",
                "nodeType": "YulTypedName",
                "src": "11263:6:136",
                "type": ""
              }
            ],
            "src": "11074:658:136"
          },
          {
            "body": {
              "nativeSrc": "11911:174:136",
              "nodeType": "YulBlock",
              "src": "11911:174:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "11928:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "11928:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "11939:2:136",
                        "nodeType": "YulLiteral",
                        "src": "11939:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "11921:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "11921:6:136"
                    },
                    "nativeSrc": "11921:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11921:21:136"
                  },
                  "nativeSrc": "11921:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "11921:21:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "11962:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "11962:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "11973:2:136",
                            "nodeType": "YulLiteral",
                            "src": "11973:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "11958:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "11958:3:136"
                        },
                        "nativeSrc": "11958:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "11958:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "11978:2:136",
                        "nodeType": "YulLiteral",
                        "src": "11978:2:136",
                        "type": "",
                        "value": "24"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "11951:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "11951:6:136"
                    },
                    "nativeSrc": "11951:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11951:30:136"
                  },
                  "nativeSrc": "11951:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "11951:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "12001:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "12001:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "12012:2:136",
                            "nodeType": "YulLiteral",
                            "src": "12012:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "11997:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "11997:3:136"
                        },
                        "nativeSrc": "11997:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "11997:18:136"
                      },
                      {
                        "hexValue": "436c6f6e61626c653a206f6e6c79206f6e20636c6f6e6573",
                        "kind": "string",
                        "nativeSrc": "12017:26:136",
                        "nodeType": "YulLiteral",
                        "src": "12017:26:136",
                        "type": "",
                        "value": "Clonable: only on clones"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "11990:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "11990:6:136"
                    },
                    "nativeSrc": "11990:54:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11990:54:136"
                  },
                  "nativeSrc": "11990:54:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "11990:54:136"
                },
                {
                  "nativeSrc": "12053:26:136",
                  "nodeType": "YulAssignment",
                  "src": "12053:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "12065:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "12065:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "12076:2:136",
                        "nodeType": "YulLiteral",
                        "src": "12076:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "12061:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "12061:3:136"
                    },
                    "nativeSrc": "12061:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12061:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "12053:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "12053:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_679c3eba4e7d658297efbb8047c8787b8adf0086ae8149ace5cf10d6f2df7de4__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "11737:348:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "11888:9:136",
                "nodeType": "YulTypedName",
                "src": "11888:9:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "11902:4:136",
                "nodeType": "YulTypedName",
                "src": "11902:4:136",
                "type": ""
              }
            ],
            "src": "11737:348:136"
          },
          {
            "body": {
              "nativeSrc": "12159:115:136",
              "nodeType": "YulBlock",
              "src": "12159:115:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "12205:16:136",
                    "nodeType": "YulBlock",
                    "src": "12205:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "12214:1:136",
                              "nodeType": "YulLiteral",
                              "src": "12214:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "12217:1:136",
                              "nodeType": "YulLiteral",
                              "src": "12217:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "12207:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "12207:6:136"
                          },
                          "nativeSrc": "12207:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "12207:12:136"
                        },
                        "nativeSrc": "12207:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "12207:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "12180:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "12180:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "12189:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "12189:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "12176:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "12176:3:136"
                        },
                        "nativeSrc": "12176:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "12176:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "12201:2:136",
                        "nodeType": "YulLiteral",
                        "src": "12201:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "12172:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "12172:3:136"
                    },
                    "nativeSrc": "12172:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12172:32:136"
                  },
                  "nativeSrc": "12169:52:136",
                  "nodeType": "YulIf",
                  "src": "12169:52:136"
                },
                {
                  "nativeSrc": "12230:38:136",
                  "nodeType": "YulAssignment",
                  "src": "12230:38:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "12258:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "12258:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_uint24",
                      "nativeSrc": "12240:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "12240:17:136"
                    },
                    "nativeSrc": "12240:28:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12240:28:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "12230:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "12230:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint24",
            "nativeSrc": "12090:184:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "12125:9:136",
                "nodeType": "YulTypedName",
                "src": "12125:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "12136:7:136",
                "nodeType": "YulTypedName",
                "src": "12136:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "12148:6:136",
                "nodeType": "YulTypedName",
                "src": "12148:6:136",
                "type": ""
              }
            ],
            "src": "12090:184:136"
          },
          {
            "body": {
              "nativeSrc": "12348:176:136",
              "nodeType": "YulBlock",
              "src": "12348:176:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "12394:16:136",
                    "nodeType": "YulBlock",
                    "src": "12394:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "12403:1:136",
                              "nodeType": "YulLiteral",
                              "src": "12403:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "12406:1:136",
                              "nodeType": "YulLiteral",
                              "src": "12406:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "12396:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "12396:6:136"
                          },
                          "nativeSrc": "12396:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "12396:12:136"
                        },
                        "nativeSrc": "12396:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "12396:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "12369:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "12369:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "12378:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "12378:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "12365:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "12365:3:136"
                        },
                        "nativeSrc": "12365:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "12365:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "12390:2:136",
                        "nodeType": "YulLiteral",
                        "src": "12390:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "12361:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "12361:3:136"
                    },
                    "nativeSrc": "12361:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12361:32:136"
                  },
                  "nativeSrc": "12358:52:136",
                  "nodeType": "YulIf",
                  "src": "12358:52:136"
                },
                {
                  "nativeSrc": "12419:36:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "12419:36:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "12445:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "12445:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "12432:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "12432:12:136"
                    },
                    "nativeSrc": "12432:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12432:23:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "12423:5:136",
                      "nodeType": "YulTypedName",
                      "src": "12423:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "12488:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "12488:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "12464:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "12464:23:136"
                    },
                    "nativeSrc": "12464:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12464:30:136"
                  },
                  "nativeSrc": "12464:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "12464:30:136"
                },
                {
                  "nativeSrc": "12503:15:136",
                  "nodeType": "YulAssignment",
                  "src": "12503:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "12513:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "12513:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "12503:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "12503:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint64",
            "nativeSrc": "12279:245:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "12314:9:136",
                "nodeType": "YulTypedName",
                "src": "12314:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "12325:7:136",
                "nodeType": "YulTypedName",
                "src": "12325:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "12337:6:136",
                "nodeType": "YulTypedName",
                "src": "12337:6:136",
                "type": ""
              }
            ],
            "src": "12279:245:136"
          },
          {
            "body": {
              "nativeSrc": "12637:101:136",
              "nodeType": "YulBlock",
              "src": "12637:101:136",
              "statements": [
                {
                  "nativeSrc": "12647:26:136",
                  "nodeType": "YulAssignment",
                  "src": "12647:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "12659:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "12659:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "12670:2:136",
                        "nodeType": "YulLiteral",
                        "src": "12670:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "12655:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "12655:3:136"
                    },
                    "nativeSrc": "12655:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12655:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "12647:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "12647:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "12689:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "12689:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "12704:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "12704:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "12712:18:136",
                            "nodeType": "YulLiteral",
                            "src": "12712:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "12700:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "12700:3:136"
                        },
                        "nativeSrc": "12700:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "12700:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "12682:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "12682:6:136"
                    },
                    "nativeSrc": "12682:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12682:50:136"
                  },
                  "nativeSrc": "12682:50:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "12682:50:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed",
            "nativeSrc": "12529:209:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "12606:9:136",
                "nodeType": "YulTypedName",
                "src": "12606:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "12617:6:136",
                "nodeType": "YulTypedName",
                "src": "12617:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "12628:4:136",
                "nodeType": "YulTypedName",
                "src": "12628:4:136",
                "type": ""
              }
            ],
            "src": "12529:209:136"
          },
          {
            "body": {
              "nativeSrc": "13049:448:136",
              "nodeType": "YulBlock",
              "src": "13049:448:136",
              "statements": [
                {
                  "nativeSrc": "13059:27:136",
                  "nodeType": "YulAssignment",
                  "src": "13059:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "13071:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "13071:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "13082:3:136",
                        "nodeType": "YulLiteral",
                        "src": "13082:3:136",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "13067:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "13067:3:136"
                    },
                    "nativeSrc": "13067:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13067:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "13059:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "13059:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "13102:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "13102:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "13113:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "13113:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "13095:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "13095:6:136"
                    },
                    "nativeSrc": "13095:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13095:25:136"
                  },
                  "nativeSrc": "13095:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "13095:25:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "13140:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "13140:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13151:2:136",
                            "nodeType": "YulLiteral",
                            "src": "13151:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "13136:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "13136:3:136"
                        },
                        "nativeSrc": "13136:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13136:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value1",
                                "nativeSrc": "13166:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "13166:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "13160:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "13160:5:136"
                            },
                            "nativeSrc": "13160:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "13160:13:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13175:6:136",
                            "nodeType": "YulLiteral",
                            "src": "13175:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "13156:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "13156:3:136"
                        },
                        "nativeSrc": "13156:26:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13156:26:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "13129:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "13129:6:136"
                    },
                    "nativeSrc": "13129:54:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13129:54:136"
                  },
                  "nativeSrc": "13129:54:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "13129:54:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "13203:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "13203:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13214:2:136",
                            "nodeType": "YulLiteral",
                            "src": "13214:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "13199:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "13199:3:136"
                        },
                        "nativeSrc": "13199:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13199:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value1",
                                    "nativeSrc": "13233:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "13233:6:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "13241:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "13241:2:136",
                                    "type": "",
                                    "value": "32"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "13229:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "13229:3:136"
                                },
                                "nativeSrc": "13229:15:136",
                                "nodeType": "YulFunctionCall",
                                "src": "13229:15:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "13223:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "13223:5:136"
                            },
                            "nativeSrc": "13223:22:136",
                            "nodeType": "YulFunctionCall",
                            "src": "13223:22:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13247:6:136",
                            "nodeType": "YulLiteral",
                            "src": "13247:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "13219:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "13219:3:136"
                        },
                        "nativeSrc": "13219:35:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13219:35:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "13192:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "13192:6:136"
                    },
                    "nativeSrc": "13192:63:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13192:63:136"
                  },
                  "nativeSrc": "13192:63:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "13192:63:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "13275:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "13275:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13286:2:136",
                            "nodeType": "YulLiteral",
                            "src": "13286:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "13271:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "13271:3:136"
                        },
                        "nativeSrc": "13271:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13271:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value1",
                                    "nativeSrc": "13305:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "13305:6:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "13313:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "13313:2:136",
                                    "type": "",
                                    "value": "64"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "13301:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "13301:3:136"
                                },
                                "nativeSrc": "13301:15:136",
                                "nodeType": "YulFunctionCall",
                                "src": "13301:15:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "13295:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "13295:5:136"
                            },
                            "nativeSrc": "13295:22:136",
                            "nodeType": "YulFunctionCall",
                            "src": "13295:22:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13319:18:136",
                            "nodeType": "YulLiteral",
                            "src": "13319:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "13291:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "13291:3:136"
                        },
                        "nativeSrc": "13291:47:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13291:47:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "13264:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "13264:6:136"
                    },
                    "nativeSrc": "13264:75:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13264:75:136"
                  },
                  "nativeSrc": "13264:75:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "13264:75:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "13359:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "13359:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13370:3:136",
                            "nodeType": "YulLiteral",
                            "src": "13370:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "13355:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "13355:3:136"
                        },
                        "nativeSrc": "13355:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13355:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value2",
                                "nativeSrc": "13386:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "13386:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "13380:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "13380:5:136"
                            },
                            "nativeSrc": "13380:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "13380:13:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "13403:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "13403:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "13408:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "13408:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "13399:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "13399:3:136"
                                },
                                "nativeSrc": "13399:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "13399:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "13412:1:136",
                                "nodeType": "YulLiteral",
                                "src": "13412:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "13395:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "13395:3:136"
                            },
                            "nativeSrc": "13395:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "13395:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "13376:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "13376:3:136"
                        },
                        "nativeSrc": "13376:39:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13376:39:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "13348:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "13348:6:136"
                    },
                    "nativeSrc": "13348:68:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13348:68:136"
                  },
                  "nativeSrc": "13348:68:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "13348:68:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "13436:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "13436:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13447:3:136",
                            "nodeType": "YulLiteral",
                            "src": "13447:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "13432:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "13432:3:136"
                        },
                        "nativeSrc": "13432:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13432:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value2",
                                    "nativeSrc": "13467:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "13467:6:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "13475:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "13475:2:136",
                                    "type": "",
                                    "value": "32"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "13463:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "13463:3:136"
                                },
                                "nativeSrc": "13463:15:136",
                                "nodeType": "YulFunctionCall",
                                "src": "13463:15:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "13457:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "13457:5:136"
                            },
                            "nativeSrc": "13457:22:136",
                            "nodeType": "YulFunctionCall",
                            "src": "13457:22:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13481:8:136",
                            "nodeType": "YulLiteral",
                            "src": "13481:8:136",
                            "type": "",
                            "value": "0xffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "13453:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "13453:3:136"
                        },
                        "nativeSrc": "13453:37:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13453:37:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "13425:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "13425:6:136"
                    },
                    "nativeSrc": "13425:66:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13425:66:136"
                  },
                  "nativeSrc": "13425:66:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "13425:66:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_RadonHash_$37153_t_struct$_QuerySLA_$37373_memory_ptr_t_struct$_QueryCallback_$37340_memory_ptr__to_t_bytes32_t_struct$_QuerySLA_$37373_memory_ptr_t_struct$_QueryCallback_$37340_memory_ptr__fromStack_reversed",
            "nativeSrc": "12743:754:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "13002:9:136",
                "nodeType": "YulTypedName",
                "src": "13002:9:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "13013:6:136",
                "nodeType": "YulTypedName",
                "src": "13013:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "13021:6:136",
                "nodeType": "YulTypedName",
                "src": "13021:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "13029:6:136",
                "nodeType": "YulTypedName",
                "src": "13029:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "13040:4:136",
                "nodeType": "YulTypedName",
                "src": "13040:4:136",
                "type": ""
              }
            ],
            "src": "12743:754:136"
          },
          {
            "body": {
              "nativeSrc": "13583:149:136",
              "nodeType": "YulBlock",
              "src": "13583:149:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "13629:16:136",
                    "nodeType": "YulBlock",
                    "src": "13629:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "13638:1:136",
                              "nodeType": "YulLiteral",
                              "src": "13638:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "13641:1:136",
                              "nodeType": "YulLiteral",
                              "src": "13641:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "13631:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "13631:6:136"
                          },
                          "nativeSrc": "13631:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "13631:12:136"
                        },
                        "nativeSrc": "13631:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "13631:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "13604:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "13604:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "13613:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "13613:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "13600:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "13600:3:136"
                        },
                        "nativeSrc": "13600:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13600:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "13625:2:136",
                        "nodeType": "YulLiteral",
                        "src": "13625:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "13596:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "13596:3:136"
                    },
                    "nativeSrc": "13596:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13596:32:136"
                  },
                  "nativeSrc": "13593:52:136",
                  "nodeType": "YulIf",
                  "src": "13593:52:136"
                },
                {
                  "nativeSrc": "13654:14:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "13654:14:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "13667:1:136",
                    "nodeType": "YulLiteral",
                    "src": "13667:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "13658:5:136",
                      "nodeType": "YulTypedName",
                      "src": "13658:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "13677:25:136",
                  "nodeType": "YulAssignment",
                  "src": "13677:25:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "13692:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "13692:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "13686:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "13686:5:136"
                    },
                    "nativeSrc": "13686:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13686:16:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "13677:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "13677:5:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "13711:15:136",
                  "nodeType": "YulAssignment",
                  "src": "13711:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "13721:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "13721:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "13711:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "13711:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256_fromMemory",
            "nativeSrc": "13502:230:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "13549:9:136",
                "nodeType": "YulTypedName",
                "src": "13549:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "13560:7:136",
                "nodeType": "YulTypedName",
                "src": "13560:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "13572:6:136",
                "nodeType": "YulTypedName",
                "src": "13572:6:136",
                "type": ""
              }
            ],
            "src": "13502:230:136"
          },
          {
            "body": {
              "nativeSrc": "13894:144:136",
              "nodeType": "YulBlock",
              "src": "13894:144:136",
              "statements": [
                {
                  "nativeSrc": "13904:26:136",
                  "nodeType": "YulAssignment",
                  "src": "13904:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "13916:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "13916:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "13927:2:136",
                        "nodeType": "YulLiteral",
                        "src": "13927:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "13912:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "13912:3:136"
                    },
                    "nativeSrc": "13912:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13912:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "13904:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "13904:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "13946:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "13946:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "13957:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "13957:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "13939:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "13939:6:136"
                    },
                    "nativeSrc": "13939:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13939:25:136"
                  },
                  "nativeSrc": "13939:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "13939:25:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "13984:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "13984:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13995:2:136",
                            "nodeType": "YulLiteral",
                            "src": "13995:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "13980:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "13980:3:136"
                        },
                        "nativeSrc": "13980:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13980:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "14004:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "14004:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "14012:18:136",
                            "nodeType": "YulLiteral",
                            "src": "14012:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "14000:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "14000:3:136"
                        },
                        "nativeSrc": "14000:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "14000:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "13973:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "13973:6:136"
                    },
                    "nativeSrc": "13973:59:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13973:59:136"
                  },
                  "nativeSrc": "13973:59:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "13973:59:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_userDefinedValueType$_QueryId_$37151__to_t_uint256_t_uint64__fromStack_reversed",
            "nativeSrc": "13737:301:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "13855:9:136",
                "nodeType": "YulTypedName",
                "src": "13855:9:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "13866:6:136",
                "nodeType": "YulTypedName",
                "src": "13866:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "13874:6:136",
                "nodeType": "YulTypedName",
                "src": "13874:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "13885:4:136",
                "nodeType": "YulTypedName",
                "src": "13885:4:136",
                "type": ""
              }
            ],
            "src": "13737:301:136"
          },
          {
            "body": {
              "nativeSrc": "14092:79:136",
              "nodeType": "YulBlock",
              "src": "14092:79:136",
              "statements": [
                {
                  "nativeSrc": "14102:17:136",
                  "nodeType": "YulAssignment",
                  "src": "14102:17:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nativeSrc": "14114:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "14114:1:136"
                      },
                      {
                        "name": "y",
                        "nativeSrc": "14117:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "14117:1:136"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nativeSrc": "14110:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "14110:3:136"
                    },
                    "nativeSrc": "14110:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14110:9:136"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nativeSrc": "14102:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "14102:4:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "14143:22:136",
                    "nodeType": "YulBlock",
                    "src": "14143:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "14145:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "14145:16:136"
                          },
                          "nativeSrc": "14145:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "14145:18:136"
                        },
                        "nativeSrc": "14145:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "14145:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "diff",
                        "nativeSrc": "14134:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "14134:4:136"
                      },
                      {
                        "name": "x",
                        "nativeSrc": "14140:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "14140:1:136"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "14131:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "14131:2:136"
                    },
                    "nativeSrc": "14131:11:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14131:11:136"
                  },
                  "nativeSrc": "14128:37:136",
                  "nodeType": "YulIf",
                  "src": "14128:37:136"
                }
              ]
            },
            "name": "checked_sub_t_uint256",
            "nativeSrc": "14043:128:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "14074:1:136",
                "nodeType": "YulTypedName",
                "src": "14074:1:136",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "14077:1:136",
                "nodeType": "YulTypedName",
                "src": "14077:1:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nativeSrc": "14083:4:136",
                "nodeType": "YulTypedName",
                "src": "14083:4:136",
                "type": ""
              }
            ],
            "src": "14043:128:136"
          },
          {
            "body": {
              "nativeSrc": "14281:170:136",
              "nodeType": "YulBlock",
              "src": "14281:170:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "14327:16:136",
                    "nodeType": "YulBlock",
                    "src": "14327:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "14336:1:136",
                              "nodeType": "YulLiteral",
                              "src": "14336:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "14339:1:136",
                              "nodeType": "YulLiteral",
                              "src": "14339:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "14329:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "14329:6:136"
                          },
                          "nativeSrc": "14329:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "14329:12:136"
                        },
                        "nativeSrc": "14329:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "14329:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "14302:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "14302:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "14311:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "14311:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "14298:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "14298:3:136"
                        },
                        "nativeSrc": "14298:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "14298:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "14323:2:136",
                        "nodeType": "YulLiteral",
                        "src": "14323:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "14294:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "14294:3:136"
                    },
                    "nativeSrc": "14294:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14294:32:136"
                  },
                  "nativeSrc": "14291:52:136",
                  "nodeType": "YulIf",
                  "src": "14291:52:136"
                },
                {
                  "nativeSrc": "14352:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "14352:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "14371:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "14371:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "14365:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "14365:5:136"
                    },
                    "nativeSrc": "14365:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14365:16:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "14356:5:136",
                      "nodeType": "YulTypedName",
                      "src": "14356:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "14415:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "14415:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "14390:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "14390:24:136"
                    },
                    "nativeSrc": "14390:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14390:31:136"
                  },
                  "nativeSrc": "14390:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "14390:31:136"
                },
                {
                  "nativeSrc": "14430:15:136",
                  "nodeType": "YulAssignment",
                  "src": "14430:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "14440:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "14440:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "14430:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "14430:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_contract$_IWitRandomness_$28351_fromMemory",
            "nativeSrc": "14176:275:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "14247:9:136",
                "nodeType": "YulTypedName",
                "src": "14247:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "14258:7:136",
                "nodeType": "YulTypedName",
                "src": "14258:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "14270:6:136",
                "nodeType": "YulTypedName",
                "src": "14270:6:136",
                "type": ""
              }
            ],
            "src": "14176:275:136"
          },
          {
            "body": {
              "nativeSrc": "14504:77:136",
              "nodeType": "YulBlock",
              "src": "14504:77:136",
              "statements": [
                {
                  "nativeSrc": "14514:16:136",
                  "nodeType": "YulAssignment",
                  "src": "14514:16:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nativeSrc": "14525:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "14525:1:136"
                      },
                      {
                        "name": "y",
                        "nativeSrc": "14528:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "14528:1:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "14521:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "14521:3:136"
                    },
                    "nativeSrc": "14521:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14521:9:136"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nativeSrc": "14514:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "14514:3:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "14553:22:136",
                    "nodeType": "YulBlock",
                    "src": "14553:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "14555:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "14555:16:136"
                          },
                          "nativeSrc": "14555:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "14555:18:136"
                        },
                        "nativeSrc": "14555:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "14555:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "x",
                        "nativeSrc": "14545:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "14545:1:136"
                      },
                      {
                        "name": "sum",
                        "nativeSrc": "14548:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "14548:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "14542:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "14542:2:136"
                    },
                    "nativeSrc": "14542:10:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14542:10:136"
                  },
                  "nativeSrc": "14539:36:136",
                  "nodeType": "YulIf",
                  "src": "14539:36:136"
                }
              ]
            },
            "name": "checked_add_t_uint256",
            "nativeSrc": "14456:125:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "14487:1:136",
                "nodeType": "YulTypedName",
                "src": "14487:1:136",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "14490:1:136",
                "nodeType": "YulTypedName",
                "src": "14490:1:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nativeSrc": "14496:3:136",
                "nodeType": "YulTypedName",
                "src": "14496:3:136",
                "type": ""
              }
            ],
            "src": "14456:125:136"
          },
          {
            "body": {
              "nativeSrc": "14777:471:136",
              "nodeType": "YulBlock",
              "src": "14777:471:136",
              "statements": [
                {
                  "nativeSrc": "14787:27:136",
                  "nodeType": "YulAssignment",
                  "src": "14787:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "14799:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "14799:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "14810:3:136",
                        "nodeType": "YulLiteral",
                        "src": "14810:3:136",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "14795:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "14795:3:136"
                    },
                    "nativeSrc": "14795:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14795:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "14787:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "14787:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "14830:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "14830:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "14845:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "14845:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "14861:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "14861:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "14866:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "14866:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "14857:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "14857:3:136"
                                },
                                "nativeSrc": "14857:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "14857:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "14870:1:136",
                                "nodeType": "YulLiteral",
                                "src": "14870:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "14853:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "14853:3:136"
                            },
                            "nativeSrc": "14853:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "14853:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "14841:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "14841:3:136"
                        },
                        "nativeSrc": "14841:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "14841:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "14823:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "14823:6:136"
                    },
                    "nativeSrc": "14823:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14823:51:136"
                  },
                  "nativeSrc": "14823:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "14823:51:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "14894:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "14894:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "14905:2:136",
                            "nodeType": "YulLiteral",
                            "src": "14905:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "14890:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "14890:3:136"
                        },
                        "nativeSrc": "14890:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "14890:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value1",
                                "nativeSrc": "14920:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "14920:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "14914:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "14914:5:136"
                            },
                            "nativeSrc": "14914:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "14914:13:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "14929:8:136",
                            "nodeType": "YulLiteral",
                            "src": "14929:8:136",
                            "type": "",
                            "value": "0xffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "14910:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "14910:3:136"
                        },
                        "nativeSrc": "14910:28:136",
                        "nodeType": "YulFunctionCall",
                        "src": "14910:28:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "14883:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "14883:6:136"
                    },
                    "nativeSrc": "14883:56:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14883:56:136"
                  },
                  "nativeSrc": "14883:56:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "14883:56:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "14959:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "14959:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "14970:2:136",
                            "nodeType": "YulLiteral",
                            "src": "14970:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "14955:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "14955:3:136"
                        },
                        "nativeSrc": "14955:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "14955:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value1",
                                    "nativeSrc": "14989:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "14989:6:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "14997:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "14997:2:136",
                                    "type": "",
                                    "value": "32"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "14985:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "14985:3:136"
                                },
                                "nativeSrc": "14985:15:136",
                                "nodeType": "YulFunctionCall",
                                "src": "14985:15:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "14979:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "14979:5:136"
                            },
                            "nativeSrc": "14979:22:136",
                            "nodeType": "YulFunctionCall",
                            "src": "14979:22:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "15003:6:136",
                            "nodeType": "YulLiteral",
                            "src": "15003:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "14975:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "14975:3:136"
                        },
                        "nativeSrc": "14975:35:136",
                        "nodeType": "YulFunctionCall",
                        "src": "14975:35:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "14948:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "14948:6:136"
                    },
                    "nativeSrc": "14948:63:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14948:63:136"
                  },
                  "nativeSrc": "14948:63:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "14948:63:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "15031:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "15031:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "15042:2:136",
                            "nodeType": "YulLiteral",
                            "src": "15042:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "15027:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "15027:3:136"
                        },
                        "nativeSrc": "15027:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "15027:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value1",
                                    "nativeSrc": "15061:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "15061:6:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "15069:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "15069:2:136",
                                    "type": "",
                                    "value": "64"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "15057:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "15057:3:136"
                                },
                                "nativeSrc": "15057:15:136",
                                "nodeType": "YulFunctionCall",
                                "src": "15057:15:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "15051:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "15051:5:136"
                            },
                            "nativeSrc": "15051:22:136",
                            "nodeType": "YulFunctionCall",
                            "src": "15051:22:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "15075:6:136",
                            "nodeType": "YulLiteral",
                            "src": "15075:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "15047:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "15047:3:136"
                        },
                        "nativeSrc": "15047:35:136",
                        "nodeType": "YulFunctionCall",
                        "src": "15047:35:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "15020:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "15020:6:136"
                    },
                    "nativeSrc": "15020:63:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15020:63:136"
                  },
                  "nativeSrc": "15020:63:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "15020:63:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "15103:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "15103:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "15114:3:136",
                            "nodeType": "YulLiteral",
                            "src": "15114:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "15099:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "15099:3:136"
                        },
                        "nativeSrc": "15099:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "15099:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value1",
                                    "nativeSrc": "15134:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "15134:6:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "15142:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "15142:2:136",
                                    "type": "",
                                    "value": "96"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "15130:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "15130:3:136"
                                },
                                "nativeSrc": "15130:15:136",
                                "nodeType": "YulFunctionCall",
                                "src": "15130:15:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "15124:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "15124:5:136"
                            },
                            "nativeSrc": "15124:22:136",
                            "nodeType": "YulFunctionCall",
                            "src": "15124:22:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "15148:18:136",
                            "nodeType": "YulLiteral",
                            "src": "15148:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "15120:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "15120:3:136"
                        },
                        "nativeSrc": "15120:47:136",
                        "nodeType": "YulFunctionCall",
                        "src": "15120:47:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "15092:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "15092:6:136"
                    },
                    "nativeSrc": "15092:76:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15092:76:136"
                  },
                  "nativeSrc": "15092:76:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "15092:76:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "15188:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "15188:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "15199:3:136",
                            "nodeType": "YulLiteral",
                            "src": "15199:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "15184:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "15184:3:136"
                        },
                        "nativeSrc": "15184:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "15184:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value1",
                                    "nativeSrc": "15219:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "15219:6:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "15227:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "15227:3:136",
                                    "type": "",
                                    "value": "128"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "15215:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "15215:3:136"
                                },
                                "nativeSrc": "15215:16:136",
                                "nodeType": "YulFunctionCall",
                                "src": "15215:16:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "15209:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "15209:5:136"
                            },
                            "nativeSrc": "15209:23:136",
                            "nodeType": "YulFunctionCall",
                            "src": "15209:23:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "15234:6:136",
                            "nodeType": "YulLiteral",
                            "src": "15234:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "15205:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "15205:3:136"
                        },
                        "nativeSrc": "15205:36:136",
                        "nodeType": "YulFunctionCall",
                        "src": "15205:36:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "15177:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "15177:6:136"
                    },
                    "nativeSrc": "15177:65:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15177:65:136"
                  },
                  "nativeSrc": "15177:65:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "15177:65:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_struct$_CloneSettings_$6416_memory_ptr__to_t_address_t_struct$_CloneSettings_$6416_memory_ptr__fromStack_reversed",
            "nativeSrc": "14586:662:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "14738:9:136",
                "nodeType": "YulTypedName",
                "src": "14738:9:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "14749:6:136",
                "nodeType": "YulTypedName",
                "src": "14749:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "14757:6:136",
                "nodeType": "YulTypedName",
                "src": "14757:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "14768:4:136",
                "nodeType": "YulTypedName",
                "src": "14768:4:136",
                "type": ""
              }
            ],
            "src": "14586:662:136"
          },
          {
            "body": {
              "nativeSrc": "15380:134:136",
              "nodeType": "YulBlock",
              "src": "15380:134:136",
              "statements": [
                {
                  "nativeSrc": "15390:26:136",
                  "nodeType": "YulAssignment",
                  "src": "15390:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "15402:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "15402:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "15413:2:136",
                        "nodeType": "YulLiteral",
                        "src": "15413:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "15398:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "15398:3:136"
                    },
                    "nativeSrc": "15398:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15398:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "15390:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "15390:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "15432:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "15432:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "15443:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "15443:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "15425:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "15425:6:136"
                    },
                    "nativeSrc": "15425:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15425:25:136"
                  },
                  "nativeSrc": "15425:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "15425:25:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "15470:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "15470:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "15481:2:136",
                            "nodeType": "YulLiteral",
                            "src": "15481:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "15466:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "15466:3:136"
                        },
                        "nativeSrc": "15466:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "15466:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "15490:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "15490:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "15498:8:136",
                            "nodeType": "YulLiteral",
                            "src": "15498:8:136",
                            "type": "",
                            "value": "0xffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "15486:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "15486:3:136"
                        },
                        "nativeSrc": "15486:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "15486:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "15459:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "15459:6:136"
                    },
                    "nativeSrc": "15459:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15459:49:136"
                  },
                  "nativeSrc": "15459:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "15459:49:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_uint24__to_t_uint256_t_uint24__fromStack_reversed",
            "nativeSrc": "15253:261:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "15341:9:136",
                "nodeType": "YulTypedName",
                "src": "15341:9:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "15352:6:136",
                "nodeType": "YulTypedName",
                "src": "15352:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "15360:6:136",
                "nodeType": "YulTypedName",
                "src": "15360:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "15371:4:136",
                "nodeType": "YulTypedName",
                "src": "15371:4:136",
                "type": ""
              }
            ],
            "src": "15253:261:136"
          },
          {
            "body": {
              "nativeSrc": "15566:108:136",
              "nodeType": "YulBlock",
              "src": "15566:108:136",
              "statements": [
                {
                  "nativeSrc": "15576:42:136",
                  "nodeType": "YulAssignment",
                  "src": "15576:42:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "x",
                            "nativeSrc": "15591:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "15591:1:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "15594:6:136",
                            "nodeType": "YulLiteral",
                            "src": "15594:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "15587:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "15587:3:136"
                        },
                        "nativeSrc": "15587:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "15587:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "y",
                            "nativeSrc": "15607:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "15607:1:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "15610:6:136",
                            "nodeType": "YulLiteral",
                            "src": "15610:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "15603:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "15603:3:136"
                        },
                        "nativeSrc": "15603:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "15603:14:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "15583:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "15583:3:136"
                    },
                    "nativeSrc": "15583:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15583:35:136"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nativeSrc": "15576:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "15576:3:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "15646:22:136",
                    "nodeType": "YulBlock",
                    "src": "15646:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "15648:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "15648:16:136"
                          },
                          "nativeSrc": "15648:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "15648:18:136"
                        },
                        "nativeSrc": "15648:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "15648:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "sum",
                        "nativeSrc": "15633:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "15633:3:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "15638:6:136",
                        "nodeType": "YulLiteral",
                        "src": "15638:6:136",
                        "type": "",
                        "value": "0xffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "15630:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "15630:2:136"
                    },
                    "nativeSrc": "15630:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15630:15:136"
                  },
                  "nativeSrc": "15627:41:136",
                  "nodeType": "YulIf",
                  "src": "15627:41:136"
                }
              ]
            },
            "name": "checked_add_t_uint16",
            "nativeSrc": "15519:155:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "15549:1:136",
                "nodeType": "YulTypedName",
                "src": "15549:1:136",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "15552:1:136",
                "nodeType": "YulTypedName",
                "src": "15552:1:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nativeSrc": "15558:3:136",
                "nodeType": "YulTypedName",
                "src": "15558:3:136",
                "type": ""
              }
            ],
            "src": "15519:155:136"
          },
          {
            "body": {
              "nativeSrc": "15731:116:136",
              "nodeType": "YulBlock",
              "src": "15731:116:136",
              "statements": [
                {
                  "nativeSrc": "15741:20:136",
                  "nodeType": "YulAssignment",
                  "src": "15741:20:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nativeSrc": "15756:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "15756:1:136"
                      },
                      {
                        "name": "y",
                        "nativeSrc": "15759:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "15759:1:136"
                      }
                    ],
                    "functionName": {
                      "name": "mul",
                      "nativeSrc": "15752:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "15752:3:136"
                    },
                    "nativeSrc": "15752:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15752:9:136"
                  },
                  "variableNames": [
                    {
                      "name": "product",
                      "nativeSrc": "15741:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "15741:7:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "15819:22:136",
                    "nodeType": "YulBlock",
                    "src": "15819:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "15821:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "15821:16:136"
                          },
                          "nativeSrc": "15821:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "15821:18:136"
                        },
                        "nativeSrc": "15821:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "15821:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "x",
                                "nativeSrc": "15790:1:136",
                                "nodeType": "YulIdentifier",
                                "src": "15790:1:136"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nativeSrc": "15783:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "15783:6:136"
                            },
                            "nativeSrc": "15783:9:136",
                            "nodeType": "YulFunctionCall",
                            "src": "15783:9:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "y",
                                "nativeSrc": "15797:1:136",
                                "nodeType": "YulIdentifier",
                                "src": "15797:1:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "name": "product",
                                    "nativeSrc": "15804:7:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "15804:7:136"
                                  },
                                  {
                                    "name": "x",
                                    "nativeSrc": "15813:1:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "15813:1:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "div",
                                  "nativeSrc": "15800:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "15800:3:136"
                                },
                                "nativeSrc": "15800:15:136",
                                "nodeType": "YulFunctionCall",
                                "src": "15800:15:136"
                              }
                            ],
                            "functionName": {
                              "name": "eq",
                              "nativeSrc": "15794:2:136",
                              "nodeType": "YulIdentifier",
                              "src": "15794:2:136"
                            },
                            "nativeSrc": "15794:22:136",
                            "nodeType": "YulFunctionCall",
                            "src": "15794:22:136"
                          }
                        ],
                        "functionName": {
                          "name": "or",
                          "nativeSrc": "15780:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "15780:2:136"
                        },
                        "nativeSrc": "15780:37:136",
                        "nodeType": "YulFunctionCall",
                        "src": "15780:37:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "15773:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "15773:6:136"
                    },
                    "nativeSrc": "15773:45:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15773:45:136"
                  },
                  "nativeSrc": "15770:71:136",
                  "nodeType": "YulIf",
                  "src": "15770:71:136"
                }
              ]
            },
            "name": "checked_mul_t_uint256",
            "nativeSrc": "15679:168:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "15710:1:136",
                "nodeType": "YulTypedName",
                "src": "15710:1:136",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "15713:1:136",
                "nodeType": "YulTypedName",
                "src": "15713:1:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "product",
                "nativeSrc": "15719:7:136",
                "nodeType": "YulTypedName",
                "src": "15719:7:136",
                "type": ""
              }
            ],
            "src": "15679:168:136"
          },
          {
            "body": {
              "nativeSrc": "15898:74:136",
              "nodeType": "YulBlock",
              "src": "15898:74:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "15921:22:136",
                    "nodeType": "YulBlock",
                    "src": "15921:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x12",
                            "nativeSrc": "15923:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "15923:16:136"
                          },
                          "nativeSrc": "15923:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "15923:18:136"
                        },
                        "nativeSrc": "15923:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "15923:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "y",
                        "nativeSrc": "15918:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "15918:1:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "15911:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "15911:6:136"
                    },
                    "nativeSrc": "15911:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15911:9:136"
                  },
                  "nativeSrc": "15908:35:136",
                  "nodeType": "YulIf",
                  "src": "15908:35:136"
                },
                {
                  "nativeSrc": "15952:14:136",
                  "nodeType": "YulAssignment",
                  "src": "15952:14:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nativeSrc": "15961:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "15961:1:136"
                      },
                      {
                        "name": "y",
                        "nativeSrc": "15964:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "15964:1:136"
                      }
                    ],
                    "functionName": {
                      "name": "div",
                      "nativeSrc": "15957:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "15957:3:136"
                    },
                    "nativeSrc": "15957:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15957:9:136"
                  },
                  "variableNames": [
                    {
                      "name": "r",
                      "nativeSrc": "15952:1:136",
                      "nodeType": "YulIdentifier",
                      "src": "15952:1:136"
                    }
                  ]
                }
              ]
            },
            "name": "checked_div_t_uint256",
            "nativeSrc": "15852:120:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "15883:1:136",
                "nodeType": "YulTypedName",
                "src": "15883:1:136",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "15886:1:136",
                "nodeType": "YulTypedName",
                "src": "15886:1:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "r",
                "nativeSrc": "15892:1:136",
                "nodeType": "YulTypedName",
                "src": "15892:1:136",
                "type": ""
              }
            ],
            "src": "15852:120:136"
          },
          {
            "body": {
              "nativeSrc": "16023:207:136",
              "nodeType": "YulBlock",
              "src": "16023:207:136",
              "statements": [
                {
                  "nativeSrc": "16033:19:136",
                  "nodeType": "YulAssignment",
                  "src": "16033:19:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "16049:2:136",
                        "nodeType": "YulLiteral",
                        "src": "16049:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "16043:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "16043:5:136"
                    },
                    "nativeSrc": "16043:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16043:9:136"
                  },
                  "variableNames": [
                    {
                      "name": "memPtr",
                      "nativeSrc": "16033:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "16033:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "16061:35:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "16061:35:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "16083:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "16083:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "16091:4:136",
                        "nodeType": "YulLiteral",
                        "src": "16091:4:136",
                        "type": "",
                        "value": "0xc0"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "16079:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "16079:3:136"
                    },
                    "nativeSrc": "16079:17:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16079:17:136"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nativeSrc": "16065:10:136",
                      "nodeType": "YulTypedName",
                      "src": "16065:10:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "16171:22:136",
                    "nodeType": "YulBlock",
                    "src": "16171:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "16173:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "16173:16:136"
                          },
                          "nativeSrc": "16173:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "16173:18:136"
                        },
                        "nativeSrc": "16173:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "16173:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "16114:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "16114:10:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "16126:18:136",
                            "nodeType": "YulLiteral",
                            "src": "16126:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nativeSrc": "16111:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "16111:2:136"
                        },
                        "nativeSrc": "16111:34:136",
                        "nodeType": "YulFunctionCall",
                        "src": "16111:34:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "16150:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "16150:10:136"
                          },
                          {
                            "name": "memPtr",
                            "nativeSrc": "16162:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "16162:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "16147:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "16147:2:136"
                        },
                        "nativeSrc": "16147:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "16147:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nativeSrc": "16108:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "16108:2:136"
                    },
                    "nativeSrc": "16108:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16108:62:136"
                  },
                  "nativeSrc": "16105:88:136",
                  "nodeType": "YulIf",
                  "src": "16105:88:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "16209:2:136",
                        "nodeType": "YulLiteral",
                        "src": "16209:2:136",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nativeSrc": "16213:10:136",
                        "nodeType": "YulIdentifier",
                        "src": "16213:10:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "16202:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "16202:6:136"
                    },
                    "nativeSrc": "16202:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16202:22:136"
                  },
                  "nativeSrc": "16202:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "16202:22:136"
                }
              ]
            },
            "name": "allocate_memory_2733",
            "nativeSrc": "15977:253:136",
            "nodeType": "YulFunctionDefinition",
            "returnVariables": [
              {
                "name": "memPtr",
                "nativeSrc": "16012:6:136",
                "nodeType": "YulTypedName",
                "src": "16012:6:136",
                "type": ""
              }
            ],
            "src": "15977:253:136"
          },
          {
            "body": {
              "nativeSrc": "16281:211:136",
              "nodeType": "YulBlock",
              "src": "16281:211:136",
              "statements": [
                {
                  "nativeSrc": "16291:21:136",
                  "nodeType": "YulAssignment",
                  "src": "16291:21:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "16307:4:136",
                        "nodeType": "YulLiteral",
                        "src": "16307:4:136",
                        "type": "",
                        "value": "0x40"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "16301:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "16301:5:136"
                    },
                    "nativeSrc": "16301:11:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16301:11:136"
                  },
                  "variableNames": [
                    {
                      "name": "memPtr",
                      "nativeSrc": "16291:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "16291:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "16321:35:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "16321:35:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "16343:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "16343:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "16351:4:136",
                        "nodeType": "YulLiteral",
                        "src": "16351:4:136",
                        "type": "",
                        "value": "0x40"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "16339:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "16339:3:136"
                    },
                    "nativeSrc": "16339:17:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16339:17:136"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nativeSrc": "16325:10:136",
                      "nodeType": "YulTypedName",
                      "src": "16325:10:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "16431:22:136",
                    "nodeType": "YulBlock",
                    "src": "16431:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "16433:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "16433:16:136"
                          },
                          "nativeSrc": "16433:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "16433:18:136"
                        },
                        "nativeSrc": "16433:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "16433:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "16374:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "16374:10:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "16386:18:136",
                            "nodeType": "YulLiteral",
                            "src": "16386:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nativeSrc": "16371:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "16371:2:136"
                        },
                        "nativeSrc": "16371:34:136",
                        "nodeType": "YulFunctionCall",
                        "src": "16371:34:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "16410:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "16410:10:136"
                          },
                          {
                            "name": "memPtr",
                            "nativeSrc": "16422:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "16422:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "16407:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "16407:2:136"
                        },
                        "nativeSrc": "16407:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "16407:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nativeSrc": "16368:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "16368:2:136"
                    },
                    "nativeSrc": "16368:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16368:62:136"
                  },
                  "nativeSrc": "16365:88:136",
                  "nodeType": "YulIf",
                  "src": "16365:88:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "16469:4:136",
                        "nodeType": "YulLiteral",
                        "src": "16469:4:136",
                        "type": "",
                        "value": "0x40"
                      },
                      {
                        "name": "newFreePtr",
                        "nativeSrc": "16475:10:136",
                        "nodeType": "YulIdentifier",
                        "src": "16475:10:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "16462:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "16462:6:136"
                    },
                    "nativeSrc": "16462:24:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16462:24:136"
                  },
                  "nativeSrc": "16462:24:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "16462:24:136"
                }
              ]
            },
            "name": "allocate_memory_2734",
            "nativeSrc": "16235:257:136",
            "nodeType": "YulFunctionDefinition",
            "returnVariables": [
              {
                "name": "memPtr",
                "nativeSrc": "16270:6:136",
                "nodeType": "YulTypedName",
                "src": "16270:6:136",
                "type": ""
              }
            ],
            "src": "16235:257:136"
          },
          {
            "body": {
              "nativeSrc": "16542:230:136",
              "nodeType": "YulBlock",
              "src": "16542:230:136",
              "statements": [
                {
                  "nativeSrc": "16552:19:136",
                  "nodeType": "YulAssignment",
                  "src": "16552:19:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "16568:2:136",
                        "nodeType": "YulLiteral",
                        "src": "16568:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "16562:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "16562:5:136"
                    },
                    "nativeSrc": "16562:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16562:9:136"
                  },
                  "variableNames": [
                    {
                      "name": "memPtr",
                      "nativeSrc": "16552:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "16552:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "16580:58:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "16580:58:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "16602:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "16602:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "size",
                                "nativeSrc": "16618:4:136",
                                "nodeType": "YulIdentifier",
                                "src": "16618:4:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "16624:2:136",
                                "nodeType": "YulLiteral",
                                "src": "16624:2:136",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "16614:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "16614:3:136"
                            },
                            "nativeSrc": "16614:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "16614:13:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "16633:2:136",
                                "nodeType": "YulLiteral",
                                "src": "16633:2:136",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nativeSrc": "16629:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "16629:3:136"
                            },
                            "nativeSrc": "16629:7:136",
                            "nodeType": "YulFunctionCall",
                            "src": "16629:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "16610:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "16610:3:136"
                        },
                        "nativeSrc": "16610:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "16610:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "16598:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "16598:3:136"
                    },
                    "nativeSrc": "16598:40:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16598:40:136"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nativeSrc": "16584:10:136",
                      "nodeType": "YulTypedName",
                      "src": "16584:10:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "16713:22:136",
                    "nodeType": "YulBlock",
                    "src": "16713:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "16715:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "16715:16:136"
                          },
                          "nativeSrc": "16715:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "16715:18:136"
                        },
                        "nativeSrc": "16715:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "16715:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "16656:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "16656:10:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "16668:18:136",
                            "nodeType": "YulLiteral",
                            "src": "16668:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nativeSrc": "16653:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "16653:2:136"
                        },
                        "nativeSrc": "16653:34:136",
                        "nodeType": "YulFunctionCall",
                        "src": "16653:34:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "16692:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "16692:10:136"
                          },
                          {
                            "name": "memPtr",
                            "nativeSrc": "16704:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "16704:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "16689:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "16689:2:136"
                        },
                        "nativeSrc": "16689:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "16689:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nativeSrc": "16650:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "16650:2:136"
                    },
                    "nativeSrc": "16650:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16650:62:136"
                  },
                  "nativeSrc": "16647:88:136",
                  "nodeType": "YulIf",
                  "src": "16647:88:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "16751:2:136",
                        "nodeType": "YulLiteral",
                        "src": "16751:2:136",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nativeSrc": "16755:10:136",
                        "nodeType": "YulIdentifier",
                        "src": "16755:10:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "16744:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "16744:6:136"
                    },
                    "nativeSrc": "16744:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16744:22:136"
                  },
                  "nativeSrc": "16744:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "16744:22:136"
                }
              ]
            },
            "name": "allocate_memory",
            "nativeSrc": "16497:275:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "size",
                "nativeSrc": "16522:4:136",
                "nodeType": "YulTypedName",
                "src": "16522:4:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "memPtr",
                "nativeSrc": "16531:6:136",
                "nodeType": "YulTypedName",
                "src": "16531:6:136",
                "type": ""
              }
            ],
            "src": "16497:275:136"
          },
          {
            "body": {
              "nativeSrc": "16838:95:136",
              "nodeType": "YulBlock",
              "src": "16838:95:136",
              "statements": [
                {
                  "nativeSrc": "16848:29:136",
                  "nodeType": "YulAssignment",
                  "src": "16848:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "16870:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "16870:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "16857:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "16857:12:136"
                    },
                    "nativeSrc": "16857:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16857:20:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "16848:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "16848:5:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "16911:16:136",
                    "nodeType": "YulBlock",
                    "src": "16911:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "16920:1:136",
                              "nodeType": "YulLiteral",
                              "src": "16920:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "16923:1:136",
                              "nodeType": "YulLiteral",
                              "src": "16923:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "16913:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "16913:6:136"
                          },
                          "nativeSrc": "16913:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "16913:12:136"
                        },
                        "nativeSrc": "16913:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "16913:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "16899:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "16899:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "16906:2:136",
                            "nodeType": "YulLiteral",
                            "src": "16906:2:136",
                            "type": "",
                            "value": "20"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "16896:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "16896:2:136"
                        },
                        "nativeSrc": "16896:13:136",
                        "nodeType": "YulFunctionCall",
                        "src": "16896:13:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "16889:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "16889:6:136"
                    },
                    "nativeSrc": "16889:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16889:21:136"
                  },
                  "nativeSrc": "16886:41:136",
                  "nodeType": "YulIf",
                  "src": "16886:41:136"
                }
              ]
            },
            "name": "abi_decode_enum_RadonDataTypes",
            "nativeSrc": "16777:156:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "16817:6:136",
                "nodeType": "YulTypedName",
                "src": "16817:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "16828:5:136",
                "nodeType": "YulTypedName",
                "src": "16828:5:136",
                "type": ""
              }
            ],
            "src": "16777:156:136"
          },
          {
            "body": {
              "nativeSrc": "16995:129:136",
              "nodeType": "YulBlock",
              "src": "16995:129:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "17039:22:136",
                    "nodeType": "YulBlock",
                    "src": "17039:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "17041:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "17041:16:136"
                          },
                          "nativeSrc": "17041:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "17041:18:136"
                        },
                        "nativeSrc": "17041:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "17041:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nativeSrc": "17011:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "17011:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "17019:18:136",
                        "nodeType": "YulLiteral",
                        "src": "17019:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "17008:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "17008:2:136"
                    },
                    "nativeSrc": "17008:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17008:30:136"
                  },
                  "nativeSrc": "17005:56:136",
                  "nodeType": "YulIf",
                  "src": "17005:56:136"
                },
                {
                  "nativeSrc": "17070:48:136",
                  "nodeType": "YulAssignment",
                  "src": "17070:48:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "length",
                                "nativeSrc": "17090:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "17090:6:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "17098:2:136",
                                "nodeType": "YulLiteral",
                                "src": "17098:2:136",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "17086:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "17086:3:136"
                            },
                            "nativeSrc": "17086:15:136",
                            "nodeType": "YulFunctionCall",
                            "src": "17086:15:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "17107:2:136",
                                "nodeType": "YulLiteral",
                                "src": "17107:2:136",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nativeSrc": "17103:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "17103:3:136"
                            },
                            "nativeSrc": "17103:7:136",
                            "nodeType": "YulFunctionCall",
                            "src": "17103:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "17082:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "17082:3:136"
                        },
                        "nativeSrc": "17082:29:136",
                        "nodeType": "YulFunctionCall",
                        "src": "17082:29:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "17113:4:136",
                        "nodeType": "YulLiteral",
                        "src": "17113:4:136",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "17078:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "17078:3:136"
                    },
                    "nativeSrc": "17078:40:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17078:40:136"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nativeSrc": "17070:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "17070:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_bytes",
            "nativeSrc": "16938:186:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nativeSrc": "16975:6:136",
                "nodeType": "YulTypedName",
                "src": "16975:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nativeSrc": "16986:4:136",
                "nodeType": "YulTypedName",
                "src": "16986:4:136",
                "type": ""
              }
            ],
            "src": "16938:186:136"
          },
          {
            "body": {
              "nativeSrc": "17176:109:136",
              "nodeType": "YulBlock",
              "src": "17176:109:136",
              "statements": [
                {
                  "nativeSrc": "17186:29:136",
                  "nodeType": "YulAssignment",
                  "src": "17186:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "17208:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "17208:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "17195:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "17195:12:136"
                    },
                    "nativeSrc": "17195:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17195:20:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "17186:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "17186:5:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "17263:16:136",
                    "nodeType": "YulBlock",
                    "src": "17263:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "17272:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17272:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "17275:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17275:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "17265:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "17265:6:136"
                          },
                          "nativeSrc": "17265:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "17265:12:136"
                        },
                        "nativeSrc": "17265:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "17265:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "17237:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "17237:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "17248:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "17248:5:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "17255:4:136",
                                "nodeType": "YulLiteral",
                                "src": "17255:4:136",
                                "type": "",
                                "value": "0xff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "17244:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "17244:3:136"
                            },
                            "nativeSrc": "17244:16:136",
                            "nodeType": "YulFunctionCall",
                            "src": "17244:16:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "17234:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "17234:2:136"
                        },
                        "nativeSrc": "17234:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "17234:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "17227:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "17227:6:136"
                    },
                    "nativeSrc": "17227:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17227:35:136"
                  },
                  "nativeSrc": "17224:55:136",
                  "nodeType": "YulIf",
                  "src": "17224:55:136"
                }
              ]
            },
            "name": "abi_decode_uint8",
            "nativeSrc": "17129:156:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "17155:6:136",
                "nodeType": "YulTypedName",
                "src": "17155:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "17166:5:136",
                "nodeType": "YulTypedName",
                "src": "17166:5:136",
                "type": ""
              }
            ],
            "src": "17129:156:136"
          },
          {
            "body": {
              "nativeSrc": "17351:1403:136",
              "nodeType": "YulBlock",
              "src": "17351:1403:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "17395:16:136",
                    "nodeType": "YulBlock",
                    "src": "17395:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "17404:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17404:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "17407:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17407:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "17397:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "17397:6:136"
                          },
                          "nativeSrc": "17397:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "17397:12:136"
                        },
                        "nativeSrc": "17397:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "17397:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "end",
                            "nativeSrc": "17372:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "17372:3:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "17377:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "17377:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "17368:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "17368:3:136"
                        },
                        "nativeSrc": "17368:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "17368:19:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "17389:4:136",
                        "nodeType": "YulLiteral",
                        "src": "17389:4:136",
                        "type": "",
                        "value": "0xc0"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "17364:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "17364:3:136"
                    },
                    "nativeSrc": "17364:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17364:30:136"
                  },
                  "nativeSrc": "17361:50:136",
                  "nodeType": "YulIf",
                  "src": "17361:50:136"
                },
                {
                  "nativeSrc": "17420:31:136",
                  "nodeType": "YulAssignment",
                  "src": "17420:31:136",
                  "value": {
                    "arguments": [],
                    "functionName": {
                      "name": "allocate_memory_2733",
                      "nativeSrc": "17429:20:136",
                      "nodeType": "YulIdentifier",
                      "src": "17429:20:136"
                    },
                    "nativeSrc": "17429:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17429:22:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "17420:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "17420:5:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "17460:37:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "17460:37:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "17487:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "17487:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "17474:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "17474:12:136"
                    },
                    "nativeSrc": "17474:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17474:23:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "17464:6:136",
                      "nodeType": "YulTypedName",
                      "src": "17464:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "17540:16:136",
                    "nodeType": "YulBlock",
                    "src": "17540:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "17549:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17549:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "17552:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17552:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "17542:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "17542:6:136"
                          },
                          "nativeSrc": "17542:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "17542:12:136"
                        },
                        "nativeSrc": "17542:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "17542:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "17512:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "17512:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "17520:18:136",
                        "nodeType": "YulLiteral",
                        "src": "17520:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "17509:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "17509:2:136"
                    },
                    "nativeSrc": "17509:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17509:30:136"
                  },
                  "nativeSrc": "17506:50:136",
                  "nodeType": "YulIf",
                  "src": "17506:50:136"
                },
                {
                  "nativeSrc": "17565:32:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "17565:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "17579:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "17579:9:136"
                      },
                      {
                        "name": "offset",
                        "nativeSrc": "17590:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "17590:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "17575:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "17575:3:136"
                    },
                    "nativeSrc": "17575:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17575:22:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "17569:2:136",
                      "nodeType": "YulTypedName",
                      "src": "17569:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "17633:16:136",
                    "nodeType": "YulBlock",
                    "src": "17633:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "17642:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17642:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "17645:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17645:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "17635:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "17635:6:136"
                          },
                          "nativeSrc": "17635:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "17635:12:136"
                        },
                        "nativeSrc": "17635:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "17635:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "end",
                            "nativeSrc": "17617:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "17617:3:136"
                          },
                          {
                            "name": "_1",
                            "nativeSrc": "17622:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "17622:2:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "17613:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "17613:3:136"
                        },
                        "nativeSrc": "17613:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "17613:12:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "17627:4:136",
                        "nodeType": "YulLiteral",
                        "src": "17627:4:136",
                        "type": "",
                        "value": "0x40"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "17609:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "17609:3:136"
                    },
                    "nativeSrc": "17609:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17609:23:136"
                  },
                  "nativeSrc": "17606:43:136",
                  "nodeType": "YulIf",
                  "src": "17606:43:136"
                },
                {
                  "nativeSrc": "17658:37:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "17658:37:136",
                  "value": {
                    "arguments": [],
                    "functionName": {
                      "name": "allocate_memory_2734",
                      "nativeSrc": "17673:20:136",
                      "nodeType": "YulIdentifier",
                      "src": "17673:20:136"
                    },
                    "nativeSrc": "17673:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17673:22:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "17662:7:136",
                      "nodeType": "YulTypedName",
                      "src": "17662:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "17704:32:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "17704:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "17733:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "17733:2:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "17720:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "17720:12:136"
                    },
                    "nativeSrc": "17720:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17720:16:136"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nativeSrc": "17708:8:136",
                      "nodeType": "YulTypedName",
                      "src": "17708:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "17781:16:136",
                    "nodeType": "YulBlock",
                    "src": "17781:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "17790:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17790:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "17793:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17793:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "17783:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "17783:6:136"
                          },
                          "nativeSrc": "17783:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "17783:12:136"
                        },
                        "nativeSrc": "17783:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "17783:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nativeSrc": "17751:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "17751:8:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "17761:18:136",
                        "nodeType": "YulLiteral",
                        "src": "17761:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "17748:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "17748:2:136"
                    },
                    "nativeSrc": "17748:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17748:32:136"
                  },
                  "nativeSrc": "17745:52:136",
                  "nodeType": "YulIf",
                  "src": "17745:52:136"
                },
                {
                  "nativeSrc": "17806:27:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "17806:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "17820:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "17820:2:136"
                      },
                      {
                        "name": "offset_1",
                        "nativeSrc": "17824:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "17824:8:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "17816:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "17816:3:136"
                    },
                    "nativeSrc": "17816:17:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17816:17:136"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nativeSrc": "17810:2:136",
                      "nodeType": "YulTypedName",
                      "src": "17810:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "17877:16:136",
                    "nodeType": "YulBlock",
                    "src": "17877:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "17886:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17886:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "17889:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17889:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "17879:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "17879:6:136"
                          },
                          "nativeSrc": "17879:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "17879:12:136"
                        },
                        "nativeSrc": "17879:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "17879:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nativeSrc": "17860:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "17860:2:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "17864:4:136",
                                "nodeType": "YulLiteral",
                                "src": "17864:4:136",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "17856:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "17856:3:136"
                            },
                            "nativeSrc": "17856:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "17856:13:136"
                          },
                          {
                            "name": "end",
                            "nativeSrc": "17871:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "17871:3:136"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nativeSrc": "17852:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "17852:3:136"
                        },
                        "nativeSrc": "17852:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "17852:23:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "17845:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "17845:6:136"
                    },
                    "nativeSrc": "17845:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17845:31:136"
                  },
                  "nativeSrc": "17842:51:136",
                  "nodeType": "YulIf",
                  "src": "17842:51:136"
                },
                {
                  "nativeSrc": "17902:30:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "17902:30:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nativeSrc": "17929:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "17929:2:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "17916:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "17916:12:136"
                    },
                    "nativeSrc": "17916:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17916:16:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "17906:6:136",
                      "nodeType": "YulTypedName",
                      "src": "17906:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "17941:65:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "17941:65:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nativeSrc": "17998:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "17998:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_bytes",
                          "nativeSrc": "17970:27:136",
                          "nodeType": "YulIdentifier",
                          "src": "17970:27:136"
                        },
                        "nativeSrc": "17970:35:136",
                        "nodeType": "YulFunctionCall",
                        "src": "17970:35:136"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nativeSrc": "17954:15:136",
                      "nodeType": "YulIdentifier",
                      "src": "17954:15:136"
                    },
                    "nativeSrc": "17954:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17954:52:136"
                  },
                  "variables": [
                    {
                      "name": "array",
                      "nativeSrc": "17945:5:136",
                      "nodeType": "YulTypedName",
                      "src": "17945:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "array",
                        "nativeSrc": "18022:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "18022:5:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "18029:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "18029:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "18015:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18015:6:136"
                    },
                    "nativeSrc": "18015:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18015:21:136"
                  },
                  "nativeSrc": "18015:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "18015:21:136"
                },
                {
                  "body": {
                    "nativeSrc": "18084:16:136",
                    "nodeType": "YulBlock",
                    "src": "18084:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "18093:1:136",
                              "nodeType": "YulLiteral",
                              "src": "18093:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "18096:1:136",
                              "nodeType": "YulLiteral",
                              "src": "18096:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "18086:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "18086:6:136"
                          },
                          "nativeSrc": "18086:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "18086:12:136"
                        },
                        "nativeSrc": "18086:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "18086:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nativeSrc": "18059:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "18059:2:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "18063:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "18063:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "18055:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "18055:3:136"
                            },
                            "nativeSrc": "18055:15:136",
                            "nodeType": "YulFunctionCall",
                            "src": "18055:15:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18072:4:136",
                            "nodeType": "YulLiteral",
                            "src": "18072:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "18051:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18051:3:136"
                        },
                        "nativeSrc": "18051:26:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18051:26:136"
                      },
                      {
                        "name": "end",
                        "nativeSrc": "18079:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "18079:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "18048:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "18048:2:136"
                    },
                    "nativeSrc": "18048:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18048:35:136"
                  },
                  "nativeSrc": "18045:55:136",
                  "nodeType": "YulIf",
                  "src": "18045:55:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "array",
                            "nativeSrc": "18126:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "18126:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18133:4:136",
                            "nodeType": "YulLiteral",
                            "src": "18133:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "18122:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18122:3:136"
                        },
                        "nativeSrc": "18122:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18122:16:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nativeSrc": "18144:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "18144:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18148:4:136",
                            "nodeType": "YulLiteral",
                            "src": "18148:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "18140:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18140:3:136"
                        },
                        "nativeSrc": "18140:13:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18140:13:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "18155:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "18155:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nativeSrc": "18109:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "18109:12:136"
                    },
                    "nativeSrc": "18109:53:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18109:53:136"
                  },
                  "nativeSrc": "18109:53:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "18109:53:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "array",
                                "nativeSrc": "18186:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "18186:5:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "18193:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "18193:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "18182:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "18182:3:136"
                            },
                            "nativeSrc": "18182:18:136",
                            "nodeType": "YulFunctionCall",
                            "src": "18182:18:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18202:4:136",
                            "nodeType": "YulLiteral",
                            "src": "18202:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "18178:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18178:3:136"
                        },
                        "nativeSrc": "18178:29:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18178:29:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "18209:1:136",
                        "nodeType": "YulLiteral",
                        "src": "18209:1:136",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "18171:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18171:6:136"
                    },
                    "nativeSrc": "18171:40:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18171:40:136"
                  },
                  "nativeSrc": "18171:40:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "18171:40:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "18227:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "18227:7:136"
                      },
                      {
                        "name": "array",
                        "nativeSrc": "18236:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "18236:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "18220:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18220:6:136"
                    },
                    "nativeSrc": "18220:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18220:22:136"
                  },
                  "nativeSrc": "18220:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "18220:22:136"
                },
                {
                  "nativeSrc": "18251:16:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "18251:16:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "18266:1:136",
                    "nodeType": "YulLiteral",
                    "src": "18266:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value_2",
                      "nativeSrc": "18255:7:136",
                      "nodeType": "YulTypedName",
                      "src": "18255:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "18276:38:136",
                  "nodeType": "YulAssignment",
                  "src": "18276:38:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "18304:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "18304:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18308:4:136",
                            "nodeType": "YulLiteral",
                            "src": "18308:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "18300:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18300:3:136"
                        },
                        "nativeSrc": "18300:13:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18300:13:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "18287:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "18287:12:136"
                    },
                    "nativeSrc": "18287:27:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18287:27:136"
                  },
                  "variableNames": [
                    {
                      "name": "value_2",
                      "nativeSrc": "18276:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "18276:7:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value_1",
                            "nativeSrc": "18334:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "18334:7:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18343:4:136",
                            "nodeType": "YulLiteral",
                            "src": "18343:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "18330:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18330:3:136"
                        },
                        "nativeSrc": "18330:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18330:18:136"
                      },
                      {
                        "name": "value_2",
                        "nativeSrc": "18350:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "18350:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "18323:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18323:6:136"
                    },
                    "nativeSrc": "18323:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18323:35:136"
                  },
                  "nativeSrc": "18323:35:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "18323:35:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "18374:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "18374:5:136"
                      },
                      {
                        "name": "value_1",
                        "nativeSrc": "18381:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "18381:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "18367:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18367:6:136"
                    },
                    "nativeSrc": "18367:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18367:22:136"
                  },
                  "nativeSrc": "18367:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "18367:22:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "18409:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "18409:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18416:4:136",
                            "nodeType": "YulLiteral",
                            "src": "18416:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "18405:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18405:3:136"
                        },
                        "nativeSrc": "18405:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18405:16:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nativeSrc": "18444:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "18444:9:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "18455:4:136",
                                "nodeType": "YulLiteral",
                                "src": "18455:4:136",
                                "type": "",
                                "value": "0x20"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "18440:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "18440:3:136"
                            },
                            "nativeSrc": "18440:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "18440:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_uint8",
                          "nativeSrc": "18423:16:136",
                          "nodeType": "YulIdentifier",
                          "src": "18423:16:136"
                        },
                        "nativeSrc": "18423:38:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18423:38:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "18398:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18398:6:136"
                    },
                    "nativeSrc": "18398:64:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18398:64:136"
                  },
                  "nativeSrc": "18398:64:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "18398:64:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "18482:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "18482:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18489:4:136",
                            "nodeType": "YulLiteral",
                            "src": "18489:4:136",
                            "type": "",
                            "value": "0x40"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "18478:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18478:3:136"
                        },
                        "nativeSrc": "18478:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18478:16:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nativeSrc": "18517:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "18517:9:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "18528:4:136",
                                "nodeType": "YulLiteral",
                                "src": "18528:4:136",
                                "type": "",
                                "value": "0x40"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "18513:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "18513:3:136"
                            },
                            "nativeSrc": "18513:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "18513:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_uint8",
                          "nativeSrc": "18496:16:136",
                          "nodeType": "YulIdentifier",
                          "src": "18496:16:136"
                        },
                        "nativeSrc": "18496:38:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18496:38:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "18471:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18471:6:136"
                    },
                    "nativeSrc": "18471:64:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18471:64:136"
                  },
                  "nativeSrc": "18471:64:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "18471:64:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "18555:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "18555:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18562:2:136",
                            "nodeType": "YulLiteral",
                            "src": "18562:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "18551:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18551:3:136"
                        },
                        "nativeSrc": "18551:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18551:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nativeSrc": "18588:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "18588:9:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "18599:2:136",
                                "nodeType": "YulLiteral",
                                "src": "18599:2:136",
                                "type": "",
                                "value": "96"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "18584:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "18584:3:136"
                            },
                            "nativeSrc": "18584:18:136",
                            "nodeType": "YulFunctionCall",
                            "src": "18584:18:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_uint8",
                          "nativeSrc": "18567:16:136",
                          "nodeType": "YulIdentifier",
                          "src": "18567:16:136"
                        },
                        "nativeSrc": "18567:36:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18567:36:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "18544:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18544:6:136"
                    },
                    "nativeSrc": "18544:60:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18544:60:136"
                  },
                  "nativeSrc": "18544:60:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "18544:60:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "18624:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "18624:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18631:3:136",
                            "nodeType": "YulLiteral",
                            "src": "18631:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "18620:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18620:3:136"
                        },
                        "nativeSrc": "18620:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18620:15:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nativeSrc": "18659:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "18659:9:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "18670:3:136",
                                "nodeType": "YulLiteral",
                                "src": "18670:3:136",
                                "type": "",
                                "value": "128"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "18655:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "18655:3:136"
                            },
                            "nativeSrc": "18655:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "18655:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_uint64",
                          "nativeSrc": "18637:17:136",
                          "nodeType": "YulIdentifier",
                          "src": "18637:17:136"
                        },
                        "nativeSrc": "18637:38:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18637:38:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "18613:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18613:6:136"
                    },
                    "nativeSrc": "18613:63:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18613:63:136"
                  },
                  "nativeSrc": "18613:63:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "18613:63:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "18696:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "18696:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18703:3:136",
                            "nodeType": "YulLiteral",
                            "src": "18703:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "18692:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18692:3:136"
                        },
                        "nativeSrc": "18692:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18692:15:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nativeSrc": "18731:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "18731:9:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "18742:3:136",
                                "nodeType": "YulLiteral",
                                "src": "18742:3:136",
                                "type": "",
                                "value": "160"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "18727:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "18727:3:136"
                            },
                            "nativeSrc": "18727:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "18727:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_uint64",
                          "nativeSrc": "18709:17:136",
                          "nodeType": "YulIdentifier",
                          "src": "18709:17:136"
                        },
                        "nativeSrc": "18709:38:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18709:38:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "18685:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18685:6:136"
                    },
                    "nativeSrc": "18685:63:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18685:63:136"
                  },
                  "nativeSrc": "18685:63:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "18685:63:136"
                }
              ]
            },
            "name": "abi_decode_struct_CBOR",
            "nativeSrc": "17290:1464:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "17322:9:136",
                "nodeType": "YulTypedName",
                "src": "17322:9:136",
                "type": ""
              },
              {
                "name": "end",
                "nativeSrc": "17333:3:136",
                "nodeType": "YulTypedName",
                "src": "17333:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "17341:5:136",
                "nodeType": "YulTypedName",
                "src": "17341:5:136",
                "type": ""
              }
            ],
            "src": "17290:1464:136"
          },
          {
            "body": {
              "nativeSrc": "18858:1019:136",
              "nodeType": "YulBlock",
              "src": "18858:1019:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "18904:16:136",
                    "nodeType": "YulBlock",
                    "src": "18904:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "18913:1:136",
                              "nodeType": "YulLiteral",
                              "src": "18913:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "18916:1:136",
                              "nodeType": "YulLiteral",
                              "src": "18916:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "18906:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "18906:6:136"
                          },
                          "nativeSrc": "18906:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "18906:12:136"
                        },
                        "nativeSrc": "18906:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "18906:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "18879:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "18879:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "18888:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "18888:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "18875:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18875:3:136"
                        },
                        "nativeSrc": "18875:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18875:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "18900:2:136",
                        "nodeType": "YulLiteral",
                        "src": "18900:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "18871:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "18871:3:136"
                    },
                    "nativeSrc": "18871:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18871:32:136"
                  },
                  "nativeSrc": "18868:52:136",
                  "nodeType": "YulIf",
                  "src": "18868:52:136"
                },
                {
                  "nativeSrc": "18929:37:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "18929:37:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "18956:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "18956:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "18943:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "18943:12:136"
                    },
                    "nativeSrc": "18943:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18943:23:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "18933:6:136",
                      "nodeType": "YulTypedName",
                      "src": "18933:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "19009:16:136",
                    "nodeType": "YulBlock",
                    "src": "19009:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "19018:1:136",
                              "nodeType": "YulLiteral",
                              "src": "19018:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "19021:1:136",
                              "nodeType": "YulLiteral",
                              "src": "19021:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "19011:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "19011:6:136"
                          },
                          "nativeSrc": "19011:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "19011:12:136"
                        },
                        "nativeSrc": "19011:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "19011:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "18981:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "18981:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "18989:18:136",
                        "nodeType": "YulLiteral",
                        "src": "18989:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "18978:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "18978:2:136"
                    },
                    "nativeSrc": "18978:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18978:30:136"
                  },
                  "nativeSrc": "18975:50:136",
                  "nodeType": "YulIf",
                  "src": "18975:50:136"
                },
                {
                  "nativeSrc": "19034:32:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "19034:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "19048:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "19048:9:136"
                      },
                      {
                        "name": "offset",
                        "nativeSrc": "19059:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "19059:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "19044:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "19044:3:136"
                    },
                    "nativeSrc": "19044:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19044:22:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "19038:2:136",
                      "nodeType": "YulTypedName",
                      "src": "19038:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "19106:16:136",
                    "nodeType": "YulBlock",
                    "src": "19106:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "19115:1:136",
                              "nodeType": "YulLiteral",
                              "src": "19115:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "19118:1:136",
                              "nodeType": "YulLiteral",
                              "src": "19118:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "19108:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "19108:6:136"
                          },
                          "nativeSrc": "19108:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "19108:12:136"
                        },
                        "nativeSrc": "19108:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "19108:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "19086:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "19086:7:136"
                          },
                          {
                            "name": "_1",
                            "nativeSrc": "19095:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "19095:2:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "19082:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "19082:3:136"
                        },
                        "nativeSrc": "19082:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19082:16:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "19100:4:136",
                        "nodeType": "YulLiteral",
                        "src": "19100:4:136",
                        "type": "",
                        "value": "0xc0"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "19078:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "19078:3:136"
                    },
                    "nativeSrc": "19078:27:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19078:27:136"
                  },
                  "nativeSrc": "19075:47:136",
                  "nodeType": "YulIf",
                  "src": "19075:47:136"
                },
                {
                  "nativeSrc": "19131:35:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "19131:35:136",
                  "value": {
                    "arguments": [],
                    "functionName": {
                      "name": "allocate_memory_2733",
                      "nativeSrc": "19144:20:136",
                      "nodeType": "YulIdentifier",
                      "src": "19144:20:136"
                    },
                    "nativeSrc": "19144:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19144:22:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "19135:5:136",
                      "nodeType": "YulTypedName",
                      "src": "19135:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "19175:31:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "19175:31:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "19203:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "19203:2:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "19190:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "19190:12:136"
                    },
                    "nativeSrc": "19190:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19190:16:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "19179:7:136",
                      "nodeType": "YulTypedName",
                      "src": "19179:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "19243:16:136",
                    "nodeType": "YulBlock",
                    "src": "19243:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "19252:1:136",
                              "nodeType": "YulLiteral",
                              "src": "19252:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "19255:1:136",
                              "nodeType": "YulLiteral",
                              "src": "19255:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "19245:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "19245:6:136"
                          },
                          "nativeSrc": "19245:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "19245:12:136"
                        },
                        "nativeSrc": "19245:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "19245:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value_1",
                            "nativeSrc": "19228:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "19228:7:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "19237:3:136",
                            "nodeType": "YulLiteral",
                            "src": "19237:3:136",
                            "type": "",
                            "value": "256"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "19225:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "19225:2:136"
                        },
                        "nativeSrc": "19225:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19225:16:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "19218:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "19218:6:136"
                    },
                    "nativeSrc": "19218:24:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19218:24:136"
                  },
                  "nativeSrc": "19215:44:136",
                  "nodeType": "YulIf",
                  "src": "19215:44:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "19275:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "19275:5:136"
                      },
                      {
                        "name": "value_1",
                        "nativeSrc": "19282:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "19282:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "19268:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "19268:6:136"
                    },
                    "nativeSrc": "19268:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19268:22:136"
                  },
                  "nativeSrc": "19268:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "19268:22:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "19310:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "19310:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "19317:2:136",
                            "nodeType": "YulLiteral",
                            "src": "19317:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "19306:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "19306:3:136"
                        },
                        "nativeSrc": "19306:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19306:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "19357:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "19357:2:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "19361:2:136",
                                "nodeType": "YulLiteral",
                                "src": "19361:2:136",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "19353:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "19353:3:136"
                            },
                            "nativeSrc": "19353:11:136",
                            "nodeType": "YulFunctionCall",
                            "src": "19353:11:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_enum_RadonDataTypes",
                          "nativeSrc": "19322:30:136",
                          "nodeType": "YulIdentifier",
                          "src": "19322:30:136"
                        },
                        "nativeSrc": "19322:43:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19322:43:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "19299:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "19299:6:136"
                    },
                    "nativeSrc": "19299:67:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19299:67:136"
                  },
                  "nativeSrc": "19299:67:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "19299:67:136"
                },
                {
                  "nativeSrc": "19375:16:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "19375:16:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "19390:1:136",
                    "nodeType": "YulLiteral",
                    "src": "19390:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value_2",
                      "nativeSrc": "19379:7:136",
                      "nodeType": "YulTypedName",
                      "src": "19379:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "19400:36:136",
                  "nodeType": "YulAssignment",
                  "src": "19400:36:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "19428:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "19428:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "19432:2:136",
                            "nodeType": "YulLiteral",
                            "src": "19432:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "19424:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "19424:3:136"
                        },
                        "nativeSrc": "19424:11:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19424:11:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "19411:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "19411:12:136"
                    },
                    "nativeSrc": "19411:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19411:25:136"
                  },
                  "variableNames": [
                    {
                      "name": "value_2",
                      "nativeSrc": "19400:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "19400:7:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "19456:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "19456:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "19463:2:136",
                            "nodeType": "YulLiteral",
                            "src": "19463:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "19452:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "19452:3:136"
                        },
                        "nativeSrc": "19452:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19452:14:136"
                      },
                      {
                        "name": "value_2",
                        "nativeSrc": "19468:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "19468:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "19445:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "19445:6:136"
                    },
                    "nativeSrc": "19445:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19445:31:136"
                  },
                  "nativeSrc": "19445:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "19445:31:136"
                },
                {
                  "nativeSrc": "19485:16:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "19485:16:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "19500:1:136",
                    "nodeType": "YulLiteral",
                    "src": "19500:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value_3",
                      "nativeSrc": "19489:7:136",
                      "nodeType": "YulTypedName",
                      "src": "19489:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "19510:36:136",
                  "nodeType": "YulAssignment",
                  "src": "19510:36:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "19538:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "19538:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "19542:2:136",
                            "nodeType": "YulLiteral",
                            "src": "19542:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "19534:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "19534:3:136"
                        },
                        "nativeSrc": "19534:11:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19534:11:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "19521:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "19521:12:136"
                    },
                    "nativeSrc": "19521:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19521:25:136"
                  },
                  "variableNames": [
                    {
                      "name": "value_3",
                      "nativeSrc": "19510:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "19510:7:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "19566:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "19566:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "19573:2:136",
                            "nodeType": "YulLiteral",
                            "src": "19573:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "19562:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "19562:3:136"
                        },
                        "nativeSrc": "19562:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19562:14:136"
                      },
                      {
                        "name": "value_3",
                        "nativeSrc": "19578:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "19578:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "19555:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "19555:6:136"
                    },
                    "nativeSrc": "19555:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19555:31:136"
                  },
                  "nativeSrc": "19555:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "19555:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "19606:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "19606:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "19613:3:136",
                            "nodeType": "YulLiteral",
                            "src": "19613:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "19602:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "19602:3:136"
                        },
                        "nativeSrc": "19602:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19602:15:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "19641:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "19641:2:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "19645:3:136",
                                "nodeType": "YulLiteral",
                                "src": "19645:3:136",
                                "type": "",
                                "value": "128"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "19637:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "19637:3:136"
                            },
                            "nativeSrc": "19637:12:136",
                            "nodeType": "YulFunctionCall",
                            "src": "19637:12:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_uint64",
                          "nativeSrc": "19619:17:136",
                          "nodeType": "YulIdentifier",
                          "src": "19619:17:136"
                        },
                        "nativeSrc": "19619:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19619:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "19595:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "19595:6:136"
                    },
                    "nativeSrc": "19595:56:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19595:56:136"
                  },
                  "nativeSrc": "19595:56:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "19595:56:136"
                },
                {
                  "nativeSrc": "19660:42:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "19660:42:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "19693:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "19693:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "19697:3:136",
                            "nodeType": "YulLiteral",
                            "src": "19697:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "19689:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "19689:3:136"
                        },
                        "nativeSrc": "19689:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19689:12:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "19676:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "19676:12:136"
                    },
                    "nativeSrc": "19676:26:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19676:26:136"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nativeSrc": "19664:8:136",
                      "nodeType": "YulTypedName",
                      "src": "19664:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "19747:16:136",
                    "nodeType": "YulBlock",
                    "src": "19747:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "19756:1:136",
                              "nodeType": "YulLiteral",
                              "src": "19756:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "19759:1:136",
                              "nodeType": "YulLiteral",
                              "src": "19759:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "19749:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "19749:6:136"
                          },
                          "nativeSrc": "19749:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "19749:12:136"
                        },
                        "nativeSrc": "19749:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "19749:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nativeSrc": "19717:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "19717:8:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "19727:18:136",
                        "nodeType": "YulLiteral",
                        "src": "19727:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "19714:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "19714:2:136"
                    },
                    "nativeSrc": "19714:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19714:32:136"
                  },
                  "nativeSrc": "19711:52:136",
                  "nodeType": "YulIf",
                  "src": "19711:52:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "19783:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "19783:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "19790:3:136",
                            "nodeType": "YulLiteral",
                            "src": "19790:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "19779:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "19779:3:136"
                        },
                        "nativeSrc": "19779:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19779:15:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "19823:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "19823:2:136"
                              },
                              {
                                "name": "offset_1",
                                "nativeSrc": "19827:8:136",
                                "nodeType": "YulIdentifier",
                                "src": "19827:8:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "19819:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "19819:3:136"
                            },
                            "nativeSrc": "19819:17:136",
                            "nodeType": "YulFunctionCall",
                            "src": "19819:17:136"
                          },
                          {
                            "name": "dataEnd",
                            "nativeSrc": "19838:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "19838:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_struct_CBOR",
                          "nativeSrc": "19796:22:136",
                          "nodeType": "YulIdentifier",
                          "src": "19796:22:136"
                        },
                        "nativeSrc": "19796:50:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19796:50:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "19772:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "19772:6:136"
                    },
                    "nativeSrc": "19772:75:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19772:75:136"
                  },
                  "nativeSrc": "19772:75:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "19772:75:136"
                },
                {
                  "nativeSrc": "19856:15:136",
                  "nodeType": "YulAssignment",
                  "src": "19856:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "19866:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "19866:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "19856:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "19856:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_struct$_DataResult_$37293_memory_ptr",
            "nativeSrc": "18759:1118:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "18824:9:136",
                "nodeType": "YulTypedName",
                "src": "18824:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "18835:7:136",
                "nodeType": "YulTypedName",
                "src": "18835:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "18847:6:136",
                "nodeType": "YulTypedName",
                "src": "18847:6:136",
                "type": ""
              }
            ],
            "src": "18759:1118:136"
          },
          {
            "body": {
              "nativeSrc": "20161:310:136",
              "nodeType": "YulBlock",
              "src": "20161:310:136",
              "statements": [
                {
                  "nativeSrc": "20171:27:136",
                  "nodeType": "YulAssignment",
                  "src": "20171:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "20183:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "20183:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "20194:3:136",
                        "nodeType": "YulLiteral",
                        "src": "20194:3:136",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "20179:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "20179:3:136"
                    },
                    "nativeSrc": "20179:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20179:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "20171:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "20171:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "20214:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "20214:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "20229:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "20229:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "20241:3:136",
                                "nodeType": "YulLiteral",
                                "src": "20241:3:136",
                                "type": "",
                                "value": "192"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "20246:18:136",
                                "nodeType": "YulLiteral",
                                "src": "20246:18:136",
                                "type": "",
                                "value": "0xffffffffffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "20237:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "20237:3:136"
                            },
                            "nativeSrc": "20237:28:136",
                            "nodeType": "YulFunctionCall",
                            "src": "20237:28:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "20225:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "20225:3:136"
                        },
                        "nativeSrc": "20225:41:136",
                        "nodeType": "YulFunctionCall",
                        "src": "20225:41:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "20207:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "20207:6:136"
                    },
                    "nativeSrc": "20207:60:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20207:60:136"
                  },
                  "nativeSrc": "20207:60:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "20207:60:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "20287:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "20287:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "20298:2:136",
                            "nodeType": "YulLiteral",
                            "src": "20298:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "20283:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "20283:3:136"
                        },
                        "nativeSrc": "20283:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "20283:18:136"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "20303:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "20303:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "20276:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "20276:6:136"
                    },
                    "nativeSrc": "20276:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20276:34:136"
                  },
                  "nativeSrc": "20276:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "20276:34:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "20330:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "20330:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "20341:2:136",
                            "nodeType": "YulLiteral",
                            "src": "20341:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "20326:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "20326:3:136"
                        },
                        "nativeSrc": "20326:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "20326:18:136"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "20346:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "20346:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "20319:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "20319:6:136"
                    },
                    "nativeSrc": "20319:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20319:34:136"
                  },
                  "nativeSrc": "20319:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "20319:34:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "20373:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "20373:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "20384:2:136",
                            "nodeType": "YulLiteral",
                            "src": "20384:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "20369:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "20369:3:136"
                        },
                        "nativeSrc": "20369:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "20369:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value3",
                            "nativeSrc": "20393:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "20393:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "20401:18:136",
                            "nodeType": "YulLiteral",
                            "src": "20401:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "20389:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "20389:3:136"
                        },
                        "nativeSrc": "20389:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "20389:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "20362:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "20362:6:136"
                    },
                    "nativeSrc": "20362:59:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20362:59:136"
                  },
                  "nativeSrc": "20362:59:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "20362:59:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "20441:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "20441:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "20452:3:136",
                            "nodeType": "YulLiteral",
                            "src": "20452:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "20437:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "20437:3:136"
                        },
                        "nativeSrc": "20437:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "20437:19:136"
                      },
                      {
                        "name": "value4",
                        "nativeSrc": "20458:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "20458:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "20430:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "20430:6:136"
                    },
                    "nativeSrc": "20430:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20430:35:136"
                  },
                  "nativeSrc": "20430:35:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "20430:35:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes8_t_uint256_t_uint256_t_userDefinedValueType$_Timestamp_$37157_t_userDefinedValueType$_TransactionHash_$37159__to_t_bytes32_t_uint256_t_uint256_t_uint64_t_bytes32__fromStack_reversed",
            "nativeSrc": "19882:589:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "20098:9:136",
                "nodeType": "YulTypedName",
                "src": "20098:9:136",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "20109:6:136",
                "nodeType": "YulTypedName",
                "src": "20109:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "20117:6:136",
                "nodeType": "YulTypedName",
                "src": "20117:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "20125:6:136",
                "nodeType": "YulTypedName",
                "src": "20125:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "20133:6:136",
                "nodeType": "YulTypedName",
                "src": "20133:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "20141:6:136",
                "nodeType": "YulTypedName",
                "src": "20141:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "20152:4:136",
                "nodeType": "YulTypedName",
                "src": "20152:4:136",
                "type": ""
              }
            ],
            "src": "19882:589:136"
          },
          {
            "body": {
              "nativeSrc": "20632:197:136",
              "nodeType": "YulBlock",
              "src": "20632:197:136",
              "statements": [
                {
                  "nativeSrc": "20642:26:136",
                  "nodeType": "YulAssignment",
                  "src": "20642:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "20654:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "20654:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "20665:2:136",
                        "nodeType": "YulLiteral",
                        "src": "20665:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "20650:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "20650:3:136"
                    },
                    "nativeSrc": "20650:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20650:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "20642:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "20642:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "20684:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "20684:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "20695:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "20695:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "20677:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "20677:6:136"
                    },
                    "nativeSrc": "20677:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20677:25:136"
                  },
                  "nativeSrc": "20677:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "20677:25:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "20722:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "20722:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "20733:2:136",
                            "nodeType": "YulLiteral",
                            "src": "20733:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "20718:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "20718:3:136"
                        },
                        "nativeSrc": "20718:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "20718:18:136"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "20738:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "20738:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "20711:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "20711:6:136"
                    },
                    "nativeSrc": "20711:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20711:34:136"
                  },
                  "nativeSrc": "20711:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "20711:34:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "20765:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "20765:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "20776:2:136",
                            "nodeType": "YulLiteral",
                            "src": "20776:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "20761:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "20761:3:136"
                        },
                        "nativeSrc": "20761:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "20761:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value2",
                            "nativeSrc": "20785:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "20785:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "20797:3:136",
                                "nodeType": "YulLiteral",
                                "src": "20797:3:136",
                                "type": "",
                                "value": "192"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "20802:18:136",
                                "nodeType": "YulLiteral",
                                "src": "20802:18:136",
                                "type": "",
                                "value": "0xffffffffffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "20793:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "20793:3:136"
                            },
                            "nativeSrc": "20793:28:136",
                            "nodeType": "YulFunctionCall",
                            "src": "20793:28:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "20781:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "20781:3:136"
                        },
                        "nativeSrc": "20781:41:136",
                        "nodeType": "YulFunctionCall",
                        "src": "20781:41:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "20754:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "20754:6:136"
                    },
                    "nativeSrc": "20754:69:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20754:69:136"
                  },
                  "nativeSrc": "20754:69:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "20754:69:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_uint256_t_bytes8__to_t_uint256_t_uint256_t_bytes32__fromStack_reversed",
            "nativeSrc": "20476:353:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "20585:9:136",
                "nodeType": "YulTypedName",
                "src": "20585:9:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "20596:6:136",
                "nodeType": "YulTypedName",
                "src": "20596:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "20604:6:136",
                "nodeType": "YulTypedName",
                "src": "20604:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "20612:6:136",
                "nodeType": "YulTypedName",
                "src": "20612:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "20623:4:136",
                "nodeType": "YulTypedName",
                "src": "20623:4:136",
                "type": ""
              }
            ],
            "src": "20476:353:136"
          },
          {
            "body": {
              "nativeSrc": "20948:170:136",
              "nodeType": "YulBlock",
              "src": "20948:170:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "20994:16:136",
                    "nodeType": "YulBlock",
                    "src": "20994:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "21003:1:136",
                              "nodeType": "YulLiteral",
                              "src": "21003:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "21006:1:136",
                              "nodeType": "YulLiteral",
                              "src": "21006:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "20996:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "20996:6:136"
                          },
                          "nativeSrc": "20996:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "20996:12:136"
                        },
                        "nativeSrc": "20996:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "20996:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "20969:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "20969:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "20978:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "20978:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "20965:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "20965:3:136"
                        },
                        "nativeSrc": "20965:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "20965:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "20990:2:136",
                        "nodeType": "YulLiteral",
                        "src": "20990:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "20961:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "20961:3:136"
                    },
                    "nativeSrc": "20961:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20961:32:136"
                  },
                  "nativeSrc": "20958:52:136",
                  "nodeType": "YulIf",
                  "src": "20958:52:136"
                },
                {
                  "nativeSrc": "21019:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "21019:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "21038:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "21038:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "21032:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "21032:5:136"
                    },
                    "nativeSrc": "21032:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21032:16:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "21023:5:136",
                      "nodeType": "YulTypedName",
                      "src": "21023:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "21082:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "21082:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "21057:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "21057:24:136"
                    },
                    "nativeSrc": "21057:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21057:31:136"
                  },
                  "nativeSrc": "21057:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "21057:31:136"
                },
                {
                  "nativeSrc": "21097:15:136",
                  "nodeType": "YulAssignment",
                  "src": "21097:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "21107:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "21107:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "21097:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "21097:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_contract$_IWitOracleRadonRegistry_$27394_fromMemory",
            "nativeSrc": "20834:284:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "20914:9:136",
                "nodeType": "YulTypedName",
                "src": "20914:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "20925:7:136",
                "nodeType": "YulTypedName",
                "src": "20925:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "20937:6:136",
                "nodeType": "YulTypedName",
                "src": "20937:6:136",
                "type": ""
              }
            ],
            "src": "20834:284:136"
          },
          {
            "body": {
              "nativeSrc": "21208:255:136",
              "nodeType": "YulBlock",
              "src": "21208:255:136",
              "statements": [
                {
                  "nativeSrc": "21218:61:136",
                  "nodeType": "YulAssignment",
                  "src": "21218:61:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nativeSrc": "21271:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "21271:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_bytes",
                          "nativeSrc": "21243:27:136",
                          "nodeType": "YulIdentifier",
                          "src": "21243:27:136"
                        },
                        "nativeSrc": "21243:35:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21243:35:136"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nativeSrc": "21227:15:136",
                      "nodeType": "YulIdentifier",
                      "src": "21227:15:136"
                    },
                    "nativeSrc": "21227:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21227:52:136"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nativeSrc": "21218:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "21218:5:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "array",
                        "nativeSrc": "21295:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "21295:5:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "21302:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "21302:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "21288:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "21288:6:136"
                    },
                    "nativeSrc": "21288:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21288:21:136"
                  },
                  "nativeSrc": "21288:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "21288:21:136"
                },
                {
                  "body": {
                    "nativeSrc": "21347:16:136",
                    "nodeType": "YulBlock",
                    "src": "21347:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "21356:1:136",
                              "nodeType": "YulLiteral",
                              "src": "21356:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "21359:1:136",
                              "nodeType": "YulLiteral",
                              "src": "21359:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "21349:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "21349:6:136"
                          },
                          "nativeSrc": "21349:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "21349:12:136"
                        },
                        "nativeSrc": "21349:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "21349:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "src",
                            "nativeSrc": "21328:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "21328:3:136"
                          },
                          {
                            "name": "length",
                            "nativeSrc": "21333:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "21333:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "21324:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "21324:3:136"
                        },
                        "nativeSrc": "21324:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21324:16:136"
                      },
                      {
                        "name": "end",
                        "nativeSrc": "21342:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "21342:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "21321:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "21321:2:136"
                    },
                    "nativeSrc": "21321:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21321:25:136"
                  },
                  "nativeSrc": "21318:45:136",
                  "nodeType": "YulIf",
                  "src": "21318:45:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "array",
                            "nativeSrc": "21382:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "21382:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "21389:4:136",
                            "nodeType": "YulLiteral",
                            "src": "21389:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "21378:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "21378:3:136"
                        },
                        "nativeSrc": "21378:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21378:16:136"
                      },
                      {
                        "name": "src",
                        "nativeSrc": "21396:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "21396:3:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "21401:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "21401:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mcopy",
                      "nativeSrc": "21372:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "21372:5:136"
                    },
                    "nativeSrc": "21372:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21372:36:136"
                  },
                  "nativeSrc": "21372:36:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "21372:36:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "array",
                                "nativeSrc": "21432:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "21432:5:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "21439:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "21439:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "21428:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "21428:3:136"
                            },
                            "nativeSrc": "21428:18:136",
                            "nodeType": "YulFunctionCall",
                            "src": "21428:18:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "21448:4:136",
                            "nodeType": "YulLiteral",
                            "src": "21448:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "21424:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "21424:3:136"
                        },
                        "nativeSrc": "21424:29:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21424:29:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "21455:1:136",
                        "nodeType": "YulLiteral",
                        "src": "21455:1:136",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "21417:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "21417:6:136"
                    },
                    "nativeSrc": "21417:40:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21417:40:136"
                  },
                  "nativeSrc": "21417:40:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "21417:40:136"
                }
              ]
            },
            "name": "abi_decode_available_length_bytes_fromMemory",
            "nativeSrc": "21123:340:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "src",
                "nativeSrc": "21177:3:136",
                "nodeType": "YulTypedName",
                "src": "21177:3:136",
                "type": ""
              },
              {
                "name": "length",
                "nativeSrc": "21182:6:136",
                "nodeType": "YulTypedName",
                "src": "21182:6:136",
                "type": ""
              },
              {
                "name": "end",
                "nativeSrc": "21190:3:136",
                "nodeType": "YulTypedName",
                "src": "21190:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nativeSrc": "21198:5:136",
                "nodeType": "YulTypedName",
                "src": "21198:5:136",
                "type": ""
              }
            ],
            "src": "21123:340:136"
          },
          {
            "body": {
              "nativeSrc": "21558:367:136",
              "nodeType": "YulBlock",
              "src": "21558:367:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "21604:16:136",
                    "nodeType": "YulBlock",
                    "src": "21604:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "21613:1:136",
                              "nodeType": "YulLiteral",
                              "src": "21613:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "21616:1:136",
                              "nodeType": "YulLiteral",
                              "src": "21616:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "21606:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "21606:6:136"
                          },
                          "nativeSrc": "21606:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "21606:12:136"
                        },
                        "nativeSrc": "21606:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "21606:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "21579:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "21579:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "21588:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "21588:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "21575:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "21575:3:136"
                        },
                        "nativeSrc": "21575:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21575:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "21600:2:136",
                        "nodeType": "YulLiteral",
                        "src": "21600:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "21571:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "21571:3:136"
                    },
                    "nativeSrc": "21571:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21571:32:136"
                  },
                  "nativeSrc": "21568:52:136",
                  "nodeType": "YulIf",
                  "src": "21568:52:136"
                },
                {
                  "nativeSrc": "21629:30:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "21629:30:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "21649:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "21649:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "21643:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "21643:5:136"
                    },
                    "nativeSrc": "21643:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21643:16:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "21633:6:136",
                      "nodeType": "YulTypedName",
                      "src": "21633:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "21702:16:136",
                    "nodeType": "YulBlock",
                    "src": "21702:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "21711:1:136",
                              "nodeType": "YulLiteral",
                              "src": "21711:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "21714:1:136",
                              "nodeType": "YulLiteral",
                              "src": "21714:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "21704:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "21704:6:136"
                          },
                          "nativeSrc": "21704:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "21704:12:136"
                        },
                        "nativeSrc": "21704:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "21704:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "21674:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "21674:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "21682:18:136",
                        "nodeType": "YulLiteral",
                        "src": "21682:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "21671:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "21671:2:136"
                    },
                    "nativeSrc": "21671:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21671:30:136"
                  },
                  "nativeSrc": "21668:50:136",
                  "nodeType": "YulIf",
                  "src": "21668:50:136"
                },
                {
                  "nativeSrc": "21727:32:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "21727:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "21741:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "21741:9:136"
                      },
                      {
                        "name": "offset",
                        "nativeSrc": "21752:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "21752:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "21737:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "21737:3:136"
                    },
                    "nativeSrc": "21737:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21737:22:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "21731:2:136",
                      "nodeType": "YulTypedName",
                      "src": "21731:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "21807:16:136",
                    "nodeType": "YulBlock",
                    "src": "21807:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "21816:1:136",
                              "nodeType": "YulLiteral",
                              "src": "21816:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "21819:1:136",
                              "nodeType": "YulLiteral",
                              "src": "21819:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "21809:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "21809:6:136"
                          },
                          "nativeSrc": "21809:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "21809:12:136"
                        },
                        "nativeSrc": "21809:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "21809:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "21786:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "21786:2:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "21790:4:136",
                                "nodeType": "YulLiteral",
                                "src": "21790:4:136",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "21782:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "21782:3:136"
                            },
                            "nativeSrc": "21782:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "21782:13:136"
                          },
                          {
                            "name": "dataEnd",
                            "nativeSrc": "21797:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "21797:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nativeSrc": "21778:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "21778:3:136"
                        },
                        "nativeSrc": "21778:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21778:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "21771:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "21771:6:136"
                    },
                    "nativeSrc": "21771:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21771:35:136"
                  },
                  "nativeSrc": "21768:55:136",
                  "nodeType": "YulIf",
                  "src": "21768:55:136"
                },
                {
                  "nativeSrc": "21832:87:136",
                  "nodeType": "YulAssignment",
                  "src": "21832:87:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "21891:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "21891:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "21895:2:136",
                            "nodeType": "YulLiteral",
                            "src": "21895:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "21887:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "21887:3:136"
                        },
                        "nativeSrc": "21887:11:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21887:11:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "21906:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "21906:2:136"
                          }
                        ],
                        "functionName": {
                          "name": "mload",
                          "nativeSrc": "21900:5:136",
                          "nodeType": "YulIdentifier",
                          "src": "21900:5:136"
                        },
                        "nativeSrc": "21900:9:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21900:9:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "21911:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "21911:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_available_length_bytes_fromMemory",
                      "nativeSrc": "21842:44:136",
                      "nodeType": "YulIdentifier",
                      "src": "21842:44:136"
                    },
                    "nativeSrc": "21842:77:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21842:77:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "21832:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "21832:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes_memory_ptr_fromMemory",
            "nativeSrc": "21468:457:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "21524:9:136",
                "nodeType": "YulTypedName",
                "src": "21524:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "21535:7:136",
                "nodeType": "YulTypedName",
                "src": "21535:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "21547:6:136",
                "nodeType": "YulTypedName",
                "src": "21547:6:136",
                "type": ""
              }
            ],
            "src": "21468:457:136"
          },
          {
            "body": {
              "nativeSrc": "22021:367:136",
              "nodeType": "YulBlock",
              "src": "22021:367:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "22067:16:136",
                    "nodeType": "YulBlock",
                    "src": "22067:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "22076:1:136",
                              "nodeType": "YulLiteral",
                              "src": "22076:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "22079:1:136",
                              "nodeType": "YulLiteral",
                              "src": "22079:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "22069:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "22069:6:136"
                          },
                          "nativeSrc": "22069:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "22069:12:136"
                        },
                        "nativeSrc": "22069:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "22069:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "22042:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "22042:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "22051:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "22051:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "22038:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22038:3:136"
                        },
                        "nativeSrc": "22038:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22038:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "22063:2:136",
                        "nodeType": "YulLiteral",
                        "src": "22063:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "22034:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "22034:3:136"
                    },
                    "nativeSrc": "22034:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22034:32:136"
                  },
                  "nativeSrc": "22031:52:136",
                  "nodeType": "YulIf",
                  "src": "22031:52:136"
                },
                {
                  "nativeSrc": "22092:30:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "22092:30:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "22112:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "22112:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "22106:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "22106:5:136"
                    },
                    "nativeSrc": "22106:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22106:16:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "22096:6:136",
                      "nodeType": "YulTypedName",
                      "src": "22096:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "22165:16:136",
                    "nodeType": "YulBlock",
                    "src": "22165:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "22174:1:136",
                              "nodeType": "YulLiteral",
                              "src": "22174:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "22177:1:136",
                              "nodeType": "YulLiteral",
                              "src": "22177:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "22167:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "22167:6:136"
                          },
                          "nativeSrc": "22167:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "22167:12:136"
                        },
                        "nativeSrc": "22167:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "22167:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "22137:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "22137:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "22145:18:136",
                        "nodeType": "YulLiteral",
                        "src": "22145:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "22134:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "22134:2:136"
                    },
                    "nativeSrc": "22134:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22134:30:136"
                  },
                  "nativeSrc": "22131:50:136",
                  "nodeType": "YulIf",
                  "src": "22131:50:136"
                },
                {
                  "nativeSrc": "22190:32:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "22190:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "22204:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "22204:9:136"
                      },
                      {
                        "name": "offset",
                        "nativeSrc": "22215:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "22215:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "22200:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "22200:3:136"
                    },
                    "nativeSrc": "22200:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22200:22:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "22194:2:136",
                      "nodeType": "YulTypedName",
                      "src": "22194:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "22270:16:136",
                    "nodeType": "YulBlock",
                    "src": "22270:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "22279:1:136",
                              "nodeType": "YulLiteral",
                              "src": "22279:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "22282:1:136",
                              "nodeType": "YulLiteral",
                              "src": "22282:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "22272:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "22272:6:136"
                          },
                          "nativeSrc": "22272:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "22272:12:136"
                        },
                        "nativeSrc": "22272:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "22272:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "22249:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "22249:2:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "22253:4:136",
                                "nodeType": "YulLiteral",
                                "src": "22253:4:136",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "22245:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "22245:3:136"
                            },
                            "nativeSrc": "22245:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "22245:13:136"
                          },
                          {
                            "name": "dataEnd",
                            "nativeSrc": "22260:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "22260:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nativeSrc": "22241:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22241:3:136"
                        },
                        "nativeSrc": "22241:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22241:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "22234:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "22234:6:136"
                    },
                    "nativeSrc": "22234:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22234:35:136"
                  },
                  "nativeSrc": "22231:55:136",
                  "nodeType": "YulIf",
                  "src": "22231:55:136"
                },
                {
                  "nativeSrc": "22295:87:136",
                  "nodeType": "YulAssignment",
                  "src": "22295:87:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "22354:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "22354:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "22358:2:136",
                            "nodeType": "YulLiteral",
                            "src": "22358:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "22350:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22350:3:136"
                        },
                        "nativeSrc": "22350:11:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22350:11:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "22369:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "22369:2:136"
                          }
                        ],
                        "functionName": {
                          "name": "mload",
                          "nativeSrc": "22363:5:136",
                          "nodeType": "YulIdentifier",
                          "src": "22363:5:136"
                        },
                        "nativeSrc": "22363:9:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22363:9:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "22374:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "22374:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_available_length_bytes_fromMemory",
                      "nativeSrc": "22305:44:136",
                      "nodeType": "YulIdentifier",
                      "src": "22305:44:136"
                    },
                    "nativeSrc": "22305:77:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22305:77:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "22295:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "22295:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory",
            "nativeSrc": "21930:458:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "21987:9:136",
                "nodeType": "YulTypedName",
                "src": "21987:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "21998:7:136",
                "nodeType": "YulTypedName",
                "src": "21998:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "22010:6:136",
                "nodeType": "YulTypedName",
                "src": "22010:6:136",
                "type": ""
              }
            ],
            "src": "21930:458:136"
          },
          {
            "body": {
              "nativeSrc": "22567:231:136",
              "nodeType": "YulBlock",
              "src": "22567:231:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "22584:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "22584:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "22595:2:136",
                        "nodeType": "YulLiteral",
                        "src": "22595:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "22577:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "22577:6:136"
                    },
                    "nativeSrc": "22577:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22577:21:136"
                  },
                  "nativeSrc": "22577:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "22577:21:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "22618:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "22618:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "22629:2:136",
                            "nodeType": "YulLiteral",
                            "src": "22629:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "22614:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22614:3:136"
                        },
                        "nativeSrc": "22614:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22614:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "22634:2:136",
                        "nodeType": "YulLiteral",
                        "src": "22634:2:136",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "22607:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "22607:6:136"
                    },
                    "nativeSrc": "22607:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22607:30:136"
                  },
                  "nativeSrc": "22607:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "22607:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "22657:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "22657:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "22668:2:136",
                            "nodeType": "YulLiteral",
                            "src": "22668:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "22653:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22653:3:136"
                        },
                        "nativeSrc": "22653:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22653:18:136"
                      },
                      {
                        "hexValue": "4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520",
                        "kind": "string",
                        "nativeSrc": "22673:34:136",
                        "nodeType": "YulLiteral",
                        "src": "22673:34:136",
                        "type": "",
                        "value": "Ownable2Step: caller is not the "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "22646:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "22646:6:136"
                    },
                    "nativeSrc": "22646:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22646:62:136"
                  },
                  "nativeSrc": "22646:62:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "22646:62:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "22728:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "22728:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "22739:2:136",
                            "nodeType": "YulLiteral",
                            "src": "22739:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "22724:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22724:3:136"
                        },
                        "nativeSrc": "22724:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22724:18:136"
                      },
                      {
                        "hexValue": "6e6577206f776e6572",
                        "kind": "string",
                        "nativeSrc": "22744:11:136",
                        "nodeType": "YulLiteral",
                        "src": "22744:11:136",
                        "type": "",
                        "value": "new owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "22717:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "22717:6:136"
                    },
                    "nativeSrc": "22717:39:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22717:39:136"
                  },
                  "nativeSrc": "22717:39:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "22717:39:136"
                },
                {
                  "nativeSrc": "22765:27:136",
                  "nodeType": "YulAssignment",
                  "src": "22765:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "22777:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "22777:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "22788:3:136",
                        "nodeType": "YulLiteral",
                        "src": "22788:3:136",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "22773:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "22773:3:136"
                    },
                    "nativeSrc": "22773:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22773:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "22765:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "22765:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "22393:405:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "22544:9:136",
                "nodeType": "YulTypedName",
                "src": "22544:9:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "22558:4:136",
                "nodeType": "YulTypedName",
                "src": "22558:4:136",
                "type": ""
              }
            ],
            "src": "22393:405:136"
          },
          {
            "body": {
              "nativeSrc": "22977:173:136",
              "nodeType": "YulBlock",
              "src": "22977:173:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "22994:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "22994:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "23005:2:136",
                        "nodeType": "YulLiteral",
                        "src": "23005:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "22987:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "22987:6:136"
                    },
                    "nativeSrc": "22987:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22987:21:136"
                  },
                  "nativeSrc": "22987:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "22987:21:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "23028:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "23028:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "23039:2:136",
                            "nodeType": "YulLiteral",
                            "src": "23039:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "23024:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "23024:3:136"
                        },
                        "nativeSrc": "23024:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "23024:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "23044:2:136",
                        "nodeType": "YulLiteral",
                        "src": "23044:2:136",
                        "type": "",
                        "value": "23"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "23017:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "23017:6:136"
                    },
                    "nativeSrc": "23017:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23017:30:136"
                  },
                  "nativeSrc": "23017:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "23017:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "23067:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "23067:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "23078:2:136",
                            "nodeType": "YulLiteral",
                            "src": "23078:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "23063:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "23063:3:136"
                        },
                        "nativeSrc": "23063:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "23063:18:136"
                      },
                      {
                        "hexValue": "436c6f6e61626c653a20435245415445206661696c6564",
                        "kind": "string",
                        "nativeSrc": "23083:25:136",
                        "nodeType": "YulLiteral",
                        "src": "23083:25:136",
                        "type": "",
                        "value": "Clonable: CREATE failed"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "23056:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "23056:6:136"
                    },
                    "nativeSrc": "23056:53:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23056:53:136"
                  },
                  "nativeSrc": "23056:53:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "23056:53:136"
                },
                {
                  "nativeSrc": "23118:26:136",
                  "nodeType": "YulAssignment",
                  "src": "23118:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "23130:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "23130:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "23141:2:136",
                        "nodeType": "YulLiteral",
                        "src": "23141:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "23126:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "23126:3:136"
                    },
                    "nativeSrc": "23126:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23126:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "23118:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "23118:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_f8cfba6ed78807628b270dde5bcd8cbfca4a14a698a8ee8cad29a9a244bc492e__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "22803:347:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "22954:9:136",
                "nodeType": "YulTypedName",
                "src": "22954:9:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "22968:4:136",
                "nodeType": "YulTypedName",
                "src": "22968:4:136",
                "type": ""
              }
            ],
            "src": "22803:347:136"
          },
          {
            "body": {
              "nativeSrc": "23395:107:136",
              "nodeType": "YulBlock",
              "src": "23395:107:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "23412:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "23412:3:136"
                      },
                      {
                        "hexValue": "66696e616c697a696e67206f6e20626c6f636b2023",
                        "kind": "string",
                        "nativeSrc": "23417:23:136",
                        "nodeType": "YulLiteral",
                        "src": "23417:23:136",
                        "type": "",
                        "value": "finalizing on block #"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "23405:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "23405:6:136"
                    },
                    "nativeSrc": "23405:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23405:36:136"
                  },
                  "nativeSrc": "23405:36:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "23405:36:136"
                },
                {
                  "nativeSrc": "23450:46:136",
                  "nodeType": "YulAssignment",
                  "src": "23450:46:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "23475:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "23475:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "23487:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "23487:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "23492:2:136",
                            "nodeType": "YulLiteral",
                            "src": "23492:2:136",
                            "type": "",
                            "value": "21"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "23483:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "23483:3:136"
                        },
                        "nativeSrc": "23483:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "23483:12:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nativeSrc": "23457:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "23457:17:136"
                    },
                    "nativeSrc": "23457:39:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23457:39:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "23450:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "23450:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_stringliteral_399e5c00a46970613fe1bf6f076dbd494ddaeae6688dcf891c48abf0f5c421d3_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nativeSrc": "23155:347:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "23371:3:136",
                "nodeType": "YulTypedName",
                "src": "23371:3:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "23376:6:136",
                "nodeType": "YulTypedName",
                "src": "23376:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "23387:3:136",
                "nodeType": "YulTypedName",
                "src": "23387:3:136",
                "type": ""
              }
            ],
            "src": "23155:347:136"
          },
          {
            "body": {
              "nativeSrc": "23681:173:136",
              "nodeType": "YulBlock",
              "src": "23681:173:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "23698:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "23698:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "23709:2:136",
                        "nodeType": "YulLiteral",
                        "src": "23709:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "23691:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "23691:6:136"
                    },
                    "nativeSrc": "23691:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23691:21:136"
                  },
                  "nativeSrc": "23691:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "23691:21:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "23732:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "23732:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "23743:2:136",
                            "nodeType": "YulLiteral",
                            "src": "23743:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "23728:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "23728:3:136"
                        },
                        "nativeSrc": "23728:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "23728:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "23748:2:136",
                        "nodeType": "YulLiteral",
                        "src": "23748:2:136",
                        "type": "",
                        "value": "23"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "23721:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "23721:6:136"
                    },
                    "nativeSrc": "23721:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23721:30:136"
                  },
                  "nativeSrc": "23721:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "23721:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "23771:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "23771:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "23782:2:136",
                            "nodeType": "YulLiteral",
                            "src": "23782:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "23767:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "23767:3:136"
                        },
                        "nativeSrc": "23767:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "23767:18:136"
                      },
                      {
                        "hexValue": "63626f723a2063616e6e6f742066657463682064617461",
                        "kind": "string",
                        "nativeSrc": "23787:25:136",
                        "nodeType": "YulLiteral",
                        "src": "23787:25:136",
                        "type": "",
                        "value": "cbor: cannot fetch data"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "23760:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "23760:6:136"
                    },
                    "nativeSrc": "23760:53:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23760:53:136"
                  },
                  "nativeSrc": "23760:53:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "23760:53:136"
                },
                {
                  "nativeSrc": "23822:26:136",
                  "nodeType": "YulAssignment",
                  "src": "23822:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "23834:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "23834:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "23845:2:136",
                        "nodeType": "YulLiteral",
                        "src": "23845:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "23830:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "23830:3:136"
                    },
                    "nativeSrc": "23830:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23830:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "23822:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "23822:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_f9e00dcd71685f8522f8d07872510c3a81c2039687b393455d27e0cdc22dcafa__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "23507:347:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "23658:9:136",
                "nodeType": "YulTypedName",
                "src": "23658:9:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "23672:4:136",
                "nodeType": "YulTypedName",
                "src": "23672:4:136",
                "type": ""
              }
            ],
            "src": "23507:347:136"
          },
          {
            "body": {
              "nativeSrc": "23897:74:136",
              "nodeType": "YulBlock",
              "src": "23897:74:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "23920:22:136",
                    "nodeType": "YulBlock",
                    "src": "23920:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x12",
                            "nativeSrc": "23922:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "23922:16:136"
                          },
                          "nativeSrc": "23922:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "23922:18:136"
                        },
                        "nativeSrc": "23922:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "23922:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "y",
                        "nativeSrc": "23917:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "23917:1:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "23910:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "23910:6:136"
                    },
                    "nativeSrc": "23910:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23910:9:136"
                  },
                  "nativeSrc": "23907:35:136",
                  "nodeType": "YulIf",
                  "src": "23907:35:136"
                },
                {
                  "nativeSrc": "23951:14:136",
                  "nodeType": "YulAssignment",
                  "src": "23951:14:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nativeSrc": "23960:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "23960:1:136"
                      },
                      {
                        "name": "y",
                        "nativeSrc": "23963:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "23963:1:136"
                      }
                    ],
                    "functionName": {
                      "name": "mod",
                      "nativeSrc": "23956:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "23956:3:136"
                    },
                    "nativeSrc": "23956:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23956:9:136"
                  },
                  "variableNames": [
                    {
                      "name": "r",
                      "nativeSrc": "23951:1:136",
                      "nodeType": "YulIdentifier",
                      "src": "23951:1:136"
                    }
                  ]
                }
              ]
            },
            "name": "mod_t_uint256",
            "nativeSrc": "23859:112:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "23882:1:136",
                "nodeType": "YulTypedName",
                "src": "23882:1:136",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "23885:1:136",
                "nodeType": "YulTypedName",
                "src": "23885:1:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "r",
                "nativeSrc": "23891:1:136",
                "nodeType": "YulTypedName",
                "src": "23891:1:136",
                "type": ""
              }
            ],
            "src": "23859:112:136"
          },
          {
            "body": {
              "nativeSrc": "24023:88:136",
              "nodeType": "YulBlock",
              "src": "24023:88:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "24054:22:136",
                    "nodeType": "YulBlock",
                    "src": "24054:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "24056:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "24056:16:136"
                          },
                          "nativeSrc": "24056:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "24056:18:136"
                        },
                        "nativeSrc": "24056:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "24056:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "24039:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "24039:5:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "24050:1:136",
                            "nodeType": "YulLiteral",
                            "src": "24050:1:136",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nativeSrc": "24046:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "24046:3:136"
                        },
                        "nativeSrc": "24046:6:136",
                        "nodeType": "YulFunctionCall",
                        "src": "24046:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nativeSrc": "24036:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "24036:2:136"
                    },
                    "nativeSrc": "24036:17:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24036:17:136"
                  },
                  "nativeSrc": "24033:43:136",
                  "nodeType": "YulIf",
                  "src": "24033:43:136"
                },
                {
                  "nativeSrc": "24085:20:136",
                  "nodeType": "YulAssignment",
                  "src": "24085:20:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "24096:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "24096:5:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "24103:1:136",
                        "nodeType": "YulLiteral",
                        "src": "24103:1:136",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "24092:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "24092:3:136"
                    },
                    "nativeSrc": "24092:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24092:13:136"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nativeSrc": "24085:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "24085:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nativeSrc": "23976:135:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "24005:5:136",
                "nodeType": "YulTypedName",
                "src": "24005:5:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nativeSrc": "24015:3:136",
                "nodeType": "YulTypedName",
                "src": "24015:3:136",
                "type": ""
              }
            ],
            "src": "23976:135:136"
          },
          {
            "body": {
              "nativeSrc": "24241:141:136",
              "nodeType": "YulBlock",
              "src": "24241:141:136",
              "statements": [
                {
                  "nativeSrc": "24251:26:136",
                  "nodeType": "YulAssignment",
                  "src": "24251:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "24263:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "24263:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "24274:2:136",
                        "nodeType": "YulLiteral",
                        "src": "24274:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "24259:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "24259:3:136"
                    },
                    "nativeSrc": "24259:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24259:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "24251:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "24251:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "24293:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "24293:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "24308:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "24308:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "24316:4:136",
                            "nodeType": "YulLiteral",
                            "src": "24316:4:136",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "24304:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "24304:3:136"
                        },
                        "nativeSrc": "24304:17:136",
                        "nodeType": "YulFunctionCall",
                        "src": "24304:17:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "24286:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "24286:6:136"
                    },
                    "nativeSrc": "24286:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24286:36:136"
                  },
                  "nativeSrc": "24286:36:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "24286:36:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "24342:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "24342:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "24353:2:136",
                            "nodeType": "YulLiteral",
                            "src": "24353:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "24338:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "24338:3:136"
                        },
                        "nativeSrc": "24338:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "24338:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "24362:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "24362:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "24370:4:136",
                            "nodeType": "YulLiteral",
                            "src": "24370:4:136",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "24358:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "24358:3:136"
                        },
                        "nativeSrc": "24358:17:136",
                        "nodeType": "YulFunctionCall",
                        "src": "24358:17:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "24331:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "24331:6:136"
                    },
                    "nativeSrc": "24331:45:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24331:45:136"
                  },
                  "nativeSrc": "24331:45:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "24331:45:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint8_t_uint8__to_t_uint256_t_uint256__fromStack_reversed",
            "nativeSrc": "24116:266:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "24202:9:136",
                "nodeType": "YulTypedName",
                "src": "24202:9:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "24213:6:136",
                "nodeType": "YulTypedName",
                "src": "24213:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "24221:6:136",
                "nodeType": "YulTypedName",
                "src": "24221:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "24232:4:136",
                "nodeType": "YulTypedName",
                "src": "24232:4:136",
                "type": ""
              }
            ],
            "src": "24116:266:136"
          },
          {
            "body": {
              "nativeSrc": "24524:53:136",
              "nodeType": "YulBlock",
              "src": "24524:53:136",
              "statements": [
                {
                  "nativeSrc": "24534:37:136",
                  "nodeType": "YulAssignment",
                  "src": "24534:37:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "24559:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "24559:6:136"
                      },
                      {
                        "name": "pos",
                        "nativeSrc": "24567:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "24567:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nativeSrc": "24541:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "24541:17:136"
                    },
                    "nativeSrc": "24541:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24541:30:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "24534:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "24534:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nativeSrc": "24387:190:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "24500:3:136",
                "nodeType": "YulTypedName",
                "src": "24500:3:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "24505:6:136",
                "nodeType": "YulTypedName",
                "src": "24505:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "24516:3:136",
                "nodeType": "YulTypedName",
                "src": "24516:3:136",
                "type": ""
              }
            ],
            "src": "24387:190:136"
          },
          {
            "body": {
              "nativeSrc": "24765:80:136",
              "nodeType": "YulBlock",
              "src": "24765:80:136",
              "statements": [
                {
                  "nativeSrc": "24775:64:136",
                  "nodeType": "YulAssignment",
                  "src": "24775:64:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "24800:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "24800:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "24826:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "24826:6:136"
                          },
                          {
                            "name": "pos",
                            "nativeSrc": "24834:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "24834:3:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_encode_string",
                          "nativeSrc": "24808:17:136",
                          "nodeType": "YulIdentifier",
                          "src": "24808:17:136"
                        },
                        "nativeSrc": "24808:30:136",
                        "nodeType": "YulFunctionCall",
                        "src": "24808:30:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nativeSrc": "24782:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "24782:17:136"
                    },
                    "nativeSrc": "24782:57:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24782:57:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "24775:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "24775:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nativeSrc": "24582:263:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "24733:3:136",
                "nodeType": "YulTypedName",
                "src": "24733:3:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "24738:6:136",
                "nodeType": "YulTypedName",
                "src": "24738:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "24746:6:136",
                "nodeType": "YulTypedName",
                "src": "24746:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "24757:3:136",
                "nodeType": "YulTypedName",
                "src": "24757:3:136",
                "type": ""
              }
            ],
            "src": "24582:263:136"
          },
          {
            "body": {
              "nativeSrc": "24949:87:136",
              "nodeType": "YulBlock",
              "src": "24949:87:136",
              "statements": [
                {
                  "nativeSrc": "24959:26:136",
                  "nodeType": "YulAssignment",
                  "src": "24959:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "24971:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "24971:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "24982:2:136",
                        "nodeType": "YulLiteral",
                        "src": "24982:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "24967:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "24967:3:136"
                    },
                    "nativeSrc": "24967:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24967:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "24959:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "24959:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "25001:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "25001:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "25016:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "25016:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "25024:4:136",
                            "nodeType": "YulLiteral",
                            "src": "25024:4:136",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "25012:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "25012:3:136"
                        },
                        "nativeSrc": "25012:17:136",
                        "nodeType": "YulFunctionCall",
                        "src": "25012:17:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "24994:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "24994:6:136"
                    },
                    "nativeSrc": "24994:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24994:36:136"
                  },
                  "nativeSrc": "24994:36:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "24994:36:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint8__to_t_uint256__fromStack_reversed",
            "nativeSrc": "24850:186:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "24918:9:136",
                "nodeType": "YulTypedName",
                "src": "24918:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "24929:6:136",
                "nodeType": "YulTypedName",
                "src": "24929:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "24940:4:136",
                "nodeType": "YulTypedName",
                "src": "24940:4:136",
                "type": ""
              }
            ],
            "src": "24850:186:136"
          },
          {
            "body": {
              "nativeSrc": "25170:119:136",
              "nodeType": "YulBlock",
              "src": "25170:119:136",
              "statements": [
                {
                  "nativeSrc": "25180:26:136",
                  "nodeType": "YulAssignment",
                  "src": "25180:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "25192:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "25192:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "25203:2:136",
                        "nodeType": "YulLiteral",
                        "src": "25203:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "25188:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "25188:3:136"
                    },
                    "nativeSrc": "25188:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "25188:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "25180:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "25180:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "25222:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "25222:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "25233:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "25233:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "25215:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "25215:6:136"
                    },
                    "nativeSrc": "25215:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "25215:25:136"
                  },
                  "nativeSrc": "25215:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "25215:25:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "25260:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "25260:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "25271:2:136",
                            "nodeType": "YulLiteral",
                            "src": "25271:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "25256:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "25256:3:136"
                        },
                        "nativeSrc": "25256:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "25256:18:136"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "25276:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "25276:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "25249:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "25249:6:136"
                    },
                    "nativeSrc": "25249:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "25249:34:136"
                  },
                  "nativeSrc": "25249:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "25249:34:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed",
            "nativeSrc": "25041:248:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "25131:9:136",
                "nodeType": "YulTypedName",
                "src": "25131:9:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "25142:6:136",
                "nodeType": "YulTypedName",
                "src": "25142:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "25150:6:136",
                "nodeType": "YulTypedName",
                "src": "25150:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "25161:4:136",
                "nodeType": "YulTypedName",
                "src": "25161:4:136",
                "type": ""
              }
            ],
            "src": "25041:248:136"
          },
          {
            "body": {
              "nativeSrc": "25326:95:136",
              "nodeType": "YulBlock",
              "src": "25326:95:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "25343:1:136",
                        "nodeType": "YulLiteral",
                        "src": "25343:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "25350:3:136",
                            "nodeType": "YulLiteral",
                            "src": "25350:3:136",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "25355:10:136",
                            "nodeType": "YulLiteral",
                            "src": "25355:10:136",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "25346:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "25346:3:136"
                        },
                        "nativeSrc": "25346:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "25346:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "25336:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "25336:6:136"
                    },
                    "nativeSrc": "25336:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "25336:31:136"
                  },
                  "nativeSrc": "25336:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "25336:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "25383:1:136",
                        "nodeType": "YulLiteral",
                        "src": "25383:1:136",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "25386:4:136",
                        "nodeType": "YulLiteral",
                        "src": "25386:4:136",
                        "type": "",
                        "value": "0x01"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "25376:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "25376:6:136"
                    },
                    "nativeSrc": "25376:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "25376:15:136"
                  },
                  "nativeSrc": "25376:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "25376:15:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "25407:1:136",
                        "nodeType": "YulLiteral",
                        "src": "25407:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "25410:4:136",
                        "nodeType": "YulLiteral",
                        "src": "25410:4:136",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "25400:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "25400:6:136"
                    },
                    "nativeSrc": "25400:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "25400:15:136"
                  },
                  "nativeSrc": "25400:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "25400:15:136"
                }
              ]
            },
            "name": "panic_error_0x01",
            "nativeSrc": "25294:127:136",
            "nodeType": "YulFunctionDefinition",
            "src": "25294:127:136"
          }
        ]
      },
      "contents": "{\n    { }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mcopy(pos, add(value, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_stringliteral_6aa2932fe75962e4eb862ba4982429ce713637712a759cb9d40b6d5260a002eb_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n    {\n        mstore(pos, \"not implemented: 0x\")\n        end := abi_encode_string(value3, abi_encode_string(value2, abi_encode_string(value1, abi_encode_string(value0, add(pos, 19)))))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_QueryId_$37151__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256t_bytes32(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_bytes32_t_userDefinedValueType$_Timestamp_$37157_t_userDefinedValueType$_TransactionHash_$37159_t_uint256__to_t_bytes32_t_uint64_t_bytes32_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_decode_uint16(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_struct$_CloneSettings_$6416_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        let _1 := sub(dataEnd, headStart)\n        if slt(_1, 192) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        if slt(add(_1, not(31)), 160) { revert(0, 0) }\n        value1 := add(headStart, 32)\n    }\n    function abi_encode_tuple_t_contract$_IWitRandomness_$28351__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffff))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_uint24(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint24(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := abi_decode_uint24(add(headStart, 32))\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_enum$_RandomizeStatus_$28460__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        if iszero(lt(value0, 5))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_RadonHash_$37153__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_QueryId_$37151_t_uint256_t_uint256__to_t_uint64_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_uint24_t_uint16_t_uint16_t_uint64__to_t_uint24_t_uint16_t_uint16_t_uint64__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, and(value0, 0xffffff))\n        mstore(add(headStart, 32), and(value1, 0xffff))\n        mstore(add(headStart, 64), and(value2, 0xffff))\n        mstore(add(headStart, 96), and(value3, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_encode_tuple_t_contract$_IWitRandomnessConsumer_$28425__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_string_memory_ptr(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        mcopy(add(pos, 0x20), add(value, 0x20), length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string_memory_ptr(value0, add(headStart, 32))\n    }\n    function validator_revert_uint64(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint64(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_uint64(value)\n    }\n    function abi_decode_tuple_t_uint24t_uint16t_uint16t_uint64(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint24(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        value2 := abi_decode_uint16(add(headStart, 64))\n        let value := calldataload(add(headStart, 96))\n        validator_revert_uint64(value)\n        value3 := value\n    }\n    function abi_decode_tuple_t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if gt(add(add(_1, length), 32), dataEnd) { revert(0, 0) }\n        value1 := add(_1, 32)\n        value2 := length\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string_memory_ptr(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let _1 := abi_encode_string(value0, pos)\n        mstore(_1, \": \")\n        end := abi_encode_string(value1, add(_1, 2))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint8(x, y) -> r\n    {\n        let y_1 := and(y, 0xff)\n        if iszero(y_1) { panic_error_0x12() }\n        r := div(and(x, 0xff), y_1)\n    }\n    function checked_add_t_uint8(x, y) -> sum\n    {\n        sum := add(and(x, 0xff), and(y, 0xff))\n        if gt(sum, 0xff) { panic_error_0x11() }\n    }\n    function mod_t_uint8(x, y) -> r\n    {\n        let y_1 := and(y, 0xff)\n        if iszero(y_1) { panic_error_0x12() }\n        r := mod(and(x, 0xff), y_1)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_uint256_t_bytes8__to_t_uint256_t_bytes8__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, shl(192, 0xffffffffffffffff)))\n    }\n    function abi_encode_tuple_t_uint64__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32t_userDefinedValueType$_TransactionHash_$37159t_userDefinedValueType$_Timestamp_$37157t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := 0\n        value := mload(headStart)\n        value0 := value\n        let value_1 := 0\n        value_1 := mload(add(headStart, 32))\n        value1 := value_1\n        let value_2 := mload(add(headStart, 64))\n        validator_revert_uint64(value_2)\n        value2 := value_2\n        let value_3 := 0\n        value_3 := mload(add(headStart, 96))\n        value3 := value_3\n    }\n    function abi_encode_tuple_t_stringliteral_679c3eba4e7d658297efbb8047c8787b8adf0086ae8149ace5cf10d6f2df7de4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Clonable: only on clones\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_uint24(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint24(headStart)\n    }\n    function abi_decode_tuple_t_uint64(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_uint64(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_RadonHash_$37153_t_struct$_QuerySLA_$37373_memory_ptr_t_struct$_QueryCallback_$37340_memory_ptr__to_t_bytes32_t_struct$_QuerySLA_$37373_memory_ptr_t_struct$_QueryCallback_$37340_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 192)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(mload(value1), 0xffff))\n        mstore(add(headStart, 64), and(mload(add(value1, 32)), 0xffff))\n        mstore(add(headStart, 96), and(mload(add(value1, 64)), 0xffffffffffffffff))\n        mstore(add(headStart, 128), and(mload(value2), sub(shl(160, 1), 1)))\n        mstore(add(headStart, 160), and(mload(add(value2, 32)), 0xffffff))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := mload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256_t_userDefinedValueType$_QueryId_$37151__to_t_uint256_t_uint64__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_decode_tuple_t_contract$_IWitRandomness_$28351_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_address_t_struct$_CloneSettings_$6416_memory_ptr__to_t_address_t_struct$_CloneSettings_$6416_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 192)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), and(mload(value1), 0xffffff))\n        mstore(add(headStart, 64), and(mload(add(value1, 32)), 0xffff))\n        mstore(add(headStart, 96), and(mload(add(value1, 64)), 0xffff))\n        mstore(add(headStart, 128), and(mload(add(value1, 96)), 0xffffffffffffffff))\n        mstore(add(headStart, 160), and(mload(add(value1, 128)), 0xffff))\n    }\n    function abi_encode_tuple_t_uint256_t_uint24__to_t_uint256_t_uint24__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffff))\n    }\n    function checked_add_t_uint16(x, y) -> sum\n    {\n        sum := add(and(x, 0xffff), and(y, 0xffff))\n        if gt(sum, 0xffff) { panic_error_0x11() }\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function allocate_memory_2733() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0xc0)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory_2734() -> memPtr\n    {\n        memPtr := mload(0x40)\n        let newFreePtr := add(memPtr, 0x40)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(0x40, newFreePtr)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_enum_RadonDataTypes(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(lt(value, 20)) { revert(0, 0) }\n    }\n    function array_allocation_size_bytes(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), not(31)), 0x20)\n    }\n    function abi_decode_uint8(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n    }\n    function abi_decode_struct_CBOR(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0xc0) { revert(0, 0) }\n        value := allocate_memory_2733()\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(end, _1), 0x40) { revert(0, 0) }\n        let value_1 := allocate_memory_2734()\n        let offset_1 := calldataload(_1)\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let _2 := add(_1, offset_1)\n        if iszero(slt(add(_2, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(_2)\n        let array := allocate_memory(array_allocation_size_bytes(length))\n        mstore(array, length)\n        if gt(add(add(_2, length), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(array, 0x20), add(_2, 0x20), length)\n        mstore(add(add(array, length), 0x20), 0)\n        mstore(value_1, array)\n        let value_2 := 0\n        value_2 := calldataload(add(_1, 0x20))\n        mstore(add(value_1, 0x20), value_2)\n        mstore(value, value_1)\n        mstore(add(value, 0x20), abi_decode_uint8(add(headStart, 0x20)))\n        mstore(add(value, 0x40), abi_decode_uint8(add(headStart, 0x40)))\n        mstore(add(value, 96), abi_decode_uint8(add(headStart, 96)))\n        mstore(add(value, 128), abi_decode_uint64(add(headStart, 128)))\n        mstore(add(value, 160), abi_decode_uint64(add(headStart, 160)))\n    }\n    function abi_decode_tuple_t_struct$_DataResult_$37293_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 0xc0) { revert(0, 0) }\n        let value := allocate_memory_2733()\n        let value_1 := calldataload(_1)\n        if iszero(lt(value_1, 256)) { revert(0, 0) }\n        mstore(value, value_1)\n        mstore(add(value, 32), abi_decode_enum_RadonDataTypes(add(_1, 32)))\n        let value_2 := 0\n        value_2 := calldataload(add(_1, 64))\n        mstore(add(value, 64), value_2)\n        let value_3 := 0\n        value_3 := calldataload(add(_1, 96))\n        mstore(add(value, 96), value_3)\n        mstore(add(value, 128), abi_decode_uint64(add(_1, 128)))\n        let offset_1 := calldataload(add(_1, 160))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(value, 160), abi_decode_struct_CBOR(add(_1, offset_1), dataEnd))\n        value0 := value\n    }\n    function abi_encode_tuple_t_bytes8_t_uint256_t_uint256_t_userDefinedValueType$_Timestamp_$37157_t_userDefinedValueType$_TransactionHash_$37159__to_t_bytes32_t_uint256_t_uint256_t_uint64_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, and(value0, shl(192, 0xffffffffffffffff)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), and(value3, 0xffffffffffffffff))\n        mstore(add(headStart, 128), value4)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_bytes8__to_t_uint256_t_uint256_t_bytes32__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, shl(192, 0xffffffffffffffff)))\n    }\n    function abi_decode_tuple_t_contract$_IWitOracleRadonRegistry_$27394_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_available_length_bytes_fromMemory(src, length, end) -> array\n    {\n        array := allocate_memory(array_allocation_size_bytes(length))\n        mstore(array, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        mcopy(add(array, 0x20), src, length)\n        mstore(add(add(array, length), 0x20), 0)\n    }\n    function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value0 := abi_decode_available_length_bytes_fromMemory(add(_1, 32), mload(_1), dataEnd)\n    }\n    function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        value0 := abi_decode_available_length_bytes_fromMemory(add(_1, 32), mload(_1), dataEnd)\n    }\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Ownable2Step: caller is not the \")\n        mstore(add(headStart, 96), \"new owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f8cfba6ed78807628b270dde5bcd8cbfca4a14a698a8ee8cad29a9a244bc492e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 23)\n        mstore(add(headStart, 64), \"Clonable: CREATE failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_399e5c00a46970613fe1bf6f076dbd494ddaeae6688dcf891c48abf0f5c421d3_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        mstore(pos, \"finalizing on block #\")\n        end := abi_encode_string(value0, add(pos, 21))\n    }\n    function abi_encode_tuple_t_stringliteral_f9e00dcd71685f8522f8d07872510c3a81c2039687b393455d27e0cdc22dcafa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 23)\n        mstore(add(headStart, 64), \"cbor: cannot fetch data\")\n        tail := add(headStart, 96)\n    }\n    function mod_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := mod(x, y)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_uint8_t_uint8__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xff))\n        mstore(add(headStart, 32), and(value1, 0xff))\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        end := abi_encode_string(value0, pos)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        end := abi_encode_string(value1, abi_encode_string(value0, pos))\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function panic_error_0x01()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n}",
      "id": 136,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "3208:35139:20:-:0;;;214:4:127;170:49;;5675:1786:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5780:9;-1:-1:-1;;;;;1273:26:1;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:1;;1350:1;1322:31;;;686:51:136;659:18;;1322:31:1;;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;5807:298:20::1;5855:1;5830:10;-1:-1:-1::0;;;;;5830:22:20::1;;:26;:225;;;;;-1:-1:-1::0;;;;;;5943:93:20::1;-1:-1:-1::0;;;;;5877:178:20::1;;5897:10;-1:-1:-1::0;;;;;5877:37:20::1;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;5877:178:20::1;;5830:225;5807:298;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;:8:::1;:298::i;:::-;6131:10;-1:-1:-1::0;;;;;6116:25:20::1;;;-1:-1:-1::0;;;;;6116:25:20::1;;;::::0;::::1;6209:47;6270:10;-1:-1:-1::0;;;;;6259:31:20::1;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6209:83;;6333:23;-1:-1:-1::0;;;;;6333:42:20::1;;6390:380;;;;;;;;;6429:23;-1:-1:-1::0;;;;;6429:44:20::1;;6496:32;6654:1;-1:-1:-1::0;;;;;6638:18:20::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;6429:325;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6390:380:::0;;:19:::1;:380::i;:::-;6785:148;::::0;;;;::::1;::::0;;6832:30:::1;6785:148:::0;;6890:27;;-1:-1:-1;6890:27:20;;;6785:148:::1;6890:27:::0;;::::1;::::0;;;6785:148;;;::::1;::::0;6890:27:::1;::::0;::::1;3208:35139:::0;;;;;;;;;-1:-1:-1;3208:35139:20;;;;;;;6890:27:::1;;;;;;;;;;;;;;;-1:-1:-1::0;6785:148:20;;6948:162:::1;::::0;;;;::::1;::::0;;6995:44:::1;6948:162:::0;;7067:27;;-1:-1:-1;7067:27:20;;;6948:162:::1;7067:27:::0;;::::1;::::0;;;6948:162;;;::::1;::::0;7067:27:::1;::::0;::::1;3208:35139:::0;;;;;;;;;-1:-1:-1;3208:35139:20;;;;;;;7067:27:::1;;;;;;;;;;;;;;;;6948:162;;::::0;6333:788:::1;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6303:818;::::0;-1:-1:-1;;38298:28:20;7167:35;;7297:34;:70;;-1:-1:-1;;;;;;;7297:70:20;;::::1;;::::0;;-1:-1:-1;;;;;;;;;;7421:32:20;7378;7421;;;-1:-1:-1;3208:35139:20;;1480:156:131;1570:13;1563:20;;-1:-1:-1;;;;;;1563:20:131;;;1594:34;1619:8;1594:24;:34::i;:::-;1480:156;:::o;440:160:63:-;537:10;532:61;;564:17;572:8;564:7;:17::i;:::-;440:160;;:::o;38670:176:116:-;38742:16;38808:2;38813:1;38816:7;38789:35;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;38778:60;;;;;;;;;;;;:::i;:::-;38771:67;38670:176;-1:-1:-1;;38670:176:116:o;2912:187:1:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:1;;;-1:-1:-1;;;;;;3020:17:1;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;608:229:63:-;5633:26:20;;;;;;;;;;;;-1:-1:-1;;;5633:26:20;;;;794:8:63;710:107;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;710:107:63;;;;;;;;;;-1:-1:-1;;;682:147:63;;;;;;;:::i;3208:35139:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:136:-;-1:-1:-1;;;;;89:31:136;;79:42;;69:70;;135:1;132;125:12;150:385;229:6;237;290:2;278:9;269:7;265:23;261:32;258:52;;;306:1;303;296:12;258:52;338:9;332:16;357:31;382:5;357:31;:::i;:::-;457:2;442:18;;436:25;407:5;;-1:-1:-1;470:33:136;436:25;470:33;:::i;:::-;522:7;512:17;;;150:385;;;;;:::o;748:290::-;817:6;870:2;858:9;849:7;845:23;841:32;838:52;;;886:1;883;876:12;838:52;912:16;;-1:-1:-1;;;;;;957:32:136;;947:43;;937:71;;1004:1;1001;994:12;937:71;1027:5;748:290;-1:-1:-1;;;748:290:136:o;1043:284::-;1146:6;1199:2;1187:9;1178:7;1174:23;1170:32;1167:52;;;1215:1;1212;1205:12;1167:52;1247:9;1241:16;1266:31;1291:5;1266:31;:::i;1332:127::-;1393:10;1388:3;1384:20;1381:1;1374:31;1424:4;1421:1;1414:15;1448:4;1445:1;1438:15;1464:127;1525:10;1520:3;1516:20;1513:1;1506:31;1556:4;1553:1;1546:15;1580:4;1577:1;1570:15;1596:300;1649:3;1687:5;1681:12;1714:6;1709:3;1702:19;1770:6;1763:4;1756:5;1752:16;1745:4;1740:3;1736:14;1730:47;1822:1;1815:4;1806:6;1801:3;1797:16;1793:27;1786:38;1885:4;1878:2;1874:7;1869:2;1861:6;1857:15;1853:29;1848:3;1844:39;1840:50;1833:57;;;1596:300;;;;:::o;2063:2013::-;2626:4;2666:1;2658:6;2655:13;2645:47;;2672:18;;:::i;:::-;2719:6;2708:9;2701:25;2762:3;2757:2;2746:9;2742:18;2735:31;2803:1;2797:3;2786:9;2782:19;2775:30;2841:3;2836:2;2825:9;2821:18;2814:31;2882:1;2876:3;2865:9;2861:19;2854:30;2927:3;2916:9;2912:19;2967:3;2962:2;2951:9;2947:18;2940:31;2991:11;3031:6;3025:13;3067:6;3054:11;3047:27;3105:3;3094:9;3090:19;3083:26;;3168:3;3158:6;3155:1;3151:14;3140:9;3136:30;3132:40;3118:54;;3207:2;3199:6;3195:15;3228:1;3238:718;3252:6;3249:1;3246:13;3238:718;;;3317:22;;;-1:-1:-1;;3313:37:136;3301:50;;3374:13;;3321:6;3486:2;3474:15;;3544:1;3558:289;3574:4;3569:3;3566:13;3558:289;;;3659:6;3651;3647:19;3640:5;3633:34;3694:53;3740:6;3729:8;3723:15;3694:53;:::i;:::-;3790:2;3776:17;;;;3819:14;;;;;3684:63;-1:-1:-1;3598:1:136;3589:11;3558:289;;;-1:-1:-1;3870:6:136;-1:-1:-1;;;3911:2:136;3934:12;;;;3899:15;;;;;3274:1;3267:9;3238:718;;;-1:-1:-1;;;;3993:22:136;;;3987:3;3972:19;;3965:51;1978:1;1966:14;;-1:-1:-1;;;2005:4:136;1996:14;;1989:35;2049:2;2040:12;;4033:37;4025:45;2063:2013;-1:-1:-1;;;;;2063:2013:136:o;4081:230::-;4151:6;4204:2;4192:9;4183:7;4179:23;4175:32;4172:52;;;4220:1;4217;4210:12;4172:52;-1:-1:-1;4265:16:136;;4081:230;-1:-1:-1;4081:230:136:o;4316:1118::-;4371:3;4410:4;4405:3;4401:14;4440:5;4434:12;4472:2;4468;4465:10;4455:44;;4479:18;;:::i;:::-;4508:15;;4569:4;4558:16;;;4552:23;4607:4;4591:14;;;4584:28;4661:19;;4689:20;;;;4736:2;4779:1;4775:14;;;4766:24;;4762:33;;;4818:23;;;;;4727:12;;;-1:-1:-1;4869:537:136;4883:6;4880:1;4877:13;4869:537;;;4950:16;;;-1:-1:-1;;4946:30:136;4932:45;;5000:13;;5036:9;;5075:2;5068:10;;5058:44;;5082:18;;:::i;:::-;5130:2;5122:6;5115:18;;5182:4;5178:2;5174:13;5168:20;5146:42;;5227:4;5220;5212:6;5208:17;5201:31;5255:63;5312:4;5304:6;5300:17;5284:14;5255:63;:::i;:::-;5245:73;-1:-1:-1;;5353:4:136;5341:17;;;;5380:16;;;;;4905:1;4898:9;4869:537;;;-1:-1:-1;5422:6:136;;4316:1118;-1:-1:-1;;;;;;4316:1118:136:o;5439:1024::-;5809:2;5821:21;;;5891:13;;5794:18;;;5913:22;;;5761:4;;6005;5993:17;;;5966:3;5951:19;;;5761:4;6038:173;6052:6;6049:1;6046:13;6038:173;;;6113:13;;6101:26;;6156:4;6184:17;;;;6147:14;;;;6074:1;6067:9;6038:173;;;6042:3;;6258:9;6253:3;6249:19;6242:4;6231:9;6227:20;6220:49;6292:43;6331:3;6323:6;6292:43;:::i;:::-;6278:57;;;6383:9;6375:6;6371:22;6366:2;6355:9;6351:18;6344:50;6411:46;6450:6;6442;6411:46;:::i;:::-;6403:54;5439:1024;-1:-1:-1;;;;;;5439:1024:136:o;6734:623::-;6988:25;;;7061:4;7049:17;;7044:2;7029:18;;7022:45;6976:2;6961:18;;7102:2;7087:18;;7147:6;6934:4;7181:170;7195:4;7192:1;7189:11;7181:170;;;7257:13;;7245:26;;7300:2;7291:12;;;;7326:15;;;;7215:4;7208:12;7181:170;;;7185:3;;;6734:623;;;;;;:::o;7362:1165::-;7457:6;7510:2;7498:9;7489:7;7485:23;7481:32;7478:52;;;7526:1;7523;7516:12;7478:52;7553:16;;-1:-1:-1;;;;;7581:30:136;;7578:50;;;7624:1;7621;7614:12;7578:50;7647:22;;7700:4;7692:13;;7688:27;-1:-1:-1;7678:55:136;;7729:1;7726;7719:12;7678:55;7756:9;;-1:-1:-1;;;;;7777:30:136;;7774:56;;;7810:18;;:::i;:::-;7892:2;7886:9;7853:1;7849:14;;;;7946:2;7938:11;;-1:-1:-1;;7934:25:136;7922:38;;-1:-1:-1;;;;;7975:34:136;;8011:22;;;7972:62;7969:88;;;8037:18;;:::i;:::-;8073:2;8066:22;8123;;;8173:2;8203:11;;;8199:20;;;8123:22;8161:15;;8231:19;;;8228:39;;;8263:1;8260;8253:12;8228:39;8295:2;8291;8287:11;8276:22;;8307:189;8323:6;8318:3;8315:15;8307:189;;;8413:10;;8436:18;;;8483:2;8340:12;;;;8413:10;;-1:-1:-1;8474:12:136;8307:189;;;-1:-1:-1;8515:6:136;7362:1165;-1:-1:-1;;;;;;7362:1165:136:o;8532:212::-;8574:3;8612:5;8606:12;8656:6;8649:4;8642:5;8638:16;8633:3;8627:36;8718:1;8682:16;;8707:13;;;-1:-1:-1;8682:16:136;;8532:212;-1:-1:-1;8532:212:136:o;8749:422::-;9029:3;9057:30;9083:3;9075:6;9057:30;:::i;:::-;-1:-1:-1;;;9103:2:136;9096:16;9128:37;9162:1;9158:2;9154:10;9146:6;9128:37;:::i;9176:231::-;9325:2;9314:9;9307:21;9288:4;9345:56;9397:2;9386:9;9382:18;9374:6;9345:56;:::i;9176:231::-;3208:35139:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "3208:35139:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7515:32;;;;;;;;;;;;;;-1:-1:-1;;;7515:32:20;;;:7;:32::i;:::-;3208:35139;;7611:325;7693:42;7725:7;;7712:22;;7693:18;:42::i;:::-;7750:47;7769:27;7782:7;;7769:27;;;7750:18;:47::i;:::-;7812:48;7831:28;7844:7;;7831:28;;;7812:18;:48::i;:::-;7875;7894:28;7907:7;;7894:28;;;7875:18;:48::i;:::-;7626:308;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7611:7;:325::i;18149:242::-;;;;;;;;;;-1:-1:-1;18149:242:20;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1229:31:136;;;1211:50;;1199:2;1184:18;18149:242:20;;;;;;;;27812:108;;;;;;;;;;-1:-1:-1;27900:12:20;27812:108;;;-1:-1:-1;;;;;1436:32:136;;;1418:51;;1406:2;1391:18;27812:108:20;1272:203:136;27323:413:20;;;;;;;;;;-1:-1:-1;27323:413:20;;;;;:::i;:::-;;:::i;:::-;;;1996:14:136;;1989:22;1971:41;;1959:2;1944:18;27323:413:20;1831:187:136;9102:125:20;;;;;;;;;;;;;:::i;14281:550::-;;;;;;;;;;-1:-1:-1;14281:550:20;;;;;:::i;:::-;;:::i;:::-;;;;2321:25:136;;;-1:-1:-1;;;;;2382:31:136;;;2377:2;2362:18;;2355:59;2430:18;;;2423:34;2488:2;2473:18;;2466:34;2308:3;2293:19;14281:550:20;2023:483:136;30561:217:20;;;;;;;;;;-1:-1:-1;30561:217:20;;;;;:::i;:::-;;:::i;7952:898::-;;;;;;;;;;-1:-1:-1;7952:898:20;;;;;:::i;:::-;;:::i;34158:200::-;;;;;;;;;;-1:-1:-1;34158:200:20;;;;;:::i;:::-;34326:12;-1:-1:-1;;;;;34309:30:20;;;;;;;34158:200;9567:128;;;;;;;;;;-1:-1:-1;730:6:127;9567:128:20;;24126:178;;;;;;;;;;;;;:::i;:::-;;;4074:6:136;4062:19;;;4044:38;;4032:2;4017:18;24126:178:20;3900:188:136;25003:2109:20;;;:::i;:::-;;;4239:25:136;;;4227:2;4212:18;25003:2109:20;4093:177:136;2293:101:1;;;;;;;;;;;;;:::i;28933:831:20:-;;;;;;;;;;-1:-1:-1;28933:831:20;;;;;:::i;:::-;;:::i;21333:2462::-;;;;;;;;;;-1:-1:-1;21333:2462:20;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;28172:159::-;;;;;;;;;;;;;:::i;10326:614::-;;;;;;;;;;-1:-1:-1;10326:614:20;;;;;:::i;:::-;;:::i;12789:302::-;;;;;;;;;;-1:-1:-1;12789:302:20;;;;;:::i;:::-;;:::i;28339:169::-;;;;;;;;;;-1:-1:-1;28453:7:20;1710:6:1;-1:-1:-1;;;;;1710:6:1;28339:169:20;9567:128;14910:170;;;;;;;;;;;;;:::i;24504:229::-;;;;;;;;;;-1:-1:-1;24504:229:20;;;;;:::i;:::-;;:::i;820:125:127:-;;;;;;;;;;;;;:::i;20559:142:20:-;;;;;;;;;;-1:-1:-1;20666:27:20;20559:142;;15814:630;;;;;;;;;;-1:-1:-1;15814:630:20;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;5894:31:136;;;5876:50;;5957:2;5942:18;;5935:34;;;;5985:18;;;5978:34;5864:2;5849:18;15814:630:20;5646:372:136;11715:387:20;;;;;;;;;;-1:-1:-1;11715:387:20;;;;;:::i;:::-;;:::i;19529:485::-;;;;;;;;;;;;;:::i;:::-;;;;6276:8:136;6264:21;;;;6246:40;;6334:6;6322:19;;;6317:2;6302:18;;6295:47;6378:19;;;;6358:18;;;6351:47;-1:-1:-1;;;;;6434:31:136;6429:2;6414:18;;6407:59;6233:3;6218:19;19529:485:20;6023:449:136;347:149:14;;;;;;;;;;-1:-1:-1;347:149:14;;-1:-1:-1;;;6621:52:136;;6609:2;6594:18;347:149:14;6477:202:136;11362:198:20;;;;;;;;;;;;;:::i;5545:122::-;;;;;;;;;;-1:-1:-1;5633:26:20;;;;;;;;;;;;-1:-1:-1;;;5633:26:20;;;;5545:122;;;;;;;:::i;17388:412::-;;;;;;;;;;-1:-1:-1;17388:412:20;;;;;:::i;:::-;;:::i;29772:779::-;;;;;;;;;;-1:-1:-1;29772:779:20;;;;;:::i;:::-;;:::i;31457:2469::-;;;;;;;;;;-1:-1:-1;31457:2469:20;;;;;:::i;:::-;;:::i;20169:228::-;;;;;;;;;;;;;:::i;16724:377::-;;;;;;;;;;-1:-1:-1;16724:377:20;;;;;:::i;:::-;;:::i;28516:193::-;;;;;;;;;;;;;:::i;18502:455::-;;;;;;;;;;-1:-1:-1;18502:455:20;;;;;:::i;:::-;;:::i;28721:204::-;;;;;;;;;;-1:-1:-1;28721:204:20;;;;;:::i;:::-;;:::i;608:229:63:-;5633:26:20;;;;;;;;;;;;-1:-1:-1;;;5633:26:20;;;;794:8:63;710:107;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;710:107:63;;;;;;;;;;-1:-1:-1;;;682:147:63;;;;;;;:::i;:::-;;;;;;;;49458:397:116;49579:12;;;49589:1;49579:12;;;;;;;;;49530:13;;49561:15;;49579:12;;;;;;;;;;;-1:-1:-1;;49561:30:116;-1:-1:-1;49602:8:116;49619:7;49624:2;49619;:7;:::i;:::-;49613:19;;49630:2;49613:19;:::i;:::-;49602:30;-1:-1:-1;49643:8:116;49660:7;49665:2;49660;:7;:::i;:::-;49654:19;;49671:2;49654:19;:::i;:::-;49643:30;;49693:2;49688;:7;;;49684:33;;;49710:7;49716:1;49710:7;;:::i;:::-;;;49684:33;49737:2;49732;:7;;;49728:33;;;49754:7;49760:1;49754:7;;:::i;:::-;;;49728:33;49787:2;49780:10;;49772:2;49775:1;49772:5;;;;;;;;:::i;:::-;;;;:18;-1:-1:-1;;;;;49772:18:116;;;;;;;;;49816:2;49809:10;;49801:2;49804:1;49801:5;;;;;;;;:::i;:::-;;;;:18;-1:-1:-1;;;;;49801:18:116;;;;;;;;-1:-1:-1;49844:2:116;;49458:397;-1:-1:-1;;;;49458:397:116:o;18149:242:20:-;18265:14;18338:34;18359:12;18338:20;:34::i;:::-;18297:86;18149:242;-1:-1:-1;;18149:242:20:o;27323:413::-;27469:4;27513:25;27526:11;27513:12;:25::i;:::-;:204;;;;;27639:11;27680:16;27606:110;;;;;;;;10754:25:136;;;-1:-1:-1;;;;;;10815:41:136;10810:2;10795:18;;10788:69;10742:2;10727:18;;10582:281;27606:110:20;;;;;;;;;;;;;27596:121;;;;;;27559:33;27580:11;27559:20;:33::i;:::-;:158;27513:204;27491:237;27323:413;-1:-1:-1;;;27323:413:20:o;9102:125::-;9163:4;9218:1;9187:11;:9;:11::i;:::-;:28;-1:-1:-1;;;9187:28:20;;;;:32;;;-1:-1:-1;9102:125:20:o;14281:550::-;14419:24;14458:33;14506:38;14559:25;14707:12;-1:-1:-1;;;;;14687:68:20;;14774:34;14795:12;14774:20;:34::i;:::-;14687:136;;-1:-1:-1;;;;;;14687:136:20;;;;;;;-1:-1:-1;;;;;1229:31:136;;;14687:136:20;;;1211:50:136;1184:18;;14687:136:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14612:211;;;;-1:-1:-1;14612:211:20;;-1:-1:-1;14612:211:20;;-1:-1:-1;14281:550:20;-1:-1:-1;;14281:550:20:o;30561:217::-;1531:13:1;:11;:13::i;:::-;30747:23:20::1;30710:11;:9;:11::i;:::-;:34;;;:60;;;;;;;;;;;;;;;;;;30561:217:::0;:::o;7952:898::-;8108:14;365:8:127;:6;:8::i;:::-;357:45;;;;-1:-1:-1;;;357:45:127;;11939:2:136;357:45:127;;;11921:21:136;11978:2;11958:18;;;11951:30;-1:-1:-1;;;11997:18:136;;;11990:54;12061:18;;357:45:127;11737:348:136;357:45:127;4158:30:0::1;4191:26;:24;:26::i;:::-;4302:15:::0;;4158:59;;-1:-1:-1;4302:15:0::1;-1:-1:-1::0;;;4302:15:0;::::1;;4301:16;::::0;-1:-1:-1;;;;;4348:14:0::1;4279:19;4724:16:::0;;:34;::::1;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1::0;;;;;4788:16:0::1;4803:1;4788:16;:50;;;;-1:-1:-1::0;4816:4:0::1;4808:25;:30:::0;4788:50:::1;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1::0;;;4906:23:0::1;;;;;;;;;;;4849:91;4949:18:::0;;-1:-1:-1;;4949:18:0::1;4966:1;4949:18;::::0;;4977:67;::::1;;;5011:22:::0;;-1:-1:-1;;;;5011:22:0::1;-1:-1:-1::0;;;5011:22:0::1;::::0;;4977:67:::1;8140:86:20::2;::::0;;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;8140:86:20::2;::::0;::::2;::::0;::::2;::::0;-1:-1:-1;;;;;8163:22:20;::::2;::::0;::::2;::::0;8140:8:::2;:86::i;:::-;8237:28;8256:8;8237:18;:28::i;:::-;8286:151;8338:1;8309:26;::::0;;;::::2;::::0;::::2;;:::i;:::-;:30;;;:84;;;;-1:-1:-1::0;8390:3:20::2;8360:26;::::0;;;::::2;::::0;::::2;;:::i;:::-;:33;;;;8309:84;8286:151;;;;;;;;;;;;;-1:-1:-1::0;;;8286:151:20::2;;::::0;:8:::2;:151::i;:::-;8479:26;;::::0;::::2;:9:::0;:26:::2;:::i;:::-;8448:11;:9;:11::i;:::-;:57:::0;;-1:-1:-1;;8448:57:20::2;;::::0;;;::::2;::::0;;;::::2;::::0;;8549:28:::2;::::0;;;::::2;::::0;::::2;;:::i;:::-;8516:11;:9;:11::i;:::-;:61:::0;;::::2;::::0;;;::::2;::::0;::::2;-1:-1:-1::0;;8516:61:20;;::::2;::::0;;;::::2;::::0;;8619:26:::2;::::0;;;::::2;::::0;::::2;;:::i;:::-;8588:11;:9;:11::i;:::-;:57:::0;;::::2;::::0;;;::::2;-1:-1:-1::0;;;8588:57:20::2;-1:-1:-1::0;;;;8588:57:20;;::::2;::::0;;;::::2;::::0;;8687:26:::2;::::0;;;::::2;::::0;::::2;;:::i;:::-;8656:11;:9;:11::i;:::-;:57:::0;;-1:-1:-1;;;;;8656:57:20;;;::::2;-1:-1:-1::0;;;8656:57:20::2;-1:-1:-1::0;;;;8656:57:20;;::::2;::::0;;;::::2;::::0;;8761:32:::2;::::0;;;::::2;::::0;::::2;;:::i;:::-;8724:11;:9;:11::i;:::-;:34;;;:69;;;;;;;;;;;;;;;;;;8836:4;8806:36;;5068:14:0::1;5064:101;;;5098:23:::0;;-1:-1:-1;;;;5098:23:0::1;::::0;;5140:14:::1;::::0;-1:-1:-1;1211:50:136;;5140:14:0::1;::::0;1199:2:136;1184:18;5140:14:0::1;;;;;;;5064:101;4092:1079;;;;;7952:898:20::0;;;;:::o;9675:12::-;9668:19;;9567:128;:::o;24126:178::-;24231:6;24262:11;:9;:11::i;:::-;:34;;;-1:-1:-1;;;24262:34:20;;;;;;-1:-1:-1;24126:178:20:o;25003:2109::-;25094:21;;25183:12;;25210:11;:9;:11::i;:::-;:30;-1:-1:-1;;;25210:30:20;;-1:-1:-1;;;;;25210:30:20;:45;25206:1734;;;25288:9;25272:25;;25409:12;-1:-1:-1;;;;;25389:55:20;;25470:9;25513:27;25559:246;;;;;;;;4145:2;25559:246;;;;;;25688:11;:9;:11::i;:::-;:28;-1:-1:-1;;;25688:28:20;;;;25559:246;;;;25757:11;:9;:11::i;:::-;:28;-1:-1:-1;;;25757:28:20;;-1:-1:-1;;;;;25757:28:20;25559:246;;25824:148;;;;;;;;;25886:4;25824:148;;;;;25924:11;:9;:11::i;:::-;:28;;;;;25824:148;;;25389:598;;;;;;;-1:-1:-1;;;;;;25389:598:20;;;;;;13095:25:136;;;;13160:13;;13175:6;13156:26;;;13136:18;;;13129:54;13151:2;13229:15;;;13223:22;13219:35;;;13199:18;;;13192:63;13301:15;;13295:22;-1:-1:-1;;;;;13291:47:136;13271:18;;;13264:75;13380:13;;-1:-1:-1;;;;;13376:39:136;13355:19;;;13348:68;13463:15;;13457:22;13453:37;13432:19;;;13425:66;13067:19;;25389:598:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25378:609;;26056:18;26077:11;:9;:11::i;:::-;:30;-1:-1:-1;;;26077:30:20;;-1:-1:-1;;;;;26077:30:20;;-1:-1:-1;26077:30:20;26152:11;:9;:11::i;:::-;:34;;;;:20;;;;;:34;;;;;26201:36;;-1:-1:-1;;;;;26201:36:20;;;-1:-1:-1;;26201:36:20;;;;;;;26252:19;;:40;;;;;;;;;;;;26152:34;-1:-1:-1;26173:12:20;26307:11;:9;:11::i;:::-;:32;;;;:20;;;;;:32;;;;;:65;;-1:-1:-1;;;;;26307:65:20;;;;-1:-1:-1;;;26307:65:20;-1:-1:-1;;;;26307:65:20;;;;;;;;;26427:12;26387:11;:9;:11::i;:::-;:53;;-1:-1:-1;;;;;26387:53:20;;;;-1:-1:-1;;;26387:53:20;-1:-1:-1;;26387:53:20;;;;;;;;;26515:12;26455:11;:9;:11::i;:::-;-1:-1:-1;;;;;26455:57:20;;;;;;:18;;;;;:57;;;;;;;;;:72;;;;26687:145;;26749:12;13939:25:136;;13980:18;;;13973:59;735:10:3;;26687:145:20;;13912:18:136;26687:145:20;;;;;;;25257:1597;;25206:1734;;;26886:11;:9;:11::i;:::-;:34;;;;:20;;;;;:34;;;;;:42;-1:-1:-1;;;;;26886:42:20;;-1:-1:-1;25206:1734:20;27012:9;26996:13;:25;26992:113;;;27046:10;27038:55;27067:25;27079:13;27067:9;:25;:::i;:::-;27038:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26992:113;25122:1990;;25003:2109;:::o;2293:101:1:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;28933:831:20:-;365:8:127;:6;:8::i;:::-;357:45;;;;-1:-1:-1;;;357:45:127;;11939:2:136;357:45:127;;;11921:21:136;11978:2;11958:18;;;11951:30;-1:-1:-1;;;11997:18:136;;;11990:54;12061:18;;357:45:127;11737:348:136;357:45:127;1531:13:1::1;:11;:13::i;:::-;-1:-1:-1::0;;;;;29124:23:20;::::2;::::0;;::::2;::::0;:69:::2;;;29192:1;29168:9;-1:-1:-1::0;;;;;29168:21:20::2;;:25;29124:69;29106:609;;;29247:9;-1:-1:-1::0;;;;;29224:47:20::2;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;29224:49:20::2;::::0;;::::2;;::::0;;::::2;-1:-1:-1::0;;29224:49:20::2;::::0;::::2;::::0;;;::::2;::::0;;::::2;::::0;::::2;:::i;:::-;;;29220:484;;;::::0;;;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29681:23;29220:484;;;29372:4;-1:-1:-1::0;;;;;29337:40:20;::::2;::::0;29333:332:::2;;29402:85;3978:5;29411:58;;:20;:58;;;;29402:85;;;;;;;;;;;;;-1:-1:-1::0;;;29402:85:20::2;;::::0;:8:::2;:85::i;:::-;29533:9;29510:11;:9;:11::i;:::-;:20;;:32:::0;;-1:-1:-1;;;;;;29510:32:20::2;-1:-1:-1::0;;;;;29510:32:20;;;::::2;::::0;;;::::2;::::0;;29596:20;29565:11:::2;:9;:11::i;:::-;:51:::0;;-1:-1:-1;;29565:51:20::2;;::::0;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;28933:831:20;;:::o;29333:332::-:2;29274:406;29220:484;29726:27;;;;;;;;;;;;;;-1:-1:-1::0;;;29726:27:20::2;;::::0;:7:::2;:27::i;:::-;28933:831:::0;;:::o;21333:2462::-;21449:15;21482:27;21512:11;:9;:11::i;:::-;:34;;;;:20;;;;;:34;;;;;;-1:-1:-1;21571:17:20;;;21567:2221;;-1:-1:-1;21612:20:20;;21333:2462;-1:-1:-1;;21333:2462:20:o;21567:2221::-;21664:17;;-1:-1:-1;;;;;21664:17:20;;:22;21660:2128;;21879:87;21916:35;21938:12;21916:21;:35::i;21660:2128::-;21998:17;;-1:-1:-1;;;;;21998:17:20;-1:-1:-1;;21998:37:20;21994:1794;;22277:19;;-1:-1:-1;;;22277:19:20;;-1:-1:-1;;;;;22277:19:20;:23;22273:179;;22347:19;;22328:39;;-1:-1:-1;;;22347:19:20;;-1:-1:-1;;;;;22347:19:20;22328:18;:39::i;22273:179::-;-1:-1:-1;22415:21:20;;21333:2462;-1:-1:-1;;21333:2462:20:o;21994:1794::-;22498:20;;-1:-1:-1;;;22498:20:20;;;;-1:-1:-1;;;;;;22498:34:20;22494:1283;;22919:1;22882:11;:9;:11::i;:::-;:34;;;-1:-1:-1;;;22882:34:20;;;;:38;:131;;;;;22979:11;:9;:11::i;:::-;:34;;;22964:49;;-1:-1:-1;;;22979:34:20;;;;22964:12;:49;:::i;:::-;22949:12;:64;22882:131;:183;;;;-1:-1:-1;23042:19:20;;-1:-1:-1;;;23042:19:20;;-1:-1:-1;;;;;23042:19:20;:23;;22882:183;22856:398;;;23134:19;;23115:39;;-1:-1:-1;;;23134:19:20;;-1:-1:-1;;;;;23134:19:20;23115:18;:39::i;22856:398::-;-1:-1:-1;23210:24:20;;21333:2462;-1:-1:-1;;21333:2462:20:o;22494:1283::-;23621:18;;-1:-1:-1;;;23621:18:20;;-1:-1:-1;;;;;23621:18:20;23605:12;:34;;:137;;23716:26;23605:137;;;23667:21;23575:186;21333:2462;-1:-1:-1;;;21333:2462:20:o;22494:1283::-;21471:2324;21333:2462;;;:::o;28172:159::-;28293:30;:28;:30::i;10326:614::-;10422:14;10485:9;:7;:9::i;:::-;-1:-1:-1;;;;;10461:51:20;;10527:8;10550:371;;;;;;;;10601:11;:9;:11::i;:::-;:28;;;10550:371;;;;10668:11;:9;:11::i;:::-;:30;;;;;;10550:371;;;;10735:11;:9;:11::i;:::-;:28;-1:-1:-1;;;10735:28:20;;;;10550:371;;;;10800:11;:9;:11::i;:::-;:28;-1:-1:-1;;;10800:28:20;;-1:-1:-1;;;;;10800:28:20;10550:371;;;;10871:11;:9;:11::i;:::-;:34;;;-1:-1:-1;;;10871:34:20;;;;;;10550:371;;;10461:471;;;;;;;-1:-1:-1;;;;;;10461:471:20;;;-1:-1:-1;;;;;14841:32:136;;;10461:471:20;;;14823:51:136;14914:13;;14929:8;14910:28;14890:18;;;14883:56;14905:2;14985:15;;14979:22;14975:35;;14955:18;;;14948:63;15057:15;;15051:22;15047:35;;15027:18;;;15020:63;15042:2;15130:15;;15124:22;-1:-1:-1;;;;;15120:47:136;15099:19;;;15092:76;15114:3;15215:16;;;15209:23;15205:36;15184:19;;;15177:65;14795:19;;10461:471:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12789:302::-;12906:7;12991:12;13022:35;13044:12;13022:21;:35::i;:::-;12962:110;;;;;;;;10754:25:136;;;-1:-1:-1;;;;;;10815:41:136;10810:2;10795:18;;10788:69;10742:2;10727:18;;10582:281;12962:110:20;;;;;;;;;;;;;12938:145;;;;;;12931:152;;12789:302;;;:::o;14910:170::-;15010:7;15042:11;:9;:11::i;:::-;:30;-1:-1:-1;;;15042:30:20;;-1:-1:-1;;;;;15042:30:20;;;-1:-1:-1;14910:170:20:o;24504:229::-;24613:4;24693:21;24657:32;24676:12;24657:18;:32::i;:::-;:57;;;;;;;;:::i;:::-;;;24504:229;-1:-1:-1;;24504:229:20:o;820:125:127:-;922:4;-1:-1:-1;;;;;931:6:127;914:23;;;;820:125::o;15814:630:20:-;15943:23;15981:27;16023;16078;16108:11;:9;:11::i;:::-;:34;;;;:20;;;;;:34;;;;;16184:17;;;16235:19;;;-1:-1:-1;;;;;16184:17:20;;;;-1:-1:-1;16108:34:20;;-1:-1:-1;16235:19:20;:24;;:84;;16284:35;16306:12;16284:21;:35::i;:::-;16235:84;;;16262:19;;;;-1:-1:-1;;;;;16262:19:20;16235:84;16352:19;;16213:106;;-1:-1:-1;;;;16352:19:20;;-1:-1:-1;;;;;16352:19:20;;:24;:84;;16401:35;16423:12;16401:21;:35::i;:::-;16352:84;;;16379:19;;-1:-1:-1;;;16379:19:20;;-1:-1:-1;;;;;16379:19:20;16352:84;15814:630;;;;-1:-1:-1;;;15814:630:20:o;11715:387::-;11832:7;11857:16;11896:12;-1:-1:-1;;;;;11876:61:20;;11952:12;11980:11;:9;:11::i;:::-;:28;11876:143;;;;;;-1:-1:-1;;;;;;11876:143:20;;;;;;15425:25:136;;;;11980:28:20;;15466:18:136;;;15459:49;15398:18;;11876:143:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11857:162;;12091:3;12056:11;:9;:11::i;:::-;:30;12050:36;;12056:30;;;;;12050:3;:36;:::i;:::-;12038:49;;;;:8;:49;:::i;:::-;12037:57;;;;:::i;19529:485::-;19643:24;19682:26;19723:24;19762;19836:11;:9;:11::i;:::-;:28;;;19879:11;:9;:11::i;:::-;:30;;;;;;19924:11;:9;:11::i;:::-;:28;-1:-1:-1;;;19924:28:20;;;;19967:11;:9;:11::i;:::-;:28;19814:192;;;;-1:-1:-1;19814:192:20;-1:-1:-1;;;;19967:28:20;;;-1:-1:-1;;;;;19967:28:20;;-1:-1:-1;19529:485:20;-1:-1:-1;19529:485:20:o;11362:198::-;11451:22;11531:11;:9;:11::i;:::-;:20;;;-1:-1:-1;;;;;11531:20:20;;11362:198;-1:-1:-1;11362:198:20:o;17388:412::-;17506:7;17531:15;17549:11;:9;:11::i;:::-;:30;-1:-1:-1;;;17549:30:20;;-1:-1:-1;;;;;17549:30:20;;-1:-1:-1;17598:22:20;;;:183;;17710:71;17727:12;17741:11;:9;:11::i;:::-;:29;;;;:20;;;;;:29;;;;;:39;;;-1:-1:-1;;;;;17741:39:20;17710:16;:71::i;:::-;17598:183;;29772:779;1531:13:1;:11;:13::i;:::-;30082:215:20::1;3978:5;30105:55;::::0;::::1;;::::0;::::1;::::0;:100:::1;;;30204:1;30181:20;:24;;;30105:100;:149;;;;;30251:3;30227:20;:27;;;;30105:149;30082:215;;;;;;;;;;;;;-1:-1:-1::0;;;30082:215:20::1;;::::0;:8:::1;:215::i;:::-;30339:17;30308:11;:9;:11::i;:::-;:48:::0;;-1:-1:-1;;30308:48:20::1;;::::0;;;::::1;::::0;;;::::1;::::0;;30400:19;30367:11:::1;:9;:11::i;:::-;:52:::0;;::::1;::::0;;;::::1;::::0;::::1;-1:-1:-1::0;;30367:52:20;;::::1;::::0;;;::::1;::::0;;30461:20;30430:11:::1;:9;:11::i;:::-;:51:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;30430:51:20::1;-1:-1:-1::0;;;;30430:51:20;;::::1;::::0;;;::::1;::::0;;30523:20;30492:11:::1;:9;:11::i;:::-;:51:::0;;-1:-1:-1;;;;;30492:51:20;;;::::1;-1:-1:-1::0;;;30492:51:20::1;-1:-1:-1::0;;;;30492:51:20;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;29772:779:20:o;31457:2469::-;31636:23;31662:11;:9;:11::i;:::-;:18;;:56;31708:7;-1:-1:-1;;;;;31662:56:20;-1:-1:-1;;;;;31662:56:20;;;;;;;;;;;;;31636:82;;31729:46;31756:1;31738:15;:19;31729:46;;;;;;;;;;;;;-1:-1:-1;;;31729:46:20;;;:8;:46::i;:::-;31786:54;34326:12;-1:-1:-1;;;;;34309:30:20;31810:10;34309:30;31786:54;;;;;;;;;;;;;-1:-1:-1;;;31786:54:20;;;:8;:54::i;:::-;31853:27;31883:11;:9;:11::i;:::-;:37;;;;:20;;;;;:37;;;;;;-1:-1:-1;31973:44:20;;;;31984:11;31973:44;:::i;:::-;32046:20;;31933:84;;-1:-1:-1;;;;32046:20:20;;;;-1:-1:-1;;;;;;32046:25:20;;:84;;;;;32129:1;32092:11;:9;:11::i;:::-;:34;;;-1:-1:-1;;;32092:34:20;;;;:38;32046:84;:172;;;;;32184:11;:9;:11::i;:::-;:34;;;32166:52;;-1:-1:-1;;;32184:34:20;;;;32166:15;:52;:::i;:::-;32151:12;:67;32046:172;:216;;;;-1:-1:-1;32239:19:20;;-1:-1:-1;;;32239:19:20;;-1:-1:-1;;;;;32239:19:20;:23;;32046:216;32028:1891;;;32396:36;;-1:-1:-1;;32396:36:20;-1:-1:-1;;;;;32396:36:20;;;32028:1891;;;32467:18;;32516:19;;:51;;;;;;;;:::i;:::-;;32512:438;;32611:17;;-1:-1:-1;;;;;32592:36:20;;;32611:17;;32592:36;32588:202;;32735:35;;-1:-1:-1;;32735:35:20;-1:-1:-1;;;;;32735:35:20;;;;;32588:202;32829:27;:12;:25;:27::i;:::-;32808:49;;32512:438;;;32898:36;;-1:-1:-1;;32898:36:20;-1:-1:-1;;;;;32898:36:20;;;32512:438;32992:21;;;;32964:50;;33029:34;;-1:-1:-1;;;;;;;;32964:50:20;;;;;;;-1:-1:-1;;;;;33029:34:20;;-1:-1:-1;;;33029:34:20;;;;;;;;-1:-1:-1;33100:11:20;:9;:11::i;:::-;:20;;;-1:-1:-1;;;;;33100:20:20;;-1:-1:-1;33139:23:20;;33135:621;;33332:21;;;;33376:22;;;;33421:21;;;;;33187:292;;-1:-1:-1;;;33187:292:20;;-1:-1:-1;;;;;;20225:41:136;;33187:292:20;;;20207:60:136;20283:18;;;20276:34;;;20326:18;;;20319:34;;;;-1:-1:-1;;;;;20389:31:136;;;20369:18;;;20362:59;20437:19;;;20430:35;-1:-1:-1;;;;;33187:50:20;;;;;20179:19:136;;33187:292:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33183:558;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33483:258;33183:558;33841:21;;;;;33777:130;;;20677:25:136;;;20733:2;20718:18;;20711:34;;;;-1:-1:-1;;;;;;20781:41:136;;20761:18;;;20754:69;33777:130:20;;20650:18:136;33777:130:20;;;;;;;32452:1467;;32028:1891;31625:2301;;;31457:2469;;;:::o;20169:228::-;20246:12;20289;-1:-1:-1;;;;;20278:33:20;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:111;;-1:-1:-1;;;20278:111:20;;20666:27;20278:111;;;4239:25:136;-1:-1:-1;;;;;20278:62:20;;;;;;;4212:18:136;;20278:111:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20278:111:20;;;;;;;;;;;;:::i;16724:377::-;16842:7;16889:11;:9;:11::i;:::-;:34;;;;:20;;;;;:34;;;;;:42;-1:-1:-1;;;;;16889:42:20;:47;:193;;17038:11;:9;:11::i;:::-;:34;;;;:20;;;;;:34;;;;;:44;-1:-1:-1;;;17038:44:20;;-1:-1:-1;;;;;17038:44:20;16889:193;;;16956:62;16973:12;16987:11;:9;:11::i;:::-;:30;-1:-1:-1;;;16987:30:20;;-1:-1:-1;;;;;16987:30:20;16956:16;:62::i;28516:193::-;28642:7;28674:27;889:13:131;;-1:-1:-1;;;;;889:13:131;;809:101;18502:455:20;18634:21;18673:23;18699:32;18718:12;18699:18;:32::i;:::-;18673:58;-1:-1:-1;18757:21:20;18746:7;:32;;;;;;;;:::i;:::-;;18742:208;;18825:12;-1:-1:-1;;;;;18805:65:20;;18889:34;18910:12;18889:20;:34::i;:::-;18805:133;;-1:-1:-1;;;;;;18805:133:20;;;;;;;-1:-1:-1;;;;;1229:31:136;;;18805:133:20;;;1211:50:136;1184:18;;18805:133:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18805:133:20;;;;;;;;;;;;:::i;28721:204::-;1531:13:1;:11;:13::i;:::-;28881:36:20::1;28907:9;28881:25;:36::i;:::-;28721:204:::0;:::o;34616:1084::-;34718:6;34742:27;34772:11;:9;:11::i;:::-;:34;;;;:20;;;;;:34;;;;;34821:17;;34772:34;;-1:-1:-1;;;;;;34821:17:20;:22;;34817:876;;34867:89;34906:35;34928:12;34906:21;:35::i;:::-;34867:20;:89::i;34817:876::-;34980:17;;-1:-1:-1;;;;;34980:17:20;-1:-1:-1;;34980:37:20;34976:717;;35060:19;;-1:-1:-1;;;35060:19:20;;-1:-1:-1;;;;;35060:19:20;:131;;35174:17;;-1:-1:-1;;;;;35174:17:20;35060:131;;;35129:19;;35108:41;;-1:-1:-1;;;35129:19:20;;-1:-1:-1;;;;;35129:19:20;35108:20;:41::i;34976:717::-;35253:20;;-1:-1:-1;;;35253:20:20;;35277:9;35253:20;-1:-1:-1;;;;;;35253:33:20;35249:394;;35370:1;35333:11;:9;:11::i;:::-;:34;;;-1:-1:-1;;;35333:34:20;;;;:38;:132;;;;;35431:11;:9;:11::i;:::-;:34;;;35416:49;;-1:-1:-1;;;35431:34:20;;;;35416:12;:49;:::i;:::-;35401:12;:64;35333:132;:184;;;;-1:-1:-1;35494:19:20;;-1:-1:-1;;;35494:19:20;;-1:-1:-1;;;;;35494:19:20;:23;;35333:184;35307:321;;;35588:19;;35567:41;;-1:-1:-1;;;35588:19:20;;-1:-1:-1;;;;;35588:19:20;35567:20;:41::i;35307:321::-;35664:17;-1:-1:-1;;;;;35664:17:20;;34616:1084;-1:-1:-1;;34616:1084:20:o;38184:160::-;38298:28;;38184:160::o;1796:162:1:-;28453:7:20;1710:6:1;-1:-1:-1;;;;;1710:6:1;735:10:3;1855:23:1;1851:101;;1901:40;;-1:-1:-1;;;1901:40:1;;735:10:3;1901:40:1;;;1418:51:136;1391:18;;1901:40:1;1272:203:136;9071:205:0;9129:30;;3147:66;9186:27;8819:122;440:160:63;537:10;532:61;;564:17;572:8;564:7;:17::i;1480:156:131:-;1570:13;1563:20;;-1:-1:-1;;;;;;1563:20:131;;;1594:34;1619:8;1594:24;:34::i;1721:245::-;735:10:3;;1818:14:131;:12;:14::i;:::-;-1:-1:-1;;;;;1818:24:131;;1814:108;;1859:51;;-1:-1:-1;;;1859:51:131;;22595:2:136;1859:51:131;;;22577:21:136;22634:2;22614:18;;;22607:30;22673:34;22653:18;;;22646:62;-1:-1:-1;;;22724:18:136;;;22717:39;22773:19;;1859:51:131;22393:405:136;1814:108:131;1932:26;1951:6;1932:18;:26::i;1532:382:127:-;1587:17;1622:16;1641:19;3534:4;3528:11;-1:-1:-1;;;3612:79:127;;730:6;3397:16;3797;3790:4;3781:14;;3774:40;-1:-1:-1;;;3901:4:127;3892:14;;3885:90;3528:11;3328:665;1641:19;1622:38;;1760:4;1755:3;1752:1;1745:20;1732:33;-1:-1:-1;;;;;;1802:23:127;;1794:59;;;;-1:-1:-1;;;1794:59:127;;23005:2:136;1794:59:127;;;22987:21:136;23044:2;23024:18;;;23017:30;23083:25;23063:18;;;23056:53;23126:18;;1794:59:127;22803:347:136;1794:59:127;-1:-1:-1;;;;;1869:37:127;;730:6;-1:-1:-1;;;;;1869:37:127;1876:10;-1:-1:-1;;;;;1869:37:127;;;;;;;;;;;1611:303;1532:382;:::o;35708:1557:20:-;35811:18;35847:27;35877:11;:9;:11::i;:::-;:34;;;;:20;;;;;:34;;;;;35926:17;;35877:34;;-1:-1:-1;;;;;;35926:17:20;:22;;35922:1336;;35972:90;36012:35;36034:12;36012:21;:35::i;:::-;35972:21;:90::i;35922:1336::-;36094:17;;-1:-1:-1;;;;;36094:17:20;-1:-1:-1;;36094:37:20;36090:1168;;36175:19;;36148:109;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;36175:19:20;;-1:-1:-1;;;;;36175:19:20;:23;;;36148:8;:109::i;:::-;36319:19;;36279:74;;-1:-1:-1;;;36319:19:20;;-1:-1:-1;;;;;36319:19:20;36279:21;:74::i;36090:1168::-;36385:20;;-1:-1:-1;;;36385:20:20;;36409:9;36385:20;-1:-1:-1;;;;;;36385:33:20;36381:877;;36494:1;36457:11;:9;:11::i;:::-;:34;;;-1:-1:-1;;;36457:34:20;;;;:38;:128;;;;;36551:11;:9;:11::i;:::-;:34;;;36536:49;;-1:-1:-1;;;36551:34:20;;;;36536:12;:49;:::i;:::-;36521:12;:64;36457:128;36435:476;;;36651:19;;36620:138;;;;;;;;;;;;;;;-1:-1:-1;;;36651:19:20;;-1:-1:-1;;;;;36651:19:20;:23;;;36620:138;;;;;;:8;:138::i;36435:476::-;36867:28;;;;;;;;;;;;;;-1:-1:-1;;;36867:28:20;;;:7;:28::i;:::-;36381:877;;;36996:18;;36953:251;;-1:-1:-1;;;;;;;;36996:18:20;;;;36980:12;:34;-1:-1:-1;36980:34:20;;37125:44;;:15;:44::i;:::-;37040:148;;;;;;;;:::i;:::-;;;;;;;;;;;;;36953:8;:251::i;:::-;37226:20;-1:-1:-1;;;37226:20:20;;;;;35708:1557;-1:-1:-1;;35708:1557:20:o;37924:252::-;38007:7;38045;38035;:17;:122;;38091:66;38108:7;38117:11;:9;:11::i;:::-;:29;;;;:20;;;;;:29;;;;;:39;;;-1:-1:-1;;;;;38117:39:20;38091:16;:66::i;29061:214:116:-;29202:7;29155:4;29161:20;27997:17;28009:4;27997:11;:17::i;:::-;27996:18;:72;;;;;28052:16;28035:33;;;;;;;;:::i;:::-;:4;:13;;;:33;;;;;;;;:::i;:::-;;27996:72;27974:146;;;;-1:-1:-1;;;27974:146:116;;23709:2:136;27974:146:116;;;23691:21:136;23748:2;23728:18;;;23721:30;23787:25;23767:18;;;23760:53;23830:18;;27974:146:116;23507:347:136;27974:146:116;29234:33:::1;29244:22;:4;:10;;;:20;:22::i;:::-;29234:9;:33::i;:::-;29227:40;;28151:29:::0;28169:4;:10;;;28151:17;:29::i;:::-;28135:4;:13;;:45;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;29061:214;;;;;:::o;37451:286:20:-;37534:7;37573;37562;:18;;:156;;37652:66;37669:7;37678:11;:9;:11::i;:::-;:29;;;;:20;;;;;:29;;;;;:39;;;-1:-1:-1;;;;;37678:39:20;37652:16;:66::i;37562:156::-;37597:11;:9;:11::i;:::-;:29;;;;:20;;:29;;-1:-1:-1;37597:29:20;;;:39;-1:-1:-1;;;37597:39:20;;-1:-1:-1;;;;;37597:39:20;;37451:286;-1:-1:-1;37451:286:20:o;2543:215:1:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:1;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:1;;2700:1:::1;2672:31;::::0;::::1;1418:51:136::0;1391:18;;2672:31:1::1;1272:203:136::0;2912:187:1;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:1;;;-1:-1:-1;;;;;;3020:17:1;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;50802:536:116:-;50956:20;;;50918:3;50956:20;;;;;;;;;50870:13;;50918:3;50901:14;;50918:3;50956:20;;;;;;;;;;-1:-1:-1;;50932:44:116;-1:-1:-1;50987:6:116;51008:156;51026:15;51050:6;51054:2;51050:1;:6;:::i;:::-;51026:31;-1:-1:-1;51076:6:116;51080:2;51076:1;:6;:::i;:::-;51072:10;-1:-1:-1;51121:14:116;51126:9;51121:2;:14;:::i;:::-;51114:22;;51097:8;51106:4;;;;:::i;:::-;;;51097:14;;;;;;;;:::i;:::-;;;;:39;-1:-1:-1;;;;;51097:39:116;;;;;;;;;51011:137;51156:1;51161;51156:6;51008:156;;51174:16;51203:1;-1:-1:-1;;;;;51193:12:116;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;51193:12:116;-1:-1:-1;51174:31:116;-1:-1:-1;51230:1:116;51216:86;51238:1;51233;:6;51216:86;;51275:8;51284:5;51288:1;51284;:5;:::i;:::-;51275:15;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;51275:15:116;51262:3;51266:5;51270:1;51266;:5;:::i;:::-;51262:10;;;;;;;;:::i;:::-;;;;:28;-1:-1:-1;;;;;51262:28:116;;;;;;;;-1:-1:-1;51241:4:116;;;;:::i;:::-;;;;51216:86;;;-1:-1:-1;51326:3:116;50802:536;-1:-1:-1;;;;;50802:536:116:o;27622:124::-;27690:4;27714:24;27726:4;:11;;;27714;:24::i;10269:921:118:-;10380:19;10342:4;1071:1;1787:8;1769:26;;:4;:14;;;:26;;;1765:101;;1833:14;;;;;1813:45;;-1:-1:-1;;;1813:45:118;;24316:4:136;24304:17;;;1813:45:118;;;24286:36:136;24358:17;;;24338:18;;;24331:45;24259:18;;1813:45:118;24116:266:136;1765:101:118;10422:72:::1;10441:4;:11;;;10461:4;:26;;;10422:10;:72::i;:::-;-1:-1:-1::0;;;;;10411:83:118::1;:8;::::0;::::1;:83:::0;;;-1:-1:-1;;10505:22:118;10501:684:::1;;10626:13;10649:83;10687:4;:11;;;10709:4;:14;;;10649:27;:83::i;:::-;10626:107:::0;-1:-1:-1;1366:16:118::1;10746:19:::0;;::::1;;10742:372;;;10804:11:::0;;:24:::1;::::0;::::1;::::0;;::::1;::::0;:16:::1;:24;:::i;:::-;10787:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;10778:51;;10856:89;10896:4;:11;;;10920:4;:14;;;10856:27;:89::i;:::-;10840:106:::0;-1:-1:-1;1366:16:118::1;10961:19:::0;;::::1;;10957:148;;;11056:11:::0;;11035:6;;11056:24:::1;::::0;::::1;::::0;;::::1;::::0;:16:::1;:24;:::i;:::-;11004:89;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10995:98;;10957:148;10529:592;10501:684;;;11167:8;::::0;::::1;::::0;11143:11;;:34:::1;::::0;::::1;::::0;;::::1;::::0;:16:::1;:34;:::i;:::-;11136:41;;10501:684;10269:921:::0;;;;;:::o;43511:122:116:-;43574:7;43601:24;43614:6;43622:2;43601:12;:24::i;32032:743::-;32111:20;32186:10;:4;2152:11:118;:16;;:23;2130:18;;;;;:45;;;2043:138;32186:10:116;32181:587;;32235:1;32217:4;:14;;;:19;;;32213:544;;32333:14;;;;-1:-1:-1;;;32292:40:116;:56;;;;;;;;;:::i;:::-;;32264:87;;;;;;;;:::i;32213:544::-;32391:4;:14;;;:19;;32409:1;32391:19;32387:370;;32435:4;:26;;;:32;;32465:2;32435:32;:68;;;;32471:4;:26;;;:32;;32501:2;32471:32;32435:68;32431:311;;;-1:-1:-1;32535:19:116;;32032:743;-1:-1:-1;32032:743:116:o;32431:311::-;32632:2;32602:4;:26;;;:32;;;;:68;;;;;32668:2;32638:4;:26;;;:32;;;;32602:68;32598:144;;;-1:-1:-1;32702:20:116;;32032:743;-1:-1:-1;32032:743:116:o;32598:144::-;32032:743;;;:::o;36740:224::-;36803:4;36850:32;36842:4;:40;;;;;;;;:::i;:::-;;:103;;;-1:-1:-1;36911:34:116;36903:4;:42;;;;;;;;:::i;8833:697:118:-;8972:6;9018:2;8994:21;:26;;;8990:77;;;-1:-1:-1;9031:28:118;;;;;8990:77;9077:21;:27;;9102:2;9077:27;9073:75;;9122:18;:6;:16;:18::i;:::-;9115:25;;;;;;9073:75;9158:21;:27;;9183:2;9158:27;9154:76;;9203:19;:6;:17;:19::i;:::-;9196:26;;;;;;9154:76;9240:21;:27;;9265:2;9240:27;9236:76;;9285:19;:6;:17;:19::i;:::-;9278:26;;;;;;9236:76;9322:21;:27;;9347:2;9322:27;9318:76;;9367:19;:6;:17;:19::i;:::-;9360:26;;;;9318:76;9404:21;:27;;9429:2;9404:27;9400:67;;-1:-1:-1;;;;;;9442:17:118;;9400:67;9480:44;;-1:-1:-1;;;9480:44:118;;25024:4:136;25012:17;;9480:44:118;;;24994:36:136;24967:18;;9480:44:118;24850:186:136;19017:541:118;19159:10;19181:17;19201:18;:6;:16;:18::i;:::-;19181:38;;19230:11;:19;;19245:4;19230:19;19226:59;;-1:-1:-1;;;;;19260:17:118;;;;;19226:59;19297;19316:6;19331:11;19345:4;19331:18;19297:10;:59::i;:::-;19291:65;-1:-1:-1;;;;;;19367:17:118;;;;19363:190;;19402:26;;-1:-1:-1;;;19402:26:118;;-1:-1:-1;;;;;1229:31:136;;19402:26:118;;;1211:50:136;1184:18;;19402:26:118;1037:230:136;19363:190:118;19460:16;19446:31;;19460:16;19475:1;19460:16;;;;19446:31;19442:111;;19495:50;;-1:-1:-1;;;19495:50:118;;19516:16;19531:1;19516:16;;;;19495:50;;;24286:36:136;19516:16:118;24358:17:136;;24338:18;;;24331:45;24259:18;;19495:50:118;24116:266:136;19442:111:118;19174:384;19017:541;;;;:::o;5250:934:117:-;5393:19;5351:6;5335;:13;;;:22;;;;:::i;:::-;5359:11;;:18;1004:14;;;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:117;;;;;25215:25:136;;;25256:18;;;25249:34;;;25188:18;;1036:31:117;25041:248:136;1000:75:117;5497:6:::1;-1:-1:-1::0;;;;;5487:17:117::1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;5487:17:117::1;-1:-1:-1::0;5478:26:117;-1:-1:-1;5567:10:117;;5563:616:::1;;5609:11:::0;;5643:13:::1;::::0;;::::1;::::0;;5815:27;;;;;;5874:15;::::1;5963:85;5874:15:::0;5815:27;6033:6;5963::::1;:85::i;:::-;6109:62;6124:6;6141;6158:4;6109;:62::i;:::-;;5579:600;;;;5563:616;5250:934:::0;;;;;;:::o;43641:413:116:-;43742:16;43796:2;43783:9;:15;;;;43776:23;;;;:::i;:::-;43835:9;43863;43847:25;;:6;:13;:25;:53;;43887:6;:13;43847:53;;;43875:9;43847:53;;;43835:65;-1:-1:-1;43920:7:116;43915:121;43938:4;43933:2;:9;43915:121;;;44013:2;44018:1;44013:6;43990;43997:2;43990:10;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;43990:10:116;43982:38;;43970:50;;;;;43944:5;;43915:121;;13731:315:117;13857:11;13808:6;:13;;;13823:6;:11;;;:18;1012:6;1004:5;:14;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:117;;;;;25215:25:136;;;25256:18;;;25249:34;;;25188:18;;1036:31:117;25041:248:136;1000:75:117;13900:11;;13932:13:::1;::::0;::::1;::::0;;13985:25;;;13999:1:::1;13985:25:::0;13979:32;;-1:-1:-1;13932:13:117;;;14024:16:::1;13932:13:::0;14024:16:::1;:::i;:::-;;;::::0;::::1;13873:173;;13731:315:::0;;;;;:::o;14288:323::-;14419:12;14366:6;:13;;;14382:1;14366:17;;;;:::i;:::-;14385:11;;:18;1004:14;;;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:117;;;;;25215:25:136;;;25256:18;;;25249:34;;;25188:18;;1036:31:117;25041:248:136;1000:75:117;14463:11;;14495:13:::1;::::0;::::1;::::0;;14562:1:::1;14548:25:::0;;;;;14542:32;;-1:-1:-1;14495:13:117;;14587:18:::1;14562:1:::0;14495:13;14587:18:::1;:::i;:::-;::::0;;-1:-1:-1;14288:323:117;;;-1:-1:-1;;;;;14288:323:117:o;14853:::-;14984:12;14931:6;:13;;;14947:1;14931:17;;;;:::i;:::-;14950:11;;:18;1004:14;;;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:117;;;;;25215:25:136;;;25256:18;;;25249:34;;;25188:18;;1036:31:117;25041:248:136;1000:75:117;15028:11;;15060:13:::1;::::0;::::1;::::0;;15127:1:::1;15113:25:::0;;;;;15107:32;;-1:-1:-1;15060:13:117;;15152:18:::1;15127:1:::0;15060:13;15152:18:::1;:::i;15418:323::-:0;15549:12;15496:6;:13;;;15512:1;15496:17;;;;:::i;:::-;15515:11;;:18;1004:14;;;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:117;;;;;25215:25:136;;;25256:18;;;25249:34;;;25188:18;;1036:31:117;25041:248:136;1000:75:117;15593:11;;15625:13:::1;::::0;::::1;::::0;;15692:1:::1;15678:25:::0;;;;;15672:32;;-1:-1:-1;15625:13:117;;15717:18:::1;15692:1:::0;15625:13;15717:18:::1;:::i;26496:622::-:0;26667:147;26681:2;26674:3;:9;26667:147;;26742:10;;26729:24;;26782:2;26774:10;;;;26795:9;;;;-1:-1:-1;;26685:9:117;26667:147;;;26826:7;;26822:284;;26965:10;;27020:11;;26900:2;:8;;;26892:3;:17;-1:-1:-1;;26892:21:117;26977:10;;26961:27;;;27016:23;;27064:21;27051:35;;26822:284;26496:622;;;:::o;25150:329::-;25320:4;25278:6;25286;:11;;;:18;1012:6;1004:5;:14;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:117;;;;;25215:25:136;;;25256:18;;;25249:34;;;25188:18;;1036:31:117;25041:248:136;1000:75:117;25375:8:::1;25371:54;;;25404:13;::::0;::::1;::::0;25394:23:::1;::::0;;::::1;:::i;:::-;;;25371:54;-1:-1:-1::0;;;;25431:13:117::1;::::0;;;::::1;:22:::0;;;;25150:329::o;14:212:136:-;56:3;94:5;88:12;138:6;131:4;124:5;120:16;115:3;109:36;200:1;164:16;;189:13;;;-1:-1:-1;164:16:136;;14:212;-1:-1:-1;14:212:136:o;231:570::-;-1:-1:-1;;;632:3:136;625:34;607:3;675:120;701:93;727:66;753:39;788:2;783:3;779:12;771:6;753:39;:::i;:::-;745:6;727:66;:::i;:::-;719:6;701:93;:::i;:::-;693:6;675:120;:::i;:::-;668:127;231:570;-1:-1:-1;;;;;;231:570:136:o;806:226::-;865:6;918:2;906:9;897:7;893:23;889:32;886:52;;;934:1;931;924:12;886:52;-1:-1:-1;979:23:136;;806:226;-1:-1:-1;806:226:136:o;1480:346::-;1548:6;1556;1609:2;1597:9;1588:7;1584:23;1580:32;1577:52;;;1625:1;1622;1615:12;1577:52;-1:-1:-1;;1670:23:136;;;1790:2;1775:18;;;1762:32;;-1:-1:-1;1480:346:136:o;2511:159::-;2578:20;;2638:6;2627:18;;2617:29;;2607:57;;2660:1;2657;2650:12;2675:184;2733:6;2786:2;2774:9;2765:7;2761:23;2757:32;2754:52;;;2802:1;2799;2792:12;2754:52;2825:28;2843:9;2825:28;:::i;2864:131::-;-1:-1:-1;;;;;2939:31:136;;2929:42;;2919:70;;2985:1;2982;2975:12;3000:411;3101:6;3109;3153:9;3144:7;3140:23;3183:3;3179:2;3175:12;3172:32;;;3200:1;3197;3190:12;3172:32;3239:9;3226:23;3258:31;3283:5;3258:31;:::i;:::-;3308:5;-1:-1:-1;3347:3:136;-1:-1:-1;;3329:16:136;;3325:26;3322:46;;;3364:1;3361;3354:12;3322:46;;3402:2;3391:9;3387:18;3377:28;;3000:411;;;;;:::o;3648:247::-;3707:6;3760:2;3748:9;3739:7;3735:23;3731:32;3728:52;;;3776:1;3773;3766:12;3728:52;3815:9;3802:23;3834:31;3859:5;3834:31;:::i;4275:161::-;4342:20;;4402:8;4391:20;;4381:31;;4371:59;;4426:1;4423;4416:12;4441:319;4508:6;4516;4569:2;4557:9;4548:7;4544:23;4540:32;4537:52;;;4585:1;4582;4575:12;4537:52;4624:9;4611:23;4643:31;4668:5;4643:31;:::i;:::-;4693:5;-1:-1:-1;4717:37:136;4750:2;4735:18;;4717:37;:::i;:::-;4707:47;;4441:319;;;;;:::o;4765:127::-;4826:10;4821:3;4817:20;4814:1;4807:31;4857:4;4854:1;4847:15;4881:4;4878:1;4871:15;4897:349;5050:2;5035:18;;5083:1;5072:13;;5062:144;;5128:10;5123:3;5119:20;5116:1;5109:31;5163:4;5160:1;5153:15;5191:4;5188:1;5181:15;5062:144;5215:25;;;4897:349;:::o;6924:300::-;6977:3;7015:5;7009:12;7042:6;7037:3;7030:19;7098:6;7091:4;7084:5;7080:16;7073:4;7068:3;7064:14;7058:47;7150:1;7143:4;7134:6;7129:3;7125:16;7121:27;7114:38;7213:4;7206:2;7202:7;7197:2;7189:6;7185:15;7181:29;7176:3;7172:39;7168:50;7161:57;;;6924:300;;;;:::o;7229:231::-;7378:2;7367:9;7360:21;7341:4;7398:56;7450:2;7439:9;7435:18;7427:6;7398:56;:::i;7465:129::-;-1:-1:-1;;;;;7543:5:136;7539:30;7532:5;7529:41;7519:69;;7584:1;7581;7574:12;7599:132;7666:20;;7695:30;7666:20;7695:30;:::i;7736:462::-;7818:6;7826;7834;7842;7895:3;7883:9;7874:7;7870:23;7866:33;7863:53;;;7912:1;7909;7902:12;7863:53;7935:28;7953:9;7935:28;:::i;:::-;7925:38;;7982:37;8015:2;8004:9;8000:18;7982:37;:::i;:::-;7972:47;;8038:37;8071:2;8060:9;8056:18;8038:37;:::i;:::-;8028:47;;8125:2;8114:9;8110:18;8097:32;8138:30;8162:5;8138:30;:::i;:::-;7736:462;;;;-1:-1:-1;7736:462:136;;-1:-1:-1;;7736:462:136:o;8203:700::-;8282:6;8290;8298;8351:2;8339:9;8330:7;8326:23;8322:32;8319:52;;;8367:1;8364;8357:12;8319:52;8412:23;;;-1:-1:-1;8510:2:136;8495:18;;8482:32;-1:-1:-1;;;;;8526:30:136;;8523:50;;;8569:1;8566;8559:12;8523:50;8592:22;;8645:4;8637:13;;8633:27;-1:-1:-1;8623:55:136;;8674:1;8671;8664:12;8623:55;8714:2;8701:16;-1:-1:-1;;;;;8732:6:136;8729:30;8726:50;;;8772:1;8769;8762:12;8726:50;8817:7;8812:2;8803:6;8799:2;8795:15;8791:24;8788:37;8785:57;;;8838:1;8835;8828:12;8785:57;8203:700;;8869:2;8861:11;;;;;-1:-1:-1;8891:6:136;;-1:-1:-1;;;8203:700:136:o;9142:422::-;9422:3;9450:30;9476:3;9468:6;9450:30;:::i;:::-;-1:-1:-1;;;9496:2:136;9489:16;9521:37;9555:1;9551:2;9547:10;9539:6;9521:37;:::i;:::-;9514:44;9142:422;-1:-1:-1;;;;;9142:422:136:o;9569:127::-;9630:10;9625:3;9621:20;9618:1;9611:31;9661:4;9658:1;9651:15;9685:4;9682:1;9675:15;9701:127;9762:10;9757:3;9753:20;9750:1;9743:31;9793:4;9790:1;9783:15;9817:4;9814:1;9807:15;9833:127;9894:10;9889:3;9885:20;9882:1;9875:31;9925:4;9922:1;9915:15;9949:4;9946:1;9939:15;9965:165;10003:1;10037:4;10034:1;10030:12;10061:3;10051:37;;10068:18;;:::i;:::-;10120:3;10113:4;10110:1;10106:12;10102:22;10097:27;;;9965:165;;;;:::o;10135:148::-;10223:4;10202:12;;;10216;;;10198:31;;10241:13;;10238:39;;;10257:18;;:::i;10288:157::-;10318:1;10352:4;10349:1;10345:12;10376:3;10366:37;;10383:18;;:::i;:::-;10435:3;10428:4;10425:1;10421:12;10417:22;10412:27;;;10288:157;;;;:::o;10450:127::-;10511:10;10506:3;10502:20;10499:1;10492:31;10542:4;10539:1;10532:15;10566:4;10563:1;10556:15;11074:658;11239:6;11247;11255;11263;11316:3;11304:9;11295:7;11291:23;11287:33;11284:53;;;11333:1;11330;11323:12;11284:53;11378:16;;11484:2;11469:18;;11463:25;11559:2;11544:18;;11538:25;11378:16;;-1:-1:-1;11463:25:136;-1:-1:-1;11572:32:136;11538:25;11572:32;:::i;:::-;11696:2;11681:18;;;;11675:25;11074:658;;;;-1:-1:-1;;;11074:658:136:o;12090:184::-;12148:6;12201:2;12189:9;12180:7;12176:23;12172:32;12169:52;;;12217:1;12214;12207:12;12169:52;12240:28;12258:9;12240:28;:::i;12279:245::-;12337:6;12390:2;12378:9;12369:7;12365:23;12361:32;12358:52;;;12406:1;12403;12396:12;12358:52;12445:9;12432:23;12464:30;12488:5;12464:30;:::i;13502:230::-;13572:6;13625:2;13613:9;13604:7;13600:23;13596:32;13593:52;;;13641:1;13638;13631:12;13593:52;-1:-1:-1;13686:16:136;;13502:230;-1:-1:-1;13502:230:136:o;14043:128::-;14110:9;;;14131:11;;;14128:37;;;14145:18;;:::i;14176:275::-;14270:6;14323:2;14311:9;14302:7;14298:23;14294:32;14291:52;;;14339:1;14336;14329:12;14291:52;14371:9;14365:16;14390:31;14415:5;14390:31;:::i;14456:125::-;14521:9;;;14542:10;;;14539:36;;;14555:18;;:::i;15519:155::-;15610:6;15587:14;;;15603;;;15583:35;;15630:15;;15627:41;;;15648:18;;:::i;15679:168::-;15752:9;;;15783;;15800:15;;;15794:22;;15780:37;15770:71;;15821:18;;:::i;15852:120::-;15892:1;15918;15908:35;;15923:18;;:::i;:::-;-1:-1:-1;15957:9:136;;15852:120::o;15977:253::-;16049:2;16043:9;16091:4;16079:17;;-1:-1:-1;;;;;16111:34:136;;16147:22;;;16108:62;16105:88;;;16173:18;;:::i;:::-;16209:2;16202:22;15977:253;:::o;16235:257::-;16307:4;16301:11;;;16339:17;;-1:-1:-1;;;;;16371:34:136;;16407:22;;;16368:62;16365:88;;;16433:18;;:::i;16497:275::-;16568:2;16562:9;16633:2;16614:13;;-1:-1:-1;;16610:27:136;16598:40;;-1:-1:-1;;;;;16653:34:136;;16689:22;;;16650:62;16647:88;;;16715:18;;:::i;:::-;16751:2;16744:22;16497:275;;-1:-1:-1;16497:275:136:o;16777:156::-;16857:20;;16906:2;16896:13;;16886:41;;16923:1;16920;16913:12;16938:186;16986:4;-1:-1:-1;;;;;17011:6:136;17008:30;17005:56;;;17041:18;;:::i;:::-;-1:-1:-1;17107:2:136;17086:15;-1:-1:-1;;17082:29:136;17113:4;17078:40;;16938:186::o;17129:156::-;17195:20;;17255:4;17244:16;;17234:27;;17224:55;;17275:1;17272;17265:12;17290:1464;17341:5;17389:4;17377:9;17372:3;17368:19;17364:30;17361:50;;;17407:1;17404;17397:12;17361:50;17429:22;;:::i;:::-;17420:31;;17487:9;17474:23;-1:-1:-1;;;;;17512:6:136;17509:30;17506:50;;;17552:1;17549;17542:12;17506:50;17575:22;;17627:4;17613:12;;;17609:23;17606:43;;;17645:1;17642;17635:12;17606:43;17673:22;;:::i;:::-;17733:2;17720:16;-1:-1:-1;;;;;17751:8:136;17748:32;17745:52;;;17793:1;17790;17783:12;17745:52;17816:17;;17864:4;17856:13;;17852:23;-1:-1:-1;17842:51:136;;17889:1;17886;17879:12;17842:51;17929:2;17916:16;17954:52;17970:35;17998:6;17970:35;:::i;:::-;17954:52;:::i;:::-;18029:6;18022:5;18015:21;18079:3;18072:4;18063:6;18059:2;18055:15;18051:26;18048:35;18045:55;;;18096:1;18093;18086:12;18045:55;18155:6;18148:4;18144:2;18140:13;18133:4;18126:5;18122:16;18109:53;18209:1;18202:4;18182:18;;;18178:29;;18171:40;18220:22;;18300:13;;;18287:27;18330:18;;;18323:35;-1:-1:-1;18367:22:136;;18423:38;;18440:20;;18423:38;:::i;:::-;18416:4;18409:5;18405:16;18398:64;18496:38;18528:4;18517:9;18513:20;18496:38;:::i;:::-;18489:4;18482:5;18478:16;18471:64;18567:36;18599:2;18588:9;18584:18;18567:36;:::i;:::-;18562:2;18555:5;18551:14;18544:60;18637:38;18670:3;18659:9;18655:19;18637:38;:::i;:::-;18631:3;18624:5;18620:15;18613:63;18709:38;18742:3;18731:9;18727:19;18709:38;:::i;:::-;18703:3;18696:5;18692:15;18685:63;17290:1464;;;;:::o;18759:1118::-;18847:6;18900:2;18888:9;18879:7;18875:23;18871:32;18868:52;;;18916:1;18913;18906:12;18868:52;18956:9;18943:23;-1:-1:-1;;;;;18981:6:136;18978:30;18975:50;;;19021:1;19018;19011:12;18975:50;19044:22;;19100:4;19082:16;;;19078:27;19075:47;;;19118:1;19115;19108:12;19075:47;19144:22;;:::i;:::-;19203:2;19190:16;19237:3;19228:7;19225:16;19215:44;;19255:1;19252;19245:12;19215:44;19268:22;;19322:43;19361:2;19353:11;;19322:43;:::i;:::-;19317:2;19306:14;;19299:67;19432:2;19424:11;;;19411:25;19452:14;;;19445:31;19542:2;19534:11;;;19521:25;19562:14;;;19555:31;19619;19645:3;19637:12;;19619:31;:::i;:::-;19613:3;19606:5;19602:15;19595:56;19697:3;19693:2;19689:12;19676:26;-1:-1:-1;;;;;19717:8:136;19714:32;19711:52;;;19759:1;19756;19749:12;19711:52;19796:50;19838:7;19827:8;19823:2;19819:17;19796:50;:::i;:::-;19790:3;19779:15;;19772:75;-1:-1:-1;19783:5:136;18759:1118;-1:-1:-1;;;;18759:1118:136:o;21123:340::-;21198:5;21227:52;21243:35;21271:6;21243:35;:::i;21227:52::-;21218:61;;21302:6;21295:5;21288:21;21342:3;21333:6;21328:3;21324:16;21321:25;21318:45;;;21359:1;21356;21349:12;21318:45;21401:6;21396:3;21389:4;21382:5;21378:16;21372:36;21455:1;21448:4;21439:6;21432:5;21428:18;21424:29;21417:40;21123:340;;;;;:::o;21468:457::-;21547:6;21600:2;21588:9;21579:7;21575:23;21571:32;21568:52;;;21616:1;21613;21606:12;21568:52;21649:9;21643:16;-1:-1:-1;;;;;21674:6:136;21671:30;21668:50;;;21714:1;21711;21704:12;21668:50;21737:22;;21790:4;21782:13;;21778:27;-1:-1:-1;21768:55:136;;21819:1;21816;21809:12;21768:55;21842:77;21911:7;21906:2;21900:9;21895:2;21891;21887:11;21842:77;:::i;:::-;21832:87;21468:457;-1:-1:-1;;;;21468:457:136:o;23155:347::-;-1:-1:-1;;;23412:3:136;23405:36;23387:3;23457:39;23492:2;23487:3;23483:12;23475:6;23457:39;:::i;23859:112::-;23891:1;23917;23907:35;;23922:18;;:::i;:::-;-1:-1:-1;23956:9:136;;23859:112::o;23976:135::-;24015:3;24036:17;;;24033:43;;24056:18;;:::i;:::-;-1:-1:-1;24103:1:136;24092:13;;23976:135::o;24387:190::-;24516:3;24541:30;24567:3;24559:6;24541:30;:::i;24582:263::-;24757:3;24782:57;24808:30;24834:3;24826:6;24808:30;:::i;25294:127::-;25355:10;25350:3;25346:20;25343:1;25336:31;25386:4;25383:1;25376:15;25410:4;25407:1;25400:15",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.8.0 <0.9.0;\r\n\r\nimport {\r\n    IWitOracle, \r\n    IWitOracleAppliance,\r\n    IWitOracleQueriable,\r\n    IWitOracleRadonRegistry,\r\n    Witnet\r\n} from \"../WitOracle.sol\";\r\n\r\nimport { \r\n    IWitRandomness, \r\n    IWitRandomnessAdmin, \r\n    IWitRandomnessConsumer, \r\n    WitRandomness\r\n} from \"../WitRandomness.sol\";\r\n\r\nimport {Clonable} from \"../patterns/Clonable.sol\";\r\nimport {Ownable, Ownable2Step} from \"../patterns/Ownable2Step.sol\";\r\n\r\n/// @title WitRandomnessV3: Unbiased, EVM-agnostic and provably-fair random seeds from the Witnet blockchain. \r\n/// \r\n/// 64-bit entropy seeds can be permissionless pulled at anytime from smart contracts and externally-owned EVM accounts.\r\n/// \r\n/// Randomness provisioning is securely protected against race-condition and malleability attacks by node validators\r\n/// on both EVM and Witnet blockchains. \r\n///\r\n/// This contract acts also as a public-good registry, openly preserving all random seeds generated in the past,\r\n/// and providing after-the-fact traceability proof to the actual witnessing committees and punishable acts that took\r\n/// place on the Witnet blockchain for generating every single one of them.\r\n///\r\n/// @dev Protection against race-condition and malleability attacks requires randomness queried to this contract\r\n/// to be solved is an asynchronous way, meaning that after some randomness is requested, the result provided\r\n/// from the Wit/Oracle sidechain won't be ready until a certain amount of EVM blocks have elapsed. \r\n/// This protection also implies that eventually failing randomness requests on the Wit/Oracle sidechain \r\n/// cannot be retried but from this very same contract. Failing randomness requests will get all automatically\r\n/// and unbiasedly solved as soon as some new randomness request gets solved, even if paid by a different requester.\r\n///\r\n/// Querying for new randomness requires paying a fee in native EVM gas currency, as to cover the implicit cost of\r\n/// solving unmalleable randomness on the Wit/Oracle sidechain and report it back to the EVM storage. The actual \r\n/// randomize fee depends on the expected gas price to pay for the EVM transaction that would eventually include \r\n/// a call to any of the `randomize(..)` methods of this contract. The randomize fee can be computed by passing\r\n/// the expected gas price value to the `estimateRandomizeFee(uint256)` method.\r\n///\r\n/// > Note [1]: On highly volatile gas price markets, especially on some Layer-2 EVM chains, is highly recommended\r\n/// to estimate the randomize fee before a `randomize()` call, and pass a fresh EVM gas price value. Otherwise\r\n/// the call to `randomize()` could potentially revert with either \"insufficient reward\" or \"too much reward\".\r\n///\r\n/// > Note [2]: Contracts requiring some external entity to report Witnet-certified randomness only when required,\r\n/// would need to implement the `IWitRandomnessConsumer`. The external entity would then have to clone the \r\n/// public-domain address, attach it to the consumer contract address, and get the `randomize()` function\r\n/// called on the cloned instance as many times as required.\r\n///\r\n/// @author The Witnet Foundation.\r\ncontract WitRandomnessV3\r\n    is\r\n        Clonable,\r\n        Ownable2Step,\r\n        WitRandomness\r\n{\r\n    using Witnet for Witnet.DataResult;\r\n    \r\n    /// @notice Unique identifier of the RNG data request used on the Witnet blockchain for solving randomness.\r\n    /// @dev Can be used to track all randomness requests solved so far on the Witnet blockchain.\r\n    Witnet.RadonHash internal immutable __WIT_ORACLE_RNG_RADON_HASH;\r\n\r\n    /// @dev Default number of blocks after a randomize request to consider it delayed if not solved yet.\r\n    uint16 internal constant _DEFAULT_RANDOMIZE_WAITING_BLOCKS = 256;\r\n\r\n    /// @dev Minimum acceptable callback gas limit that can be settled by the `owner()`. \r\n    uint24 internal constant _WIT_ORACLE_MIN_CALLBACK_GAS_LIMIT = 50000;\r\n\r\n    /// @dev Size of successful CBOR-encoded randomness generated by the Witnet blockchain. \r\n    uint16 internal constant _WIT_ORACLE_RNG_MAX_RESULT_SIZE = 34;\r\n\r\n    /// @dev Storage slot pointer\r\n    bytes32 private constant _WIT_RANDOMNESS_STORAGE_SLOT = \r\n        // keccak256(\"io.witnet.apps.randomness.v3\") & ~bytes32(uint256(0xff) \r\n        0x43025ad356942e949bc1eab02ffb42d0642f59c8829febfec0169ebcda390700;\r\n\r\n    /// Randomize records\r\n    struct Randomize {\r\n        uint64 queryId;\r\n        uint64 finality;\r\n        uint64 nextBlock;\r\n        bytes8 randomness;\r\n        uint64 prevBlock;\r\n    }\r\n\r\n    /// Initialization parameters for clones\r\n    struct CloneSettings {\r\n        uint24 callbackGasLimit;\r\n        uint16 extraFeePercentage;\r\n        uint16 witCommitteeSize;\r\n        uint64 witInclusionFees;\r\n        uint16 randomizeWaitingBlocks;\r\n    }\r\n\r\n    /// Data storage layout \r\n    struct Storage {\r\n        uint24 callbackGasLimit;\r\n        uint16 extraFeePercentage;\r\n        uint64 lastRandomizeBlock;\r\n        uint16 witCommitteeSize;\r\n        uint64 witInclusionFees;\r\n        uint72 _0;\r\n        address consumer;\r\n        uint16 randomizeWaitingBlocks;\r\n        uint80 _1;\r\n        mapping (Witnet.QueryId => uint256) blocks;\r\n        mapping (uint256 => Randomize) requests;\r\n    }\r\n\r\n    /// @notice Returns the WitOracle address that this appliance is bound to.\r\n    address immutable internal __WIT_ORACLE;\r\n\r\n    /// @notice Returns the name of the actual contract implementing the logic of this Witnet appliance.\r\n    function class() virtual override public pure returns (string memory) {\r\n        return type(WitRandomnessV3).name;\r\n    }\r\n\r\n    constructor(\r\n            address _witOracle,\r\n            address _operator\r\n        )\r\n        Ownable(_operator)\r\n    {\r\n        _require(\r\n            _witOracle.code.length > 0\r\n                && IWitOracleAppliance(_witOracle).specs() == (\r\n                    type(IWitOracle).interfaceId\r\n                        ^ type(IWitOracleQueriable).interfaceId\r\n                ), \r\n            \"uncompliant WitOracle\"\r\n        );\r\n        __WIT_ORACLE = _witOracle;\r\n\r\n        // Build Witnet-compliant randomness request:\r\n        IWitOracleRadonRegistry _witOracleRadonRegistry = IWitOracle(_witOracle).registry();\r\n        __WIT_ORACLE_RNG_RADON_HASH = _witOracleRadonRegistry.verifyRadonRequest(\r\n            Witnet.intoMemArray([\r\n                _witOracleRadonRegistry.verifyRadonRetrieval(\r\n                    Witnet.RadonRetrievalMethods.RNG,\r\n                    \"\", // no request url\r\n                    \"\", // no request body\r\n                    new string[2][](0), // no request headers\r\n                    hex\"80\" // no request Radon script\r\n                )\r\n            ]),\r\n            Witnet.RadonReducer({\r\n                opcode: Witnet.RadonReduceOpcodes.Mode,\r\n                filters: new Witnet.RadonFilter[](0)\r\n            }),\r\n            Witnet.RadonReducer({\r\n                opcode: Witnet.RadonReduceOpcodes.ConcatenateAndHash,\r\n                filters: new Witnet.RadonFilter[](0)\r\n            })\r\n        );\r\n\r\n        // Initialize settings:\r\n        __storage().extraFeePercentage = 10; // 10 %\r\n        __storage().callbackGasLimit = _WIT_ORACLE_MIN_CALLBACK_GAS_LIMIT;\r\n        __storage().randomizeWaitingBlocks = _DEFAULT_RANDOMIZE_WAITING_BLOCKS;\r\n        __storage().witCommitteeSize = 3;\r\n        __storage().witInclusionFees = 0;\r\n    }\r\n\r\n    receive() virtual external payable {\r\n        _revert(\"no transfers accepted\");\r\n    }\r\n\r\n    fallback() virtual external payable { \r\n        _revert(string(abi.encodePacked(\r\n            \"not implemented: 0x\",\r\n            Witnet.toHexString(uint8(bytes1(msg.sig))),\r\n            Witnet.toHexString(uint8(bytes1(msg.sig << 8))),\r\n            Witnet.toHexString(uint8(bytes1(msg.sig << 16))),\r\n            Witnet.toHexString(uint8(bytes1(msg.sig << 24)))\r\n        )));\r\n    }\r\n\r\n    function initializeClone(address _curator, CloneSettings calldata _settings)\r\n        external\r\n        onlyOnClones\r\n        initializer\r\n        returns (IWitRandomness)\r\n    {\r\n        _require(\r\n            _curator != address(0), \r\n            \"zero curator\"\r\n        );\r\n        _transferOwnership(_curator);\r\n        \r\n        _require(\r\n            _settings.witCommitteeSize > 0\r\n                && _settings.witCommitteeSize <= 127,\r\n            \"invalid settings\"\r\n        );\r\n        __storage().callbackGasLimit = _settings.callbackGasLimit;\r\n        __storage().extraFeePercentage = _settings.extraFeePercentage;\r\n        __storage().witCommitteeSize = _settings.witCommitteeSize;\r\n        __storage().witInclusionFees = _settings.witInclusionFees;\r\n        __storage().randomizeWaitingBlocks = _settings.randomizeWaitingBlocks;\r\n\r\n        return IWitRandomness(address(this));\r\n    }\r\n\r\n    /// ===============================================================================================================\r\n    /// --- Clonable --------------------------------------------------------------------------------------------------\r\n\r\n    function initialized() virtual override public view returns (bool) {\r\n        return __storage().witCommitteeSize > 0;\r\n    }\r\n\r\n    \r\n    /// ===============================================================================================================\r\n    /// --- IWitRandomness --------------------------------------------------------------------------------------------\r\n\r\n    /// Address of the underlying logic contract that can be potentially cloned.\r\n    function base() virtual override (Clonable, IWitRandomness) public view returns (address) {\r\n        return super.base();\r\n    }\r\n\r\n    /// Creates a light-proxy clone to the `base()` logic address, to be owned by the specified `curator`address.\r\n    /// Curators of cloned instances can optionally settle one single `IWitRandomnessConsumer` consuming contract.\r\n    /// The consuming contract, if settled, will be immediately reported every time a new `randomize()` request\r\n    /// gets solved and bridged back from Witnet. Either way, randomness resolutions will be reamin stored in the \r\n    /// `WitRandomness` storage, as for future reference. \r\n    /// @param _curator Address that will have authoritative access to `IWitRandomnessAdmin` methods.\r\n    function clone(address _curator)\r\n        virtual override\r\n        external \r\n        returns (IWitRandomness)\r\n    {\r\n        return WitRandomnessV3(payable(__clone())).initializeClone(\r\n            _curator,\r\n            CloneSettings({\r\n                callbackGasLimit: __storage().callbackGasLimit,\r\n                extraFeePercentage: __storage().extraFeePercentage,\r\n                witCommitteeSize: __storage().witCommitteeSize,\r\n                witInclusionFees: __storage().witInclusionFees,\r\n                randomizeWaitingBlocks: __storage().randomizeWaitingBlocks\r\n            })\r\n        );\r\n    }\r\n\r\n    /// Returns the consumer address where all valid randomize results will be reported to.\r\n    /// @dev If zero, generated randomness will not be reported to any other external address. \r\n    /// @dev The consumer contract must implement the `IWitRandomnessConsumer` interface, \r\n    /// @dev and accept this instance as source of entropy.\r\n    /// @dev It can only be settled by a curator on cloned instances.\r\n    function consumer() \r\n        virtual override\r\n        external view \r\n        returns (IWitRandomnessConsumer)\r\n    {\r\n        \r\n        return IWitRandomnessConsumer(__storage().consumer);\r\n    }\r\n\r\n    /// Returns amount of wei required to be paid as a fee when requesting randomization with a \r\n    /// transaction gas price as the one given.\r\n    function estimateRandomizeFee(uint256 _evmGasPrice)\r\n        public view\r\n        virtual override\r\n        returns (uint256)\r\n    {\r\n        uint256 _baseFee = IWitOracleQueriable(__WIT_ORACLE).estimateBaseFeeWithCallback(\r\n            _evmGasPrice, \r\n            __storage().callbackGasLimit\r\n        );\r\n        return (_baseFee * (100 + __storage().extraFeePercentage)) / 100;\r\n    }\r\n\r\n    /// Retrieves the result of keccak256-hashing the given block number with the randomness value \r\n    /// generated by the Witnet blockchain in response to the first non-failing randomize request solved \r\n    /// after such block number.\r\n    ///\r\n    /// @dev Reverts if:\r\n    ///    i.   no `randomize()` was queried on neither the given block, nor afterwards.\r\n    ///    ii.  the first non-failing `randomize()` request found on or after the given block is not solved yet.\r\n    ///    iii. all `randomize()` requests that took place on or after the given block were solved with errors.\r\n    ///\r\n    /// @param _blockNumber Block number from which the search will start.\r\n    function fetchRandomnessAfter(uint256 _blockNumber)\r\n        public view\r\n        virtual override\r\n        returns (bytes32)\r\n    {\r\n        return keccak256(\r\n            abi.encode(\r\n                _blockNumber,\r\n                _fetchRandomnessAfter(_blockNumber)\r\n            )\r\n        );\r\n    }\r\n    \r\n    /// Retrieves the actual random value, unique hash and timestamp of the witnessing commit/reveal act \r\n    /// that took place in the Witnet blockchain in response to the first non-failing randomize query\r\n    /// solved after the given block number.\r\n    ///\r\n    /// @dev Reverts if:\r\n    ///    i.   no `randomize()` was queried on neither the given block, nor afterwards.\r\n    ///    ii.  the first non-failing `randomize()` request found on or after the given block is not solved yet.\r\n    ///    iii. all `randomize()` requests that took place on or after the given block were solved with errors.\r\n    ///\r\n    /// @param _blockNumber Block number from which the search will start.\r\n    ///\r\n    /// @return _witnetQueryUUID Universal identifier of the query posted from this contract that ultimately solved randomness.\r\n    /// @return _witnetTimestamp Timestamp at which the randomness value was generated by the Witnet blockchain.\r\n    /// @return _witnetDrTxHash Hash of the witnessing commit/reveal act that took place on the Witnet blockchain.\r\n    /// @return _evmFinalityBlock EVM block number at which the generated randomness can be considered to be final.\r\n    function fetchRandomnessAfterProof(uint256 _blockNumber) \r\n        virtual override\r\n        public view \r\n        returns (\r\n            bytes32 _witnetQueryUUID,\r\n            Witnet.Timestamp _witnetTimestamp,\r\n            Witnet.TransactionHash _witnetDrTxHash,\r\n            uint256 _evmFinalityBlock\r\n        )\r\n    {\r\n        (_witnetQueryUUID, _witnetDrTxHash, _witnetTimestamp, _evmFinalityBlock) = IWitOracleQueriable(__WIT_ORACLE)\r\n            .getQueryResultTrails(\r\n                _getRandomizeQueryId(_blockNumber)\r\n            );\r\n    }\r\n\r\n    /// Returns last block number on which a randomize was requested.\r\n    function getLastRandomizeBlock()\r\n        virtual override\r\n        external view\r\n        returns (uint256)\r\n    {\r\n        return __storage().lastRandomizeBlock;\r\n    }\r\n\r\n    /// Retrieves metadata related to the randomize request that got queried to the`WitOracle` contract \r\n    /// on the specified block number, if any.\r\n    ///\r\n    /// @dev Returns zero values if no randomize request was actually queried on the specified block number.\r\n    ///\r\n    /// @param _blockNumber Block number from which the search will start.\r\n    ///\r\n    /// @return _queryId Identifier of the underlying Wit/Oracle query created on the specified block number. \r\n    /// @return _prevRandomizeBlock Block number in which a randomize request got queried just before this one. 0 if none.\r\n    /// @return _nextRandomizeBlock Block number in which a randomize request got queried just after this one, 0 if none.\r\n    function getRandomizeData(uint256 _blockNumber)\r\n        external view\r\n        virtual override\r\n        returns (\r\n            Witnet.QueryId _queryId,\r\n            uint256 _prevRandomizeBlock,\r\n            uint256 _nextRandomizeBlock\r\n        )\r\n    {\r\n        Randomize storage __request = __storage().requests[_blockNumber];\r\n        _queryId = Witnet.QueryId.wrap(__request.queryId);\r\n        _prevRandomizeBlock = __request.prevBlock != 0 ? __request.prevBlock : getRandomizePrevBlock(_blockNumber);\r\n        _nextRandomizeBlock = __request.nextBlock != 0 ? __request.nextBlock : getRandomizeNextBlock(_blockNumber);\r\n    }\r\n\r\n    /// Returns the number of the next block in which a randomize request was posted after the given one. \r\n    /// @param _blockNumber Block number from which the search will start.\r\n    /// @return Number of the first block found after the given one, or `0` otherwise.\r\n    function getRandomizeNextBlock(uint256 _blockNumber)\r\n        public view\r\n        virtual override\r\n        returns (uint256)\r\n    {\r\n        return (\r\n            __storage().requests[_blockNumber].queryId == 0\r\n                ? _searchNextBlock(_blockNumber, __storage().lastRandomizeBlock)\r\n                : __storage().requests[_blockNumber].nextBlock\r\n        );\r\n    }\r\n\r\n    /// Returns the number of the previous block in which a randomize request was posted before the given one.\r\n    /// @param _blockNumber Block number from which the search will start. Cannot be zero.\r\n    /// @return First block found before the given one, or `0` otherwise.\r\n    function getRandomizePrevBlock(uint256 _blockNumber)\r\n        public view\r\n        virtual override\r\n        returns (uint256)\r\n    {\r\n        uint256 _latest = __storage().lastRandomizeBlock;\r\n        return (_blockNumber > _latest\r\n            ? _latest\r\n            // start search from the latest block\r\n            : _searchPrevBlock(_blockNumber, __storage().requests[_latest].prevBlock)\r\n        );\r\n    }\r\n\r\n    /// Returns the identifier of the Wit/Oracle query that has either solved randomness\r\n    /// for the specified block number, is currently attending randomness for the specified block number,\r\n    /// of the one that attempted to solve it. \r\n    /// @dev Returns zero if no randomize was request on or after the specified block number.\r\n    function getRandomizeQueryId(uint256 _blockNumber)\r\n        virtual override\r\n        public view\r\n        returns (Witnet.QueryId)\r\n    {\r\n        return Witnet.QueryId.wrap(\r\n            _getRandomizeQueryId(_blockNumber)\r\n        );\r\n    }\r\n\r\n    /// Explains why the last attempt of generating randomness for the specified block number failed.\r\n    function getRandomizeQueryErrorDescription(uint256 _blockNumber) \r\n        virtual override \r\n        public view\r\n        returns (string memory _reason)\r\n    {\r\n        RandomizeStatus _status = getRandomizeStatus(_blockNumber);\r\n        if (_status == RandomizeStatus.Error) {\r\n            _reason = IWitOracleQueriable(__WIT_ORACLE).getQueryResultStatusDescription(\r\n                _getRandomizeQueryId(_blockNumber)\r\n            );\r\n        }\r\n    }\r\n\r\n    /// Returns security and liveness parameters required to the Witnet blockchain \r\n    /// when solving randomness requests, if no others are specified.\r\n    /// @return _callbackGasLimit Max. expendable gas upon randomness delivery.\r\n    /// @return _extraFeePercentage Overhead percentage applied when estimating the randomize request fee. \r\n    /// @return _witCommitteeSize Number of Witnet witnessing nodes required to generate unbiased randomness.\r\n    /// @return _witInclusionFees Minimum amount of fees in $nanoWIT to be paid on the Witnet blockchain.\r\n    function getRandomizeQueryParams()\r\n        virtual override\r\n        public view\r\n        returns (\r\n            uint24 _callbackGasLimit,\r\n            uint16 _extraFeePercentage,\r\n            uint16 _witCommitteeSize,\r\n            uint64 _witInclusionFees\r\n        )\r\n    {\r\n        return (\r\n            __storage().callbackGasLimit,\r\n            __storage().extraFeePercentage,\r\n            __storage().witCommitteeSize,\r\n            __storage().witInclusionFees\r\n        );\r\n    }\r\n\r\n    /// Returns the immutable bytecode of the Radon Request that's being used \r\n    /// for solving randomness requests on the Witnet blockchain.\r\n    function getRandomizeRadonBytecode() virtual override external view returns (bytes memory) {\r\n        return IWitOracle(__WIT_ORACLE).registry().lookupRadonRequestBytecode(\r\n            getRandomizeRadonHash()\r\n        );\r\n    }\r\n\r\n    /// Returns the unique identifier of the Radon Request that's being used \r\n    /// for solving request randomness requests on the Witnet blockchain.\r\n    function getRandomizeRadonHash() virtual override public view returns (Witnet.RadonHash) {\r\n        return __WIT_ORACLE_RNG_RADON_HASH;\r\n    }\r\n\r\n    /// Returns status of the first non-errored randomize request queried on or after the given block number.\r\n    ///  - 0 -> Void: no randomize request was actually queried on or after the given block number.\r\n    ///  - 1 -> Awaiting: a randomize request was found but it's not yet solved by the Wit/Oracle.\r\n    ///  - 2 -> Ready: a successfull randomize value was reported and is ready to be read.\r\n    ///  - 3 -> Error: all attempted randomize requests at or after the given block were solved with errors.\r\n    ///  - 4 -> Finalizing: a randomize result was relayed already but cannot yet be considered to be final.\r\n    function getRandomizeStatus(uint256 _blockNumber)\r\n        virtual override\r\n        public view \r\n        returns (RandomizeStatus)\r\n    {\r\n        Randomize storage __request = __storage().requests[_blockNumber];\r\n        \r\n        if (_blockNumber == 0) {\r\n            return RandomizeStatus.Void;\r\n        \r\n        } else if (__request.queryId == 0) {\r\n            // if no randomize was requested on the specified block number, \r\n            // return the current status of the first randomize request after it, if any:\r\n            return getRandomizeStatus(\r\n                getRandomizeNextBlock(_blockNumber)\r\n            );\r\n        \r\n        } else if (__request.queryId == type(uint64).max) {\r\n            // if the resolution to the randomize request on the specified block number failed,\r\n            // return the current status of the randomize request after it, if any, \r\n            // or `Error` otherwise:\r\n            if (__request.nextBlock > 0) {\r\n                return getRandomizeStatus(__request.nextBlock);\r\n            } else {\r\n                return RandomizeStatus.Error;\r\n            }\r\n        \r\n        } else {\r\n            if (__request.randomness == bytes32(0)) {\r\n                // if there was a randomize request on the specified block number,\r\n                // but it hasn't been solved after some settled number of blocks,\r\n                // return the current status of the later randomize request if any,\r\n                // or still `Awaiting` otherwise:\r\n                if (\r\n                    __storage().randomizeWaitingBlocks > 0\r\n                        && block.number > _blockNumber + __storage().randomizeWaitingBlocks\r\n                        && __request.nextBlock > 0\r\n                ) {\r\n                    return getRandomizeStatus(__request.nextBlock);\r\n                } else {\r\n                    return RandomizeStatus.Awaiting;\r\n                }\r\n            \r\n            } else {\r\n                // if there was a randomize request on the specified block number,\r\n                // and it has already been resolved, return `Ready` or `Finalizing` depending \r\n                // on whether the randomness finality block has already been reached:\r\n                return (\r\n                    block.number >= __request.finality\r\n                        ? RandomizeStatus.Ready\r\n                        : RandomizeStatus.Finalizing\r\n                );\r\n            }\r\n        }\r\n    }\r\n\r\n    /// Return the number of EVM blocks after a randomize requests that have to elapse before\r\n    /// considering such request to be delayed. Results to delayed requests can potentially be\r\n    /// provided by later requests, if solved earlier. A value of zero means that randomize \r\n    /// requests will never expire. \r\n    function getRandomizeWaitingBlocks()\r\n        virtual override\r\n        external view \r\n        returns (uint16)\r\n    {\r\n        return __storage().randomizeWaitingBlocks;\r\n    }\r\n\r\n\r\n    /// Returns `true` only if a successfull resolution from the Witnet blockchain is found for the first \r\n    /// non-errored randomize request posted on or after the given block number.\r\n    function isRandomized(uint256 _blockNumber)\r\n        public view\r\n        virtual override\r\n        returns (bool)\r\n    {\r\n        return (\r\n            getRandomizeStatus(_blockNumber) == RandomizeStatus.Ready\r\n        );\r\n    }\r\n\r\n    /// Requests the Witnet blockchain to generate an unbiased 64-bit random seed.\r\n    /// @dev Only one randomize request per block will get ultimately relayed to the Witnet blockchain.\r\n    /// @return _evmUsedFunds EVM funds actually paid as randomize fee.\r\n    function randomize()\r\n        external payable\r\n        virtual override\r\n        returns (uint256 _evmUsedFunds)\r\n    {\r\n        uint256 _queryId;\r\n        uint256 _blockNumber = block.number;\r\n        if (__storage().lastRandomizeBlock < _blockNumber) {\r\n            _evmUsedFunds = msg.value;\r\n            \r\n            // Post the Witnet Randomness request:\r\n            _queryId = IWitOracleQueriable(__WIT_ORACLE).queryDataWithCallback{\r\n                value: msg.value\r\n            }(\r\n                __WIT_ORACLE_RNG_RADON_HASH,\r\n                Witnet.QuerySLA({\r\n                    witResultMaxSize: _WIT_ORACLE_RNG_MAX_RESULT_SIZE,\r\n                    witCommitteeSize: __storage().witCommitteeSize,\r\n                    witUnitaryReward: __storage().witInclusionFees\r\n                }),\r\n                Witnet.QueryCallback({\r\n                    consumer: address(this),\r\n                    gasLimit: __storage().callbackGasLimit\r\n                })\r\n            );\r\n\r\n            // Save Randomize metadata in storage:\r\n            uint256 _prevBlock = __storage().lastRandomizeBlock;\r\n            Randomize storage __request = __storage().requests[_blockNumber];\r\n            __request.queryId = uint64(_queryId);\r\n            __request.prevBlock = uint64(_prevBlock);\r\n            __storage().requests[_prevBlock].nextBlock = uint64(_blockNumber);\r\n            __storage().lastRandomizeBlock = uint64(_blockNumber);\r\n            __storage().blocks[Witnet.QueryId.wrap(uint64(_queryId))] = _blockNumber;\r\n\r\n            // Emit event only on first successful randomize within one block:\r\n            // solhint-disable-next-line avoid-tx-origin\r\n            emit Randomizing(\r\n                _msgSender(), \r\n                block.number,\r\n                Witnet.QueryId.wrap(uint64(_queryId))\r\n            );\r\n        \r\n        } else {\r\n            _queryId = __storage().requests[_blockNumber].queryId;\r\n        }\r\n\r\n        // Transfer back unused funds:\r\n        if (_evmUsedFunds < msg.value) {\r\n            payable(msg.sender).transfer(msg.value - _evmUsedFunds);\r\n        }\r\n    }\r\n\r\n    /// Verifies that the specified randomness seed was actually generated on the Witnet blockchain,\r\n    /// and was actually used for producing the randomness seed returned by `fetchRandomnessAfter`.\r\n    function verifyRandomnessAfter(uint256 blockNumber, bytes32 witnetRandomness)\r\n        external view \r\n        virtual override\r\n        returns (bool)\r\n    {\r\n        return (\r\n            isRandomized(blockNumber)\r\n                && fetchRandomnessAfter(blockNumber) == keccak256(abi.encode(\r\n                    blockNumber,\r\n                    bytes8(witnetRandomness)\r\n                ))\r\n        );\r\n    }\r\n\r\n    /// The Wit/Oracle core address accepted as source of entropy.\r\n    function witOracle() virtual override external view returns (address) {\r\n        return __WIT_ORACLE;\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- IWitRandomnessAdmin -------------------------------------------------------------------------------------\r\n\r\n    function acceptOwnership()\r\n        virtual override (IWitRandomnessAdmin, Ownable2Step)\r\n        public\r\n    {\r\n        Ownable2Step.acceptOwnership();\r\n    }\r\n\r\n    function owner()\r\n        virtual override (IWitRandomnessAdmin, Ownable)\r\n        public view \r\n        returns (address)\r\n    {\r\n        return Ownable.owner();\r\n    }\r\n\r\n    function pendingOwner() \r\n        virtual override (IWitRandomnessAdmin, Ownable2Step)\r\n        public view\r\n        returns (address)\r\n    {\r\n        return Ownable2Step.pendingOwner();\r\n    }\r\n    \r\n    function transferOwnership(address _newOwner)\r\n        virtual override (IWitRandomnessAdmin, Ownable2Step)\r\n        public \r\n        onlyOwner\r\n    {\r\n        Ownable.transferOwnership(_newOwner);\r\n    }\r\n\r\n    function settleConsumer(address _consumer, uint24 _maxCallbackGasLimit)\r\n        virtual override\r\n        external\r\n        onlyOnClones\r\n        onlyOwner\r\n    {\r\n        if (\r\n            _consumer != address(0)\r\n                && _consumer.code.length > 0\r\n        ) {\r\n            try IWitRandomnessConsumer(_consumer).witRandomness() returns (IWitRandomness _witRandomness) {\r\n                if (address(_witRandomness) == address(this)) {\r\n                    _require(_maxCallbackGasLimit >= _WIT_ORACLE_MIN_CALLBACK_GAS_LIMIT, \"low gas limit\");\r\n                    __storage().consumer = _consumer;\r\n                    __storage().callbackGasLimit = _maxCallbackGasLimit;\r\n                    return;\r\n                }\r\n            } catch (bytes memory) {}\r\n        } \r\n        _revert(\"invalid consumer\");   \r\n    }\r\n\r\n    function settleQueryParams(\r\n            uint24 _callbackGasLimit,\r\n            uint16 _extraFeePercentage,\r\n            uint16 _minWitCommitteeSize,\r\n            uint64 _minWitInclusionFees\r\n        )\r\n        virtual override\r\n        external\r\n        onlyOwner\r\n    {\r\n        // validate ranges:\r\n        _require(\r\n            _callbackGasLimit >= _WIT_ORACLE_MIN_CALLBACK_GAS_LIMIT\r\n                && _minWitCommitteeSize > 0 \r\n                && _minWitCommitteeSize <= 127, \r\n            \"invalid params\"\r\n        );\r\n        __storage().callbackGasLimit = _callbackGasLimit;\r\n        __storage().extraFeePercentage = _extraFeePercentage;\r\n        __storage().witCommitteeSize = _minWitCommitteeSize;\r\n        __storage().witInclusionFees = _minWitInclusionFees;\r\n    }\r\n\r\n\r\n    function settleRandomizeWaitingBlocks(uint16 _randomizeWaitingBlocks)\r\n        virtual override\r\n        external\r\n        onlyOwner\r\n    {\r\n        __storage().randomizeWaitingBlocks = _randomizeWaitingBlocks;\r\n    }\r\n\r\n\r\n    // ================================================================================================================\r\n    // --- IWitOracleQueriableConsumer --------------------------------------------------------------------------------\r\n\r\n    /// Method to be called from the witOracle contract as soon as the given Witnet `queryId` gets reported.\r\n    /// @dev It should revert if called from an address different to the WitOracle instance being used by consumer.\r\n    /// @param queryId The unique identifier of the Witnet query being reported.\r\n    /// @param queryResult Abi-encoded Witnet.DataResult containing the CBOR-encoded query's result, and metadata.\r\n    function reportWitOracleQueryResult(\r\n            uint256 queryId,\r\n            bytes calldata queryResult\r\n        ) \r\n        virtual override\r\n        external\r\n    {\r\n        uint256 _randomizeBlock = __storage().blocks[Witnet.QueryId.wrap(uint64(queryId))];\r\n        _require(_randomizeBlock > 0, \"invalid query\");\r\n        _require(reportableFrom(msg.sender), \"invalid oracle\");\r\n\r\n        Randomize storage __request = __storage().requests[_randomizeBlock];\r\n\r\n        Witnet.DataResult memory _queryResult = abi.decode(queryResult, (Witnet.DataResult));\r\n        if (\r\n            __request.randomness == 0\r\n                && __storage().randomizeWaitingBlocks > 0\r\n                && block.number > _randomizeBlock + __storage().randomizeWaitingBlocks\r\n                && __request.nextBlock > 0\r\n        ) {\r\n            // ignore the query result if it's provided too late and there was a later randomize attempt:\r\n            __request.queryId = type(uint64).max;\r\n\r\n        } else {\r\n            bytes8 _randomness = bytes8(0);\r\n            if (_queryResult.status == Witnet.ResultStatus.NoErrors) {\r\n                if (uint64(queryId) != __request.queryId) {\r\n                    // if a non-finalized error was disputed and eventually won:\r\n                    __request.queryId = uint64(queryId);\r\n                }\r\n                _randomness = bytes8(_queryResult.fetchBytes32());\r\n            } else {\r\n                __request.queryId = type(uint64).max;\r\n            }\r\n            __request.finality = uint64(_queryResult.finality);\r\n            __request.randomness = _randomness;\r\n\r\n            address _consumer = __storage().consumer;\r\n            if (_consumer != address(0)) {\r\n                try IWitRandomnessConsumer(_consumer).reportRandomness(\r\n                    _randomness,\r\n                    _randomizeBlock,\r\n                    _queryResult.finality,\r\n                    _queryResult.timestamp,\r\n                    _queryResult.drTxHash\r\n                \r\n                ) {} catch (bytes memory) {\r\n                    // no matter if reporting randomness to the consumer fails,\r\n                    // this transaction must prevail so already verified randomness\r\n                    // gets preserved in storage.\r\n                }\r\n            }\r\n\r\n            emit Randomized(\r\n                _randomizeBlock, \r\n                _queryResult.finality,\r\n                _randomness\r\n            );\r\n        }\r\n    }\r\n\r\n    /// Determines if Witnet queries can be reported from given address.\r\n    /// @dev In practice, must only be true on the WitOracle address that's being used by\r\n    /// @dev the consumer contract to post data queries. \r\n    function reportableFrom(address _from) \r\n        virtual override \r\n        public view \r\n        returns (bool)\r\n    {\r\n        return (\r\n            _from == address(__WIT_ORACLE)\r\n        );\r\n    }\r\n\r\n    \r\n    // ================================================================================================================\r\n    // --- Internal methods -------------------------------------------------------------------------------------------\r\n\r\n    function _getRandomizeQueryId(uint256 _blockNumber)\r\n        virtual internal view \r\n        returns (uint64)\r\n    {\r\n        Randomize storage __request = __storage().requests[_blockNumber];\r\n        if (__request.queryId == 0) {\r\n            return _getRandomizeQueryId(\r\n                getRandomizeNextBlock(_blockNumber)\r\n            );\r\n\r\n        } else if (__request.queryId == type(uint64).max) {\r\n            return (\r\n                __request.nextBlock > 0 \r\n                    ? _getRandomizeQueryId(__request.nextBlock) \r\n                    : __request.queryId\r\n            );\r\n        \r\n        } else {\r\n            if (__request.randomness == bytes8(0)) {\r\n                if (\r\n                    __storage().randomizeWaitingBlocks > 0 \r\n                        && block.number > _blockNumber + __storage().randomizeWaitingBlocks\r\n                        && __request.nextBlock > 0\r\n                ) {\r\n                    return _getRandomizeQueryId(__request.nextBlock);\r\n                }\r\n            }\r\n            return __request.queryId;\r\n        }\r\n    }\r\n\r\n    function _fetchRandomnessAfter(uint256 _blockNumber)\r\n        virtual internal view \r\n        returns (bytes8 _randomness)\r\n    {\r\n        Randomize storage __request = __storage().requests[_blockNumber];\r\n        if (__request.queryId == 0) {\r\n            return _fetchRandomnessAfter(\r\n                getRandomizeNextBlock(_blockNumber)\r\n            );\r\n        \r\n        } else if (__request.queryId == type(uint64).max) {\r\n            _require(\r\n                __request.nextBlock > 0,\r\n                \"failed: retry randomize\"\r\n            );\r\n            return _fetchRandomnessAfter(\r\n                __request.nextBlock\r\n            );\r\n        \r\n        } else if (__request.randomness == bytes8(0)) {\r\n            if (\r\n                __storage().randomizeWaitingBlocks > 0 \r\n                    && block.number > _blockNumber + __storage().randomizeWaitingBlocks\r\n            ) {\r\n                _require(\r\n                    __request.nextBlock > 0,\r\n                    \"delayed: keep waiting or retry randomize\"\r\n                );\r\n                return _fetchRandomnessAfter(__request.nextBlock);\r\n            } else {\r\n                _revert(\"pending randomize\");\r\n            }\r\n        \r\n        } else {\r\n            _require(\r\n                block.number >= __request.finality,\r\n                string(abi.encodePacked(\r\n                    \"finalizing on block #\",\r\n                    Witnet.toString(uint256(__request.finality))\r\n                ))\r\n            );\r\n            return __request.randomness;\r\n        }\r\n    }\r\n\r\n    /// @dev Recursively searches for the number of the first block after the given one in which a Witnet \r\n    /// @dev randomness request was posted. Returns 0 if none found.\r\n    function _searchNextBlock(uint256 _target, uint256 _latest) internal view returns (uint256) {\r\n        return (_target >= _latest \r\n            ? __storage().requests[_latest].nextBlock\r\n            : _searchNextBlock(_target, __storage().requests[_latest].prevBlock)\r\n        );\r\n    }\r\n\r\n    /// @dev Recursively searches for the number of the first block before the given one in which a Witnet \r\n    /// @dev randomness request was posted. Returns 0 if none found.\r\n    function _searchPrevBlock(uint256 _target, uint256 _latest) internal view returns (uint256) {\r\n        return (_target > _latest\r\n            ? _latest\r\n            : _searchPrevBlock(_target, __storage().requests[_latest].prevBlock)\r\n        );\r\n    }\r\n\r\n    function __storage() internal pure returns (Storage storage _ptr) {\r\n        assembly {\r\n            _ptr.slot := _WIT_RANDOMNESS_STORAGE_SLOT\r\n        }\r\n    }\r\n}\r\n",
  "sourcePath": "C:\\Users\\guill\\github\\guidiaz\\witnet-solidity-bridge\\contracts\\apps\\WitRandomnessV3.sol",
  "ast": {
    "absolutePath": "project:/contracts/apps/WitRandomnessV3.sol",
    "exportedSymbols": {
      "Clonable": [
        45518
      ],
      "IWitOracle": [
        26581
      ],
      "IWitOracleAppliance": [
        26593
      ],
      "IWitOracleQueriable": [
        26795
      ],
      "IWitOracleRadonRegistry": [
        27394
      ],
      "IWitRandomness": [
        28351
      ],
      "IWitRandomnessAdmin": [
        28395
      ],
      "IWitRandomnessConsumer": [
        28425
      ],
      "Ownable": [
        415
      ],
      "Ownable2Step": [
        45709
      ],
      "WitRandomness": [
        879
      ],
      "WitRandomnessV3": [
        8239
      ],
      "Witnet": [
        40741
      ]
    },
    "id": 8240,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6345,
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:20"
      },
      {
        "absolutePath": "project:/contracts/WitOracle.sol",
        "file": "../WitOracle.sol",
        "id": 6351,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 8240,
        "sourceUnit": 679,
        "src": "70:148:20",
        "symbolAliases": [
          {
            "foreign": {
              "id": 6346,
              "name": "IWitOracle",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 26581,
              "src": "84:10:20",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 6347,
              "name": "IWitOracleAppliance",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 26593,
              "src": "102:19:20",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 6348,
              "name": "IWitOracleQueriable",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 26795,
              "src": "128:19:20",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 6349,
              "name": "IWitOracleRadonRegistry",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 27394,
              "src": "154:23:20",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 6350,
              "name": "Witnet",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 40741,
              "src": "184:6:20",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/WitRandomness.sol",
        "file": "../WitRandomness.sol",
        "id": 6356,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 8240,
        "sourceUnit": 880,
        "src": "222:139:20",
        "symbolAliases": [
          {
            "foreign": {
              "id": 6352,
              "name": "IWitRandomness",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 28351,
              "src": "237:14:20",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 6353,
              "name": "IWitRandomnessAdmin",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 28395,
              "src": "259:19:20",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 6354,
              "name": "IWitRandomnessConsumer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 28425,
              "src": "286:22:20",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 6355,
              "name": "WitRandomness",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 879,
              "src": "316:13:20",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/patterns/Clonable.sol",
        "file": "../patterns/Clonable.sol",
        "id": 6358,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 8240,
        "sourceUnit": 45519,
        "src": "365:50:20",
        "symbolAliases": [
          {
            "foreign": {
              "id": 6357,
              "name": "Clonable",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 45518,
              "src": "373:8:20",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/patterns/Ownable2Step.sol",
        "file": "../patterns/Ownable2Step.sol",
        "id": 6361,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 8240,
        "sourceUnit": 45710,
        "src": "417:67:20",
        "symbolAliases": [
          {
            "foreign": {
              "id": 6359,
              "name": "Ownable",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 415,
              "src": "425:7:20",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 6360,
              "name": "Ownable2Step",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 45709,
              "src": "434:12:20",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 6363,
              "name": "Clonable",
              "nameLocations": [
                "3250:8:20"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 45518,
              "src": "3250:8:20"
            },
            "id": 6364,
            "nodeType": "InheritanceSpecifier",
            "src": "3250:8:20"
          },
          {
            "baseName": {
              "id": 6365,
              "name": "Ownable2Step",
              "nameLocations": [
                "3269:12:20"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 45709,
              "src": "3269:12:20"
            },
            "id": 6366,
            "nodeType": "InheritanceSpecifier",
            "src": "3269:12:20"
          },
          {
            "baseName": {
              "id": 6367,
              "name": "WitRandomness",
              "nameLocations": [
                "3292:13:20"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 879,
              "src": "3292:13:20"
            },
            "id": 6368,
            "nodeType": "InheritanceSpecifier",
            "src": "3292:13:20"
          }
        ],
        "canonicalName": "WitRandomnessV3",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 6362,
          "nodeType": "StructuredDocumentation",
          "src": "488:2720:20",
          "text": "@title WitRandomnessV3: Unbiased, EVM-agnostic and provably-fair random seeds from the Witnet blockchain. \n \n 64-bit entropy seeds can be permissionless pulled at anytime from smart contracts and externally-owned EVM accounts.\n \n Randomness provisioning is securely protected against race-condition and malleability attacks by node validators\n on both EVM and Witnet blockchains. \n This contract acts also as a public-good registry, openly preserving all random seeds generated in the past,\n and providing after-the-fact traceability proof to the actual witnessing committees and punishable acts that took\n place on the Witnet blockchain for generating every single one of them.\n @dev Protection against race-condition and malleability attacks requires randomness queried to this contract\n to be solved is an asynchronous way, meaning that after some randomness is requested, the result provided\n from the Wit/Oracle sidechain won't be ready until a certain amount of EVM blocks have elapsed. \n This protection also implies that eventually failing randomness requests on the Wit/Oracle sidechain \n cannot be retried but from this very same contract. Failing randomness requests will get all automatically\n and unbiasedly solved as soon as some new randomness request gets solved, even if paid by a different requester.\n Querying for new randomness requires paying a fee in native EVM gas currency, as to cover the implicit cost of\n solving unmalleable randomness on the Wit/Oracle sidechain and report it back to the EVM storage. The actual \n randomize fee depends on the expected gas price to pay for the EVM transaction that would eventually include \n a call to any of the `randomize(..)` methods of this contract. The randomize fee can be computed by passing\n the expected gas price value to the `estimateRandomizeFee(uint256)` method.\n > Note [1]: On highly volatile gas price markets, especially on some Layer-2 EVM chains, is highly recommended\n to estimate the randomize fee before a `randomize()` call, and pass a fresh EVM gas price value. Otherwise\n the call to `randomize()` could potentially revert with either \"insufficient reward\" or \"too much reward\".\n > Note [2]: Contracts requiring some external entity to report Witnet-certified randomness only when required,\n would need to implement the `IWitRandomnessConsumer`. The external entity would then have to clone the \n public-domain address, attach it to the consumer contract address, and get the `randomize()` function\n called on the cloned instance as many times as required.\n @author The Witnet Foundation."
        },
        "fullyImplemented": true,
        "id": 8239,
        "linearizedBaseContracts": [
          8239,
          879,
          28351,
          28461,
          28449,
          28395,
          26815,
          26514,
          45709,
          415,
          523,
          45518,
          267
        ],
        "name": "WitRandomnessV3",
        "nameLocation": "3217:15:20",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 6372,
            "libraryName": {
              "id": 6369,
              "name": "Witnet",
              "nameLocations": [
                "3320:6:20"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 40741,
              "src": "3320:6:20"
            },
            "nodeType": "UsingForDirective",
            "src": "3314:35:20",
            "typeName": {
              "id": 6371,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 6370,
                "name": "Witnet.DataResult",
                "nameLocations": [
                  "3331:6:20",
                  "3338:10:20"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 37293,
                "src": "3331:17:20"
              },
              "referencedDeclaration": 37293,
              "src": "3331:17:20",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                "typeString": "struct Witnet.DataResult"
              }
            }
          },
          {
            "constant": false,
            "documentation": {
              "id": 6373,
              "nodeType": "StructuredDocumentation",
              "src": "3361:206:20",
              "text": "@notice Unique identifier of the RNG data request used on the Witnet blockchain for solving randomness.\n @dev Can be used to track all randomness requests solved so far on the Witnet blockchain."
            },
            "id": 6376,
            "mutability": "immutable",
            "name": "__WIT_ORACLE_RNG_RADON_HASH",
            "nameLocation": "3609:27:20",
            "nodeType": "VariableDeclaration",
            "scope": 8239,
            "src": "3573:63:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
              "typeString": "Witnet.RadonHash"
            },
            "typeName": {
              "id": 6375,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 6374,
                "name": "Witnet.RadonHash",
                "nameLocations": [
                  "3573:6:20",
                  "3580:9:20"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 37153,
                "src": "3573:16:20"
              },
              "referencedDeclaration": 37153,
              "src": "3573:16:20",
              "typeDescriptions": {
                "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                "typeString": "Witnet.RadonHash"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "documentation": {
              "id": 6377,
              "nodeType": "StructuredDocumentation",
              "src": "3645:101:20",
              "text": "@dev Default number of blocks after a randomize request to consider it delayed if not solved yet."
            },
            "id": 6380,
            "mutability": "constant",
            "name": "_DEFAULT_RANDOMIZE_WAITING_BLOCKS",
            "nameLocation": "3777:33:20",
            "nodeType": "VariableDeclaration",
            "scope": 8239,
            "src": "3752:64:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint16",
              "typeString": "uint16"
            },
            "typeName": {
              "id": 6378,
              "name": "uint16",
              "nodeType": "ElementaryTypeName",
              "src": "3752:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_uint16",
                "typeString": "uint16"
              }
            },
            "value": {
              "hexValue": "323536",
              "id": 6379,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3813:3:20",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_256_by_1",
                "typeString": "int_const 256"
              },
              "value": "256"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "documentation": {
              "id": 6381,
              "nodeType": "StructuredDocumentation",
              "src": "3825:85:20",
              "text": "@dev Minimum acceptable callback gas limit that can be settled by the `owner()`. "
            },
            "id": 6384,
            "mutability": "constant",
            "name": "_WIT_ORACLE_MIN_CALLBACK_GAS_LIMIT",
            "nameLocation": "3941:34:20",
            "nodeType": "VariableDeclaration",
            "scope": 8239,
            "src": "3916:67:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint24",
              "typeString": "uint24"
            },
            "typeName": {
              "id": 6382,
              "name": "uint24",
              "nodeType": "ElementaryTypeName",
              "src": "3916:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_uint24",
                "typeString": "uint24"
              }
            },
            "value": {
              "hexValue": "3530303030",
              "id": 6383,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3978:5:20",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_50000_by_1",
                "typeString": "int_const 50000"
              },
              "value": "50000"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "documentation": {
              "id": 6385,
              "nodeType": "StructuredDocumentation",
              "src": "3992:88:20",
              "text": "@dev Size of successful CBOR-encoded randomness generated by the Witnet blockchain. "
            },
            "id": 6388,
            "mutability": "constant",
            "name": "_WIT_ORACLE_RNG_MAX_RESULT_SIZE",
            "nameLocation": "4111:31:20",
            "nodeType": "VariableDeclaration",
            "scope": 8239,
            "src": "4086:61:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint16",
              "typeString": "uint16"
            },
            "typeName": {
              "id": 6386,
              "name": "uint16",
              "nodeType": "ElementaryTypeName",
              "src": "4086:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_uint16",
                "typeString": "uint16"
              }
            },
            "value": {
              "hexValue": "3334",
              "id": 6387,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "4145:2:20",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_34_by_1",
                "typeString": "int_const 34"
              },
              "value": "34"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "documentation": {
              "id": 6389,
              "nodeType": "StructuredDocumentation",
              "src": "4156:29:20",
              "text": "@dev Storage slot pointer"
            },
            "id": 6392,
            "mutability": "constant",
            "name": "_WIT_RANDOMNESS_STORAGE_SLOT",
            "nameLocation": "4216:28:20",
            "nodeType": "VariableDeclaration",
            "scope": 8239,
            "src": "4191:212:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 6390,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "4191:7:20",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "hexValue": "307834333032356164333536393432653934396263316561623032666662343264303634326635396338383239666562666563303136396562636461333930373030",
              "id": 6391,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "4337:66:20",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_30309121404046178313294809036975320599767110964635856750696685426893215303424_by_1",
                "typeString": "int_const 3030...(69 digits omitted)...3424"
              },
              "value": "0x43025ad356942e949bc1eab02ffb42d0642f59c8829febfec0169ebcda390700"
            },
            "visibility": "private"
          },
          {
            "canonicalName": "WitRandomnessV3.Randomize",
            "documentation": {
              "id": 6393,
              "nodeType": "StructuredDocumentation",
              "src": "4412:21:20",
              "text": "Randomize records"
            },
            "id": 6404,
            "members": [
              {
                "constant": false,
                "id": 6395,
                "mutability": "mutable",
                "name": "queryId",
                "nameLocation": "4474:7:20",
                "nodeType": "VariableDeclaration",
                "scope": 6404,
                "src": "4467:14:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 6394,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "4467:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6397,
                "mutability": "mutable",
                "name": "finality",
                "nameLocation": "4499:8:20",
                "nodeType": "VariableDeclaration",
                "scope": 6404,
                "src": "4492:15:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 6396,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "4492:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6399,
                "mutability": "mutable",
                "name": "nextBlock",
                "nameLocation": "4525:9:20",
                "nodeType": "VariableDeclaration",
                "scope": 6404,
                "src": "4518:16:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 6398,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "4518:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6401,
                "mutability": "mutable",
                "name": "randomness",
                "nameLocation": "4552:10:20",
                "nodeType": "VariableDeclaration",
                "scope": 6404,
                "src": "4545:17:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes8",
                  "typeString": "bytes8"
                },
                "typeName": {
                  "id": 6400,
                  "name": "bytes8",
                  "nodeType": "ElementaryTypeName",
                  "src": "4545:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes8",
                    "typeString": "bytes8"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6403,
                "mutability": "mutable",
                "name": "prevBlock",
                "nameLocation": "4580:9:20",
                "nodeType": "VariableDeclaration",
                "scope": 6404,
                "src": "4573:16:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 6402,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "4573:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Randomize",
            "nameLocation": "4446:9:20",
            "nodeType": "StructDefinition",
            "scope": 8239,
            "src": "4439:158:20",
            "visibility": "public"
          },
          {
            "canonicalName": "WitRandomnessV3.CloneSettings",
            "documentation": {
              "id": 6405,
              "nodeType": "StructuredDocumentation",
              "src": "4605:40:20",
              "text": "Initialization parameters for clones"
            },
            "id": 6416,
            "members": [
              {
                "constant": false,
                "id": 6407,
                "mutability": "mutable",
                "name": "callbackGasLimit",
                "nameLocation": "4690:16:20",
                "nodeType": "VariableDeclaration",
                "scope": 6416,
                "src": "4683:23:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint24",
                  "typeString": "uint24"
                },
                "typeName": {
                  "id": 6406,
                  "name": "uint24",
                  "nodeType": "ElementaryTypeName",
                  "src": "4683:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6409,
                "mutability": "mutable",
                "name": "extraFeePercentage",
                "nameLocation": "4724:18:20",
                "nodeType": "VariableDeclaration",
                "scope": 6416,
                "src": "4717:25:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                },
                "typeName": {
                  "id": 6408,
                  "name": "uint16",
                  "nodeType": "ElementaryTypeName",
                  "src": "4717:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6411,
                "mutability": "mutable",
                "name": "witCommitteeSize",
                "nameLocation": "4760:16:20",
                "nodeType": "VariableDeclaration",
                "scope": 6416,
                "src": "4753:23:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                },
                "typeName": {
                  "id": 6410,
                  "name": "uint16",
                  "nodeType": "ElementaryTypeName",
                  "src": "4753:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6413,
                "mutability": "mutable",
                "name": "witInclusionFees",
                "nameLocation": "4794:16:20",
                "nodeType": "VariableDeclaration",
                "scope": 6416,
                "src": "4787:23:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 6412,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "4787:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6415,
                "mutability": "mutable",
                "name": "randomizeWaitingBlocks",
                "nameLocation": "4828:22:20",
                "nodeType": "VariableDeclaration",
                "scope": 6416,
                "src": "4821:29:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                },
                "typeName": {
                  "id": 6414,
                  "name": "uint16",
                  "nodeType": "ElementaryTypeName",
                  "src": "4821:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "CloneSettings",
            "nameLocation": "4658:13:20",
            "nodeType": "StructDefinition",
            "scope": 8239,
            "src": "4651:207:20",
            "visibility": "public"
          },
          {
            "canonicalName": "WitRandomnessV3.Storage",
            "documentation": {
              "id": 6417,
              "nodeType": "StructuredDocumentation",
              "src": "4866:24:20",
              "text": "Data storage layout "
            },
            "id": 6446,
            "members": [
              {
                "constant": false,
                "id": 6419,
                "mutability": "mutable",
                "name": "callbackGasLimit",
                "nameLocation": "4929:16:20",
                "nodeType": "VariableDeclaration",
                "scope": 6446,
                "src": "4922:23:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint24",
                  "typeString": "uint24"
                },
                "typeName": {
                  "id": 6418,
                  "name": "uint24",
                  "nodeType": "ElementaryTypeName",
                  "src": "4922:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6421,
                "mutability": "mutable",
                "name": "extraFeePercentage",
                "nameLocation": "4963:18:20",
                "nodeType": "VariableDeclaration",
                "scope": 6446,
                "src": "4956:25:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                },
                "typeName": {
                  "id": 6420,
                  "name": "uint16",
                  "nodeType": "ElementaryTypeName",
                  "src": "4956:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6423,
                "mutability": "mutable",
                "name": "lastRandomizeBlock",
                "nameLocation": "4999:18:20",
                "nodeType": "VariableDeclaration",
                "scope": 6446,
                "src": "4992:25:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 6422,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "4992:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6425,
                "mutability": "mutable",
                "name": "witCommitteeSize",
                "nameLocation": "5035:16:20",
                "nodeType": "VariableDeclaration",
                "scope": 6446,
                "src": "5028:23:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                },
                "typeName": {
                  "id": 6424,
                  "name": "uint16",
                  "nodeType": "ElementaryTypeName",
                  "src": "5028:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6427,
                "mutability": "mutable",
                "name": "witInclusionFees",
                "nameLocation": "5069:16:20",
                "nodeType": "VariableDeclaration",
                "scope": 6446,
                "src": "5062:23:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 6426,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "5062:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6429,
                "mutability": "mutable",
                "name": "_0",
                "nameLocation": "5103:2:20",
                "nodeType": "VariableDeclaration",
                "scope": 6446,
                "src": "5096:9:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint72",
                  "typeString": "uint72"
                },
                "typeName": {
                  "id": 6428,
                  "name": "uint72",
                  "nodeType": "ElementaryTypeName",
                  "src": "5096:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint72",
                    "typeString": "uint72"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6431,
                "mutability": "mutable",
                "name": "consumer",
                "nameLocation": "5124:8:20",
                "nodeType": "VariableDeclaration",
                "scope": 6446,
                "src": "5116:16:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 6430,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "5116:7:20",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6433,
                "mutability": "mutable",
                "name": "randomizeWaitingBlocks",
                "nameLocation": "5150:22:20",
                "nodeType": "VariableDeclaration",
                "scope": 6446,
                "src": "5143:29:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                },
                "typeName": {
                  "id": 6432,
                  "name": "uint16",
                  "nodeType": "ElementaryTypeName",
                  "src": "5143:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6435,
                "mutability": "mutable",
                "name": "_1",
                "nameLocation": "5190:2:20",
                "nodeType": "VariableDeclaration",
                "scope": 6446,
                "src": "5183:9:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint80",
                  "typeString": "uint80"
                },
                "typeName": {
                  "id": 6434,
                  "name": "uint80",
                  "nodeType": "ElementaryTypeName",
                  "src": "5183:6:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6440,
                "mutability": "mutable",
                "name": "blocks",
                "nameLocation": "5239:6:20",
                "nodeType": "VariableDeclaration",
                "scope": 6446,
                "src": "5203:42:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_userDefinedValueType$_QueryId_$37151_$_t_uint256_$",
                  "typeString": "mapping(Witnet.QueryId => uint256)"
                },
                "typeName": {
                  "id": 6439,
                  "keyName": "",
                  "keyNameLocation": "-1:-1:-1",
                  "keyType": {
                    "id": 6437,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6436,
                      "name": "Witnet.QueryId",
                      "nameLocations": [
                        "5212:6:20",
                        "5219:7:20"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37151,
                      "src": "5212:14:20"
                    },
                    "referencedDeclaration": 37151,
                    "src": "5212:14:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                      "typeString": "Witnet.QueryId"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "5203:35:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_userDefinedValueType$_QueryId_$37151_$_t_uint256_$",
                    "typeString": "mapping(Witnet.QueryId => uint256)"
                  },
                  "valueName": "",
                  "valueNameLocation": "-1:-1:-1",
                  "valueType": {
                    "id": 6438,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5230:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6445,
                "mutability": "mutable",
                "name": "requests",
                "nameLocation": "5287:8:20",
                "nodeType": "VariableDeclaration",
                "scope": 6446,
                "src": "5256:39:20",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                  "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize)"
                },
                "typeName": {
                  "id": 6444,
                  "keyName": "",
                  "keyNameLocation": "-1:-1:-1",
                  "keyType": {
                    "id": 6441,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5265:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "5256:30:20",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                    "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize)"
                  },
                  "valueName": "",
                  "valueNameLocation": "-1:-1:-1",
                  "valueType": {
                    "id": 6443,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6442,
                      "name": "Randomize",
                      "nameLocations": [
                        "5276:9:20"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 6404,
                      "src": "5276:9:20"
                    },
                    "referencedDeclaration": 6404,
                    "src": "5276:9:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                      "typeString": "struct WitRandomnessV3.Randomize"
                    }
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Storage",
            "nameLocation": "4903:7:20",
            "nodeType": "StructDefinition",
            "scope": 8239,
            "src": "4896:407:20",
            "visibility": "public"
          },
          {
            "constant": false,
            "documentation": {
              "id": 6447,
              "nodeType": "StructuredDocumentation",
              "src": "5311:74:20",
              "text": "@notice Returns the WitOracle address that this appliance is bound to."
            },
            "id": 6449,
            "mutability": "immutable",
            "name": "__WIT_ORACLE",
            "nameLocation": "5418:12:20",
            "nodeType": "VariableDeclaration",
            "scope": 8239,
            "src": "5391:39:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 6448,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "5391:7:20",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              26472
            ],
            "body": {
              "id": 6461,
              "nodeType": "Block",
              "src": "5615:52:20",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "arguments": [
                        {
                          "id": 6457,
                          "name": "WitRandomnessV3",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8239,
                          "src": "5638:15:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitRandomnessV3_$8239_$",
                            "typeString": "type(contract WitRandomnessV3)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_type$_t_contract$_WitRandomnessV3_$8239_$",
                            "typeString": "type(contract WitRandomnessV3)"
                          }
                        ],
                        "id": 6456,
                        "name": "type",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967269,
                        "src": "5633:4:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 6458,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5633:21:20",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_meta_type_t_contract$_WitRandomnessV3_$8239",
                        "typeString": "type(contract WitRandomnessV3)"
                      }
                    },
                    "id": 6459,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "5655:4:20",
                    "memberName": "name",
                    "nodeType": "MemberAccess",
                    "src": "5633:26:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 6455,
                  "id": 6460,
                  "nodeType": "Return",
                  "src": "5626:33:20"
                }
              ]
            },
            "documentation": {
              "id": 6450,
              "nodeType": "StructuredDocumentation",
              "src": "5439:100:20",
              "text": "@notice Returns the name of the actual contract implementing the logic of this Witnet appliance."
            },
            "functionSelector": "bff852fa",
            "id": 6462,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "class",
            "nameLocation": "5554:5:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6452,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5570:8:20"
            },
            "parameters": {
              "id": 6451,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5559:2:20"
            },
            "returnParameters": {
              "id": 6455,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6454,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6462,
                  "src": "5600:13:20",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 6453,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "5600:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5599:15:20"
            },
            "scope": 8239,
            "src": "5545:122:20",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6591,
              "nodeType": "Block",
              "src": "5796:1665:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 6494,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 6477,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "expression": {
                                "id": 6473,
                                "name": "_witOracle",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6464,
                                "src": "5830:10:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6474,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5841:4:20",
                              "memberName": "code",
                              "nodeType": "MemberAccess",
                              "src": "5830:15:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 6475,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5846:6:20",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "5830:22:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 6476,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5855:1:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "5830:26:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          },
                          "id": 6493,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "arguments": [
                                  {
                                    "id": 6479,
                                    "name": "_witOracle",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6464,
                                    "src": "5897:10:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 6478,
                                  "name": "IWitOracleAppliance",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26593,
                                  "src": "5877:19:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_IWitOracleAppliance_$26593_$",
                                    "typeString": "type(contract IWitOracleAppliance)"
                                  }
                                },
                                "id": 6480,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5877:31:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IWitOracleAppliance_$26593",
                                  "typeString": "contract IWitOracleAppliance"
                                }
                              },
                              "id": 6481,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5909:5:20",
                              "memberName": "specs",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26478,
                              "src": "5877:37:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_bytes4_$",
                                "typeString": "function () view external returns (bytes4)"
                              }
                            },
                            "id": 6482,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5877:39:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "components": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_bytes4",
                                  "typeString": "bytes4"
                                },
                                "id": 6491,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "id": 6484,
                                        "name": "IWitOracle",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 26581,
                                        "src": "5948:10:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_IWitOracle_$26581_$",
                                          "typeString": "type(contract IWitOracle)"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_type$_t_contract$_IWitOracle_$26581_$",
                                          "typeString": "type(contract IWitOracle)"
                                        }
                                      ],
                                      "id": 6483,
                                      "name": "type",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967269,
                                      "src": "5943:4:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                        "typeString": "function () pure"
                                      }
                                    },
                                    "id": 6485,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5943:16:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_meta_type_t_contract$_IWitOracle_$26581",
                                      "typeString": "type(contract IWitOracle)"
                                    }
                                  },
                                  "id": 6486,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberLocation": "5960:11:20",
                                  "memberName": "interfaceId",
                                  "nodeType": "MemberAccess",
                                  "src": "5943:28:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "^",
                                "rightExpression": {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "id": 6488,
                                        "name": "IWitOracleQueriable",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 26795,
                                        "src": "6004:19:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_IWitOracleQueriable_$26795_$",
                                          "typeString": "type(contract IWitOracleQueriable)"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_type$_t_contract$_IWitOracleQueriable_$26795_$",
                                          "typeString": "type(contract IWitOracleQueriable)"
                                        }
                                      ],
                                      "id": 6487,
                                      "name": "type",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967269,
                                      "src": "5999:4:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                        "typeString": "function () pure"
                                      }
                                    },
                                    "id": 6489,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5999:25:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_meta_type_t_contract$_IWitOracleQueriable_$26795",
                                      "typeString": "type(contract IWitOracleQueriable)"
                                    }
                                  },
                                  "id": 6490,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberLocation": "6025:11:20",
                                  "memberName": "interfaceId",
                                  "nodeType": "MemberAccess",
                                  "src": "5999:37:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  }
                                },
                                "src": "5943:93:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes4",
                                  "typeString": "bytes4"
                                }
                              }
                            ],
                            "id": 6492,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "5920:135:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          },
                          "src": "5877:178:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5830:225:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "756e636f6d706c69616e74205769744f7261636c65",
                        "id": 6495,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6071:23:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_88befee3ba5c189010778f74932db43189cb9b3004f5ce28b939e00e001a6708",
                          "typeString": "literal_string \"uncompliant WitOracle\""
                        },
                        "value": "uncompliant WitOracle"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_88befee3ba5c189010778f74932db43189cb9b3004f5ce28b939e00e001a6708",
                          "typeString": "literal_string \"uncompliant WitOracle\""
                        }
                      ],
                      "id": 6472,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "5807:8:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 6496,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5807:298:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6497,
                  "nodeType": "ExpressionStatement",
                  "src": "5807:298:20"
                },
                {
                  "expression": {
                    "id": 6500,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6498,
                      "name": "__WIT_ORACLE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6449,
                      "src": "6116:12:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 6499,
                      "name": "_witOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6464,
                      "src": "6131:10:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "6116:25:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 6501,
                  "nodeType": "ExpressionStatement",
                  "src": "6116:25:20"
                },
                {
                  "assignments": [
                    6504
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6504,
                      "mutability": "mutable",
                      "name": "_witOracleRadonRegistry",
                      "nameLocation": "6233:23:20",
                      "nodeType": "VariableDeclaration",
                      "scope": 6591,
                      "src": "6209:47:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                        "typeString": "contract IWitOracleRadonRegistry"
                      },
                      "typeName": {
                        "id": 6503,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 6502,
                          "name": "IWitOracleRadonRegistry",
                          "nameLocations": [
                            "6209:23:20"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 27394,
                          "src": "6209:23:20"
                        },
                        "referencedDeclaration": 27394,
                        "src": "6209:23:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                          "typeString": "contract IWitOracleRadonRegistry"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6510,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "arguments": [
                          {
                            "id": 6506,
                            "name": "_witOracle",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6464,
                            "src": "6270:10:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 6505,
                          "name": "IWitOracle",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26581,
                          "src": "6259:10:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IWitOracle_$26581_$",
                            "typeString": "type(contract IWitOracle)"
                          }
                        },
                        "id": 6507,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6259:22:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitOracle_$26581",
                          "typeString": "contract IWitOracle"
                        }
                      },
                      "id": 6508,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6282:8:20",
                      "memberName": "registry",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 26580,
                      "src": "6259:31:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWitOracleRadonRegistry_$27394_$",
                        "typeString": "function () view external returns (contract IWitOracleRadonRegistry)"
                      }
                    },
                    "id": 6509,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6259:33:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                      "typeString": "contract IWitOracleRadonRegistry"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6209:83:20"
                },
                {
                  "expression": {
                    "id": 6559,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6511,
                      "name": "__WIT_ORACLE_RNG_RADON_HASH",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6376,
                      "src": "6303:27:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                        "typeString": "Witnet.RadonHash"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "components": [
                                {
                                  "arguments": [
                                    {
                                      "expression": {
                                        "expression": {
                                          "id": 6518,
                                          "name": "Witnet",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 40741,
                                          "src": "6496:6:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                            "typeString": "type(library Witnet)"
                                          }
                                        },
                                        "id": 6519,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "6503:21:20",
                                        "memberName": "RadonRetrievalMethods",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 37802,
                                        "src": "6496:28:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_enum$_RadonRetrievalMethods_$37802_$",
                                          "typeString": "type(enum Witnet.RadonRetrievalMethods)"
                                        }
                                      },
                                      "id": 6520,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberLocation": "6525:3:20",
                                      "memberName": "RNG",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 37799,
                                      "src": "6496:32:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_enum$_RadonRetrievalMethods_$37802",
                                        "typeString": "enum Witnet.RadonRetrievalMethods"
                                      }
                                    },
                                    {
                                      "hexValue": "",
                                      "id": 6521,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "string",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6551:2:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                        "typeString": "literal_string \"\""
                                      },
                                      "value": ""
                                    },
                                    {
                                      "hexValue": "",
                                      "id": 6522,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "string",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6594:2:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                        "typeString": "literal_string \"\""
                                      },
                                      "value": ""
                                    },
                                    {
                                      "arguments": [
                                        {
                                          "hexValue": "30",
                                          "id": 6528,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "6654:1:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                          },
                                          "value": "0"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                          }
                                        ],
                                        "id": 6527,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "NewExpression",
                                        "src": "6638:15:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$",
                                          "typeString": "function (uint256) pure returns (string memory[2] memory[] memory)"
                                        },
                                        "typeName": {
                                          "baseType": {
                                            "baseType": {
                                              "id": 6523,
                                              "name": "string",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "6642:6:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_string_storage_ptr",
                                                "typeString": "string"
                                              }
                                            },
                                            "id": 6525,
                                            "length": {
                                              "hexValue": "32",
                                              "id": 6524,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "6649:1:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_2_by_1",
                                                "typeString": "int_const 2"
                                              },
                                              "value": "2"
                                            },
                                            "nodeType": "ArrayTypeName",
                                            "src": "6642:9:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr",
                                              "typeString": "string[2]"
                                            }
                                          },
                                          "id": 6526,
                                          "nodeType": "ArrayTypeName",
                                          "src": "6642:11:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr",
                                            "typeString": "string[2][]"
                                          }
                                        }
                                      },
                                      "id": 6529,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "6638:18:20",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr",
                                        "typeString": "string memory[2] memory[] memory"
                                      }
                                    },
                                    {
                                      "hexValue": "80",
                                      "id": 6530,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "hexString",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6701:7:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_stringliteral_56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
                                        "typeString": "literal_string hex\"80\""
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_enum$_RadonRetrievalMethods_$37802",
                                        "typeString": "enum Witnet.RadonRetrievalMethods"
                                      },
                                      {
                                        "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                        "typeString": "literal_string \"\""
                                      },
                                      {
                                        "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                        "typeString": "literal_string \"\""
                                      },
                                      {
                                        "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr",
                                        "typeString": "string memory[2] memory[] memory"
                                      },
                                      {
                                        "typeIdentifier": "t_stringliteral_56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
                                        "typeString": "literal_string hex\"80\""
                                      }
                                    ],
                                    "expression": {
                                      "id": 6516,
                                      "name": "_witOracleRadonRegistry",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6504,
                                      "src": "6429:23:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                                        "typeString": "contract IWitOracleRadonRegistry"
                                      }
                                    },
                                    "id": 6517,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "6453:20:20",
                                    "memberName": "verifyRadonRetrieval",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 27393,
                                    "src": "6429:44:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_enum$_RadonRetrievalMethods_$37802_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                      "typeString": "function (enum Witnet.RadonRetrievalMethods,string memory,string memory,string memory[2] memory[] memory,bytes memory) external returns (bytes32)"
                                    }
                                  },
                                  "id": 6531,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6429:325:20",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "id": 6532,
                              "isConstant": false,
                              "isInlineArray": true,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "6410:359:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                                "typeString": "bytes32[1] memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                                "typeString": "bytes32[1] memory"
                              }
                            ],
                            "expression": {
                              "id": 6514,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "6390:6:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 6515,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "6397:12:20",
                            "memberName": "intoMemArray",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 39126,
                            "src": "6390:19:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$1_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                              "typeString": "function (bytes32[1] memory) pure returns (bytes32[] memory)"
                            }
                          },
                          "id": 6533,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6390:380:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        {
                          "arguments": [
                            {
                              "expression": {
                                "expression": {
                                  "id": 6536,
                                  "name": "Witnet",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 40741,
                                  "src": "6832:6:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                    "typeString": "type(library Witnet)"
                                  }
                                },
                                "id": 6537,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "6839:18:20",
                                "memberName": "RadonReduceOpcodes",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37762,
                                "src": "6832:25:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_RadonReduceOpcodes_$37762_$",
                                  "typeString": "type(enum Witnet.RadonReduceOpcodes)"
                                }
                              },
                              "id": 6538,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "6858:4:20",
                              "memberName": "Mode",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37752,
                              "src": "6832:30:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_RadonReduceOpcodes_$37762",
                                "typeString": "enum Witnet.RadonReduceOpcodes"
                              }
                            },
                            {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 6543,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6915:1:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 6542,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "6890:24:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_RadonFilter_$37727_memory_ptr_$dyn_memory_ptr_$",
                                  "typeString": "function (uint256) pure returns (struct Witnet.RadonFilter memory[] memory)"
                                },
                                "typeName": {
                                  "baseType": {
                                    "id": 6540,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 6539,
                                      "name": "Witnet.RadonFilter",
                                      "nameLocations": [
                                        "6894:6:20",
                                        "6901:11:20"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 37727,
                                      "src": "6894:18:20"
                                    },
                                    "referencedDeclaration": 37727,
                                    "src": "6894:18:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_RadonFilter_$37727_storage_ptr",
                                      "typeString": "struct Witnet.RadonFilter"
                                    }
                                  },
                                  "id": 6541,
                                  "nodeType": "ArrayTypeName",
                                  "src": "6894:20:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_RadonFilter_$37727_storage_$dyn_storage_ptr",
                                    "typeString": "struct Witnet.RadonFilter[]"
                                  }
                                }
                              },
                              "id": 6544,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "6890:27:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_RadonFilter_$37727_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct Witnet.RadonFilter memory[] memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_enum$_RadonReduceOpcodes_$37762",
                                "typeString": "enum Witnet.RadonReduceOpcodes"
                              },
                              {
                                "typeIdentifier": "t_array$_t_struct$_RadonFilter_$37727_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct Witnet.RadonFilter memory[] memory"
                              }
                            ],
                            "expression": {
                              "id": 6534,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "6785:6:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 6535,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "6792:12:20",
                            "memberName": "RadonReducer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37748,
                            "src": "6785:19:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_RadonReducer_$37748_storage_ptr_$",
                              "typeString": "type(struct Witnet.RadonReducer storage pointer)"
                            }
                          },
                          "id": 6545,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "6824:6:20",
                            "6881:7:20"
                          ],
                          "names": [
                            "opcode",
                            "filters"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "6785:148:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RadonReducer_$37748_memory_ptr",
                            "typeString": "struct Witnet.RadonReducer memory"
                          }
                        },
                        {
                          "arguments": [
                            {
                              "expression": {
                                "expression": {
                                  "id": 6548,
                                  "name": "Witnet",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 40741,
                                  "src": "6995:6:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                    "typeString": "type(library Witnet)"
                                  }
                                },
                                "id": 6549,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "7002:18:20",
                                "memberName": "RadonReduceOpcodes",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37762,
                                "src": "6995:25:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_RadonReduceOpcodes_$37762_$",
                                  "typeString": "type(enum Witnet.RadonReduceOpcodes)"
                                }
                              },
                              "id": 6550,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "7021:18:20",
                              "memberName": "ConcatenateAndHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37761,
                              "src": "6995:44:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_RadonReduceOpcodes_$37762",
                                "typeString": "enum Witnet.RadonReduceOpcodes"
                              }
                            },
                            {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 6555,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7092:1:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 6554,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "7067:24:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_RadonFilter_$37727_memory_ptr_$dyn_memory_ptr_$",
                                  "typeString": "function (uint256) pure returns (struct Witnet.RadonFilter memory[] memory)"
                                },
                                "typeName": {
                                  "baseType": {
                                    "id": 6552,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 6551,
                                      "name": "Witnet.RadonFilter",
                                      "nameLocations": [
                                        "7071:6:20",
                                        "7078:11:20"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 37727,
                                      "src": "7071:18:20"
                                    },
                                    "referencedDeclaration": 37727,
                                    "src": "7071:18:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_RadonFilter_$37727_storage_ptr",
                                      "typeString": "struct Witnet.RadonFilter"
                                    }
                                  },
                                  "id": 6553,
                                  "nodeType": "ArrayTypeName",
                                  "src": "7071:20:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_RadonFilter_$37727_storage_$dyn_storage_ptr",
                                    "typeString": "struct Witnet.RadonFilter[]"
                                  }
                                }
                              },
                              "id": 6556,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7067:27:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_RadonFilter_$37727_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct Witnet.RadonFilter memory[] memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_enum$_RadonReduceOpcodes_$37762",
                                "typeString": "enum Witnet.RadonReduceOpcodes"
                              },
                              {
                                "typeIdentifier": "t_array$_t_struct$_RadonFilter_$37727_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct Witnet.RadonFilter memory[] memory"
                              }
                            ],
                            "expression": {
                              "id": 6546,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "6948:6:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 6547,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "6955:12:20",
                            "memberName": "RadonReducer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37748,
                            "src": "6948:19:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_RadonReducer_$37748_storage_ptr_$",
                              "typeString": "type(struct Witnet.RadonReducer storage pointer)"
                            }
                          },
                          "id": 6557,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "6987:6:20",
                            "7058:7:20"
                          ],
                          "names": [
                            "opcode",
                            "filters"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "6948:162:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RadonReducer_$37748_memory_ptr",
                            "typeString": "struct Witnet.RadonReducer memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_RadonReducer_$37748_memory_ptr",
                            "typeString": "struct Witnet.RadonReducer memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_RadonReducer_$37748_memory_ptr",
                            "typeString": "struct Witnet.RadonReducer memory"
                          }
                        ],
                        "expression": {
                          "id": 6512,
                          "name": "_witOracleRadonRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6504,
                          "src": "6333:23:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                            "typeString": "contract IWitOracleRadonRegistry"
                          }
                        },
                        "id": 6513,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6357:18:20",
                        "memberName": "verifyRadonRequest",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27303,
                        "src": "6333:42:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_struct$_RadonReducer_$37748_memory_ptr_$_t_struct$_RadonReducer_$37748_memory_ptr_$returns$_t_userDefinedValueType$_RadonHash_$37153_$",
                          "typeString": "function (bytes32[] memory,struct Witnet.RadonReducer memory,struct Witnet.RadonReducer memory) external returns (Witnet.RadonHash)"
                        }
                      },
                      "id": 6558,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6333:788:20",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                        "typeString": "Witnet.RadonHash"
                      }
                    },
                    "src": "6303:818:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                      "typeString": "Witnet.RadonHash"
                    }
                  },
                  "id": 6560,
                  "nodeType": "ExpressionStatement",
                  "src": "6303:818:20"
                },
                {
                  "expression": {
                    "id": 6565,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6561,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "7167:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 6562,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7167:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 6563,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "7179:18:20",
                      "memberName": "extraFeePercentage",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6421,
                      "src": "7167:30:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "3130",
                      "id": 6564,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7200:2:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_10_by_1",
                        "typeString": "int_const 10"
                      },
                      "value": "10"
                    },
                    "src": "7167:35:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "id": 6566,
                  "nodeType": "ExpressionStatement",
                  "src": "7167:35:20"
                },
                {
                  "expression": {
                    "id": 6571,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6567,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "7221:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 6568,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7221:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 6569,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "7233:16:20",
                      "memberName": "callbackGasLimit",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6419,
                      "src": "7221:28:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 6570,
                      "name": "_WIT_ORACLE_MIN_CALLBACK_GAS_LIMIT",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6384,
                      "src": "7252:34:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "src": "7221:65:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "id": 6572,
                  "nodeType": "ExpressionStatement",
                  "src": "7221:65:20"
                },
                {
                  "expression": {
                    "id": 6577,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6573,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "7297:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 6574,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7297:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 6575,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "7309:22:20",
                      "memberName": "randomizeWaitingBlocks",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6433,
                      "src": "7297:34:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 6576,
                      "name": "_DEFAULT_RANDOMIZE_WAITING_BLOCKS",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6380,
                      "src": "7334:33:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "7297:70:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "id": 6578,
                  "nodeType": "ExpressionStatement",
                  "src": "7297:70:20"
                },
                {
                  "expression": {
                    "id": 6583,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6579,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "7378:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 6580,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7378:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 6581,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "7390:16:20",
                      "memberName": "witCommitteeSize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6425,
                      "src": "7378:28:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "33",
                      "id": 6582,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7409:1:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_3_by_1",
                        "typeString": "int_const 3"
                      },
                      "value": "3"
                    },
                    "src": "7378:32:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "id": 6584,
                  "nodeType": "ExpressionStatement",
                  "src": "7378:32:20"
                },
                {
                  "expression": {
                    "id": 6589,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6585,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "7421:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 6586,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7421:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 6587,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "7433:16:20",
                      "memberName": "witInclusionFees",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6427,
                      "src": "7421:28:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "30",
                      "id": 6588,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7452:1:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "7421:32:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "id": 6590,
                  "nodeType": "ExpressionStatement",
                  "src": "7421:32:20"
                }
              ]
            },
            "id": 6592,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 6469,
                    "name": "_operator",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6466,
                    "src": "5780:9:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 6470,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 6468,
                  "name": "Ownable",
                  "nameLocations": [
                    "5772:7:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 415,
                  "src": "5772:7:20"
                },
                "nodeType": "ModifierInvocation",
                "src": "5772:18:20"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6467,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6464,
                  "mutability": "mutable",
                  "name": "_witOracle",
                  "nameLocation": "5709:10:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6592,
                  "src": "5701:18:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6463,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5701:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6466,
                  "mutability": "mutable",
                  "name": "_operator",
                  "nameLocation": "5742:9:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6592,
                  "src": "5734:17:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6465,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5734:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5686:76:20"
            },
            "returnParameters": {
              "id": 6471,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5796:0:20"
            },
            "scope": 8239,
            "src": "5675:1786:20",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6599,
              "nodeType": "Block",
              "src": "7504:51:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "6e6f207472616e7366657273206163636570746564",
                        "id": 6596,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7523:23:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f6a3de9692f94e64d352d00a12d05352c77c858c192f0bd7d2824e77178191cf",
                          "typeString": "literal_string \"no transfers accepted\""
                        },
                        "value": "no transfers accepted"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_f6a3de9692f94e64d352d00a12d05352c77c858c192f0bd7d2824e77178191cf",
                          "typeString": "literal_string \"no transfers accepted\""
                        }
                      ],
                      "id": 6595,
                      "name": "_revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26513,
                      "src": "7515:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) view"
                      }
                    },
                    "id": 6597,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7515:32:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6598,
                  "nodeType": "ExpressionStatement",
                  "src": "7515:32:20"
                }
              ]
            },
            "id": 6600,
            "implemented": true,
            "kind": "receive",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6593,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7476:2:20"
            },
            "returnParameters": {
              "id": 6594,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7504:0:20"
            },
            "scope": 8239,
            "src": "7469:86:20",
            "stateMutability": "payable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6663,
              "nodeType": "Block",
              "src": "7599:345:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "hexValue": "6e6f7420696d706c656d656e7465643a203078",
                                "id": 6608,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7657:21:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_6aa2932fe75962e4eb862ba4982429ce713637712a759cb9d40b6d5260a002eb",
                                  "typeString": "literal_string \"not implemented: 0x\""
                                },
                                "value": "not implemented: 0x"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "expression": {
                                              "id": 6615,
                                              "name": "msg",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4294967281,
                                              "src": "7725:3:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                              }
                                            },
                                            "id": 6616,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberLocation": "7729:3:20",
                                            "memberName": "sig",
                                            "nodeType": "MemberAccess",
                                            "src": "7725:7:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          ],
                                          "id": 6614,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "7718:6:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 6613,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "7718:6:20",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 6617,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7718:15:20",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      ],
                                      "id": 6612,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "7712:5:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 6611,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7712:5:20",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 6618,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "7712:22:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 6609,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 40741,
                                    "src": "7693:6:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 6610,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7700:11:20",
                                  "memberName": "toHexString",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 40377,
                                  "src": "7693:18:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_string_memory_ptr_$",
                                    "typeString": "function (uint8) pure returns (string memory)"
                                  }
                                },
                                "id": 6619,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7693:42:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "commonType": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            },
                                            "id": 6629,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "expression": {
                                                "id": 6626,
                                                "name": "msg",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4294967281,
                                                "src": "7782:3:20",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_magic_message",
                                                  "typeString": "msg"
                                                }
                                              },
                                              "id": 6627,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberLocation": "7786:3:20",
                                              "memberName": "sig",
                                              "nodeType": "MemberAccess",
                                              "src": "7782:7:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes4",
                                                "typeString": "bytes4"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "<<",
                                            "rightExpression": {
                                              "hexValue": "38",
                                              "id": 6628,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "7793:1:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_8_by_1",
                                                "typeString": "int_const 8"
                                              },
                                              "value": "8"
                                            },
                                            "src": "7782:12:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          ],
                                          "id": 6625,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "7775:6:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 6624,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "7775:6:20",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 6630,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7775:20:20",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      ],
                                      "id": 6623,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "7769:5:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 6622,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7769:5:20",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 6631,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "7769:27:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 6620,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 40741,
                                    "src": "7750:6:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 6621,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7757:11:20",
                                  "memberName": "toHexString",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 40377,
                                  "src": "7750:18:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_string_memory_ptr_$",
                                    "typeString": "function (uint8) pure returns (string memory)"
                                  }
                                },
                                "id": 6632,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7750:47:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "commonType": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            },
                                            "id": 6642,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "expression": {
                                                "id": 6639,
                                                "name": "msg",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4294967281,
                                                "src": "7844:3:20",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_magic_message",
                                                  "typeString": "msg"
                                                }
                                              },
                                              "id": 6640,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberLocation": "7848:3:20",
                                              "memberName": "sig",
                                              "nodeType": "MemberAccess",
                                              "src": "7844:7:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes4",
                                                "typeString": "bytes4"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "<<",
                                            "rightExpression": {
                                              "hexValue": "3136",
                                              "id": 6641,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "7855:2:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_16_by_1",
                                                "typeString": "int_const 16"
                                              },
                                              "value": "16"
                                            },
                                            "src": "7844:13:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          ],
                                          "id": 6638,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "7837:6:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 6637,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "7837:6:20",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 6643,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7837:21:20",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      ],
                                      "id": 6636,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "7831:5:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 6635,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7831:5:20",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 6644,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "7831:28:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 6633,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 40741,
                                    "src": "7812:6:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 6634,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7819:11:20",
                                  "memberName": "toHexString",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 40377,
                                  "src": "7812:18:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_string_memory_ptr_$",
                                    "typeString": "function (uint8) pure returns (string memory)"
                                  }
                                },
                                "id": 6645,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7812:48:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "commonType": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            },
                                            "id": 6655,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "expression": {
                                                "id": 6652,
                                                "name": "msg",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4294967281,
                                                "src": "7907:3:20",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_magic_message",
                                                  "typeString": "msg"
                                                }
                                              },
                                              "id": 6653,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberLocation": "7911:3:20",
                                              "memberName": "sig",
                                              "nodeType": "MemberAccess",
                                              "src": "7907:7:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes4",
                                                "typeString": "bytes4"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "<<",
                                            "rightExpression": {
                                              "hexValue": "3234",
                                              "id": 6654,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "7918:2:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_24_by_1",
                                                "typeString": "int_const 24"
                                              },
                                              "value": "24"
                                            },
                                            "src": "7907:13:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes4",
                                              "typeString": "bytes4"
                                            }
                                          ],
                                          "id": 6651,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "7900:6:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 6650,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "7900:6:20",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 6656,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7900:21:20",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      ],
                                      "id": 6649,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "7894:5:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 6648,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7894:5:20",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 6657,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "7894:28:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 6646,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 40741,
                                    "src": "7875:6:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 6647,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7882:11:20",
                                  "memberName": "toHexString",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 40377,
                                  "src": "7875:18:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_string_memory_ptr_$",
                                    "typeString": "function (uint8) pure returns (string memory)"
                                  }
                                },
                                "id": 6658,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7875:48:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_6aa2932fe75962e4eb862ba4982429ce713637712a759cb9d40b6d5260a002eb",
                                  "typeString": "literal_string \"not implemented: 0x\""
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "expression": {
                                "id": 6606,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967295,
                                "src": "7626:3:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 6607,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "7630:12:20",
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "src": "7626:16:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 6659,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7626:308:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 6605,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7619:6:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                            "typeString": "type(string storage pointer)"
                          },
                          "typeName": {
                            "id": 6604,
                            "name": "string",
                            "nodeType": "ElementaryTypeName",
                            "src": "7619:6:20",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 6660,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7619:316:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 6603,
                      "name": "_revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26513,
                      "src": "7611:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) view"
                      }
                    },
                    "id": 6661,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7611:325:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6662,
                  "nodeType": "ExpressionStatement",
                  "src": "7611:325:20"
                }
              ]
            },
            "id": 6664,
            "implemented": true,
            "kind": "fallback",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6601,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7571:2:20"
            },
            "returnParameters": {
              "id": 6602,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7599:0:20"
            },
            "scope": 8239,
            "src": "7563:381:20",
            "stateMutability": "payable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6748,
              "nodeType": "Block",
              "src": "8129:721:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 6685,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 6680,
                          "name": "_curator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6666,
                          "src": "8163:8:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 6683,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8183:1:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 6682,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "8175:7:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 6681,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "8175:7:20",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 6684,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8175:10:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "8163:22:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "7a65726f2063757261746f72",
                        "id": 6686,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8201:14:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f3d3dea7689f4d18bf878be7bd329439946de15b1985b3c19e2afeae84294d3e",
                          "typeString": "literal_string \"zero curator\""
                        },
                        "value": "zero curator"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f3d3dea7689f4d18bf878be7bd329439946de15b1985b3c19e2afeae84294d3e",
                          "typeString": "literal_string \"zero curator\""
                        }
                      ],
                      "id": 6679,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "8140:8:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 6687,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8140:86:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6688,
                  "nodeType": "ExpressionStatement",
                  "src": "8140:86:20"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6690,
                        "name": "_curator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6666,
                        "src": "8256:8:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 6689,
                      "name": "_transferOwnership",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        45684
                      ],
                      "referencedDeclaration": 45684,
                      "src": "8237:18:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 6691,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8237:28:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6692,
                  "nodeType": "ExpressionStatement",
                  "src": "8237:28:20"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 6702,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          },
                          "id": 6697,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 6694,
                              "name": "_settings",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6669,
                              "src": "8309:9:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CloneSettings_$6416_calldata_ptr",
                                "typeString": "struct WitRandomnessV3.CloneSettings calldata"
                              }
                            },
                            "id": 6695,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "8319:16:20",
                            "memberName": "witCommitteeSize",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6411,
                            "src": "8309:26:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 6696,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8338:1:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "8309:30:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          },
                          "id": 6701,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 6698,
                              "name": "_settings",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6669,
                              "src": "8360:9:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CloneSettings_$6416_calldata_ptr",
                                "typeString": "struct WitRandomnessV3.CloneSettings calldata"
                              }
                            },
                            "id": 6699,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "8370:16:20",
                            "memberName": "witCommitteeSize",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6411,
                            "src": "8360:26:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "hexValue": "313237",
                            "id": 6700,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8390:3:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_127_by_1",
                              "typeString": "int_const 127"
                            },
                            "value": "127"
                          },
                          "src": "8360:33:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8309:84:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e76616c69642073657474696e6773",
                        "id": 6703,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8408:18:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9c68daa0676b7a34bdf9a49135ac385715282c063c3162ae04ac099e9808a3d2",
                          "typeString": "literal_string \"invalid settings\""
                        },
                        "value": "invalid settings"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9c68daa0676b7a34bdf9a49135ac385715282c063c3162ae04ac099e9808a3d2",
                          "typeString": "literal_string \"invalid settings\""
                        }
                      ],
                      "id": 6693,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "8286:8:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 6704,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8286:151:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6705,
                  "nodeType": "ExpressionStatement",
                  "src": "8286:151:20"
                },
                {
                  "expression": {
                    "id": 6711,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6706,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "8448:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 6707,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8448:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 6708,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "8460:16:20",
                      "memberName": "callbackGasLimit",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6419,
                      "src": "8448:28:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 6709,
                        "name": "_settings",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6669,
                        "src": "8479:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CloneSettings_$6416_calldata_ptr",
                          "typeString": "struct WitRandomnessV3.CloneSettings calldata"
                        }
                      },
                      "id": 6710,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8489:16:20",
                      "memberName": "callbackGasLimit",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6407,
                      "src": "8479:26:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "src": "8448:57:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "id": 6712,
                  "nodeType": "ExpressionStatement",
                  "src": "8448:57:20"
                },
                {
                  "expression": {
                    "id": 6718,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6713,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "8516:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 6714,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8516:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 6715,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "8528:18:20",
                      "memberName": "extraFeePercentage",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6421,
                      "src": "8516:30:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 6716,
                        "name": "_settings",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6669,
                        "src": "8549:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CloneSettings_$6416_calldata_ptr",
                          "typeString": "struct WitRandomnessV3.CloneSettings calldata"
                        }
                      },
                      "id": 6717,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8559:18:20",
                      "memberName": "extraFeePercentage",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6409,
                      "src": "8549:28:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "8516:61:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "id": 6719,
                  "nodeType": "ExpressionStatement",
                  "src": "8516:61:20"
                },
                {
                  "expression": {
                    "id": 6725,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6720,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "8588:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 6721,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8588:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 6722,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "8600:16:20",
                      "memberName": "witCommitteeSize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6425,
                      "src": "8588:28:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 6723,
                        "name": "_settings",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6669,
                        "src": "8619:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CloneSettings_$6416_calldata_ptr",
                          "typeString": "struct WitRandomnessV3.CloneSettings calldata"
                        }
                      },
                      "id": 6724,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8629:16:20",
                      "memberName": "witCommitteeSize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6411,
                      "src": "8619:26:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "8588:57:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "id": 6726,
                  "nodeType": "ExpressionStatement",
                  "src": "8588:57:20"
                },
                {
                  "expression": {
                    "id": 6732,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6727,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "8656:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 6728,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8656:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 6729,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "8668:16:20",
                      "memberName": "witInclusionFees",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6427,
                      "src": "8656:28:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 6730,
                        "name": "_settings",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6669,
                        "src": "8687:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CloneSettings_$6416_calldata_ptr",
                          "typeString": "struct WitRandomnessV3.CloneSettings calldata"
                        }
                      },
                      "id": 6731,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8697:16:20",
                      "memberName": "witInclusionFees",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6413,
                      "src": "8687:26:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "8656:57:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "id": 6733,
                  "nodeType": "ExpressionStatement",
                  "src": "8656:57:20"
                },
                {
                  "expression": {
                    "id": 6739,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6734,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "8724:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 6735,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8724:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 6736,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "8736:22:20",
                      "memberName": "randomizeWaitingBlocks",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6433,
                      "src": "8724:34:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 6737,
                        "name": "_settings",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6669,
                        "src": "8761:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CloneSettings_$6416_calldata_ptr",
                          "typeString": "struct WitRandomnessV3.CloneSettings calldata"
                        }
                      },
                      "id": 6738,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8771:22:20",
                      "memberName": "randomizeWaitingBlocks",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6415,
                      "src": "8761:32:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "8724:69:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "id": 6740,
                  "nodeType": "ExpressionStatement",
                  "src": "8724:69:20"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 6744,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967268,
                            "src": "8836:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_WitRandomnessV3_$8239",
                              "typeString": "contract WitRandomnessV3"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_WitRandomnessV3_$8239",
                              "typeString": "contract WitRandomnessV3"
                            }
                          ],
                          "id": 6743,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8828:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 6742,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "8828:7:20",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 6745,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8828:13:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 6741,
                      "name": "IWitRandomness",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28351,
                      "src": "8813:14:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_IWitRandomness_$28351_$",
                        "typeString": "type(contract IWitRandomness)"
                      }
                    },
                    "id": 6746,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8813:29:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWitRandomness_$28351",
                      "typeString": "contract IWitRandomness"
                    }
                  },
                  "functionReturnParameters": 6678,
                  "id": 6747,
                  "nodeType": "Return",
                  "src": "8806:36:20"
                }
              ]
            },
            "functionSelector": "38332c5c",
            "id": 6749,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6672,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6671,
                  "name": "onlyOnClones",
                  "nameLocations": [
                    "8056:12:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45371,
                  "src": "8056:12:20"
                },
                "nodeType": "ModifierInvocation",
                "src": "8056:12:20"
              },
              {
                "id": 6674,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6673,
                  "name": "initializer",
                  "nameLocations": [
                    "8078:11:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 107,
                  "src": "8078:11:20"
                },
                "nodeType": "ModifierInvocation",
                "src": "8078:11:20"
              }
            ],
            "name": "initializeClone",
            "nameLocation": "7961:15:20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6670,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6666,
                  "mutability": "mutable",
                  "name": "_curator",
                  "nameLocation": "7985:8:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6749,
                  "src": "7977:16:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6665,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7977:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6669,
                  "mutability": "mutable",
                  "name": "_settings",
                  "nameLocation": "8018:9:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6749,
                  "src": "7995:32:20",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CloneSettings_$6416_calldata_ptr",
                    "typeString": "struct WitRandomnessV3.CloneSettings"
                  },
                  "typeName": {
                    "id": 6668,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6667,
                      "name": "CloneSettings",
                      "nameLocations": [
                        "7995:13:20"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 6416,
                      "src": "7995:13:20"
                    },
                    "referencedDeclaration": 6416,
                    "src": "7995:13:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CloneSettings_$6416_storage_ptr",
                      "typeString": "struct WitRandomnessV3.CloneSettings"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7976:52:20"
            },
            "returnParameters": {
              "id": 6678,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6677,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6749,
                  "src": "8108:14:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IWitRandomness_$28351",
                    "typeString": "contract IWitRandomness"
                  },
                  "typeName": {
                    "id": 6676,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6675,
                      "name": "IWitRandomness",
                      "nameLocations": [
                        "8108:14:20"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28351,
                      "src": "8108:14:20"
                    },
                    "referencedDeclaration": 28351,
                    "src": "8108:14:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWitRandomness_$28351",
                      "typeString": "contract IWitRandomness"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8107:16:20"
            },
            "scope": 8239,
            "src": "7952:898:20",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              45420
            ],
            "body": {
              "id": 6762,
              "nodeType": "Block",
              "src": "9169:58:20",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    },
                    "id": 6760,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6756,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "9187:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 6757,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9187:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 6758,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9199:16:20",
                      "memberName": "witCommitteeSize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6425,
                      "src": "9187:28:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6759,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9218:1:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9187:32:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6755,
                  "id": 6761,
                  "nodeType": "Return",
                  "src": "9180:39:20"
                }
              ]
            },
            "documentation": {
              "id": 6750,
              "nodeType": "StructuredDocumentation",
              "src": "8858:238:20",
              "text": "===============================================================================================================\n --- Clonable --------------------------------------------------------------------------------------------------"
            },
            "functionSelector": "158ef93e",
            "id": 6763,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initialized",
            "nameLocation": "9111:11:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6752,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "9133:8:20"
            },
            "parameters": {
              "id": 6751,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9122:2:20"
            },
            "returnParameters": {
              "id": 6755,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6754,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6763,
                  "src": "9163:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6753,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "9163:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9162:6:20"
            },
            "scope": 8239,
            "src": "9102:125:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28180,
              45400
            ],
            "body": {
              "id": 6776,
              "nodeType": "Block",
              "src": "9657:38:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 6772,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "9675:5:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_WitRandomnessV3_$8239_$",
                          "typeString": "type(contract super WitRandomnessV3)"
                        }
                      },
                      "id": 6773,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9681:4:20",
                      "memberName": "base",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 45400,
                      "src": "9675:10:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 6774,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9675:12:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 6771,
                  "id": 6775,
                  "nodeType": "Return",
                  "src": "9668:19:20"
                }
              ]
            },
            "documentation": {
              "id": 6764,
              "nodeType": "StructuredDocumentation",
              "src": "9485:76:20",
              "text": "Address of the underlying logic contract that can be potentially cloned."
            },
            "functionSelector": "5001f3b5",
            "id": 6777,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "base",
            "nameLocation": "9576:4:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6768,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 6766,
                  "name": "Clonable",
                  "nameLocations": [
                    "9601:8:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45518,
                  "src": "9601:8:20"
                },
                {
                  "id": 6767,
                  "name": "IWitRandomness",
                  "nameLocations": [
                    "9611:14:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 28351,
                  "src": "9611:14:20"
                }
              ],
              "src": "9591:35:20"
            },
            "parameters": {
              "id": 6765,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9580:2:20"
            },
            "returnParameters": {
              "id": 6771,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6770,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6777,
                  "src": "9648:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6769,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9648:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9647:9:20"
            },
            "scope": 8239,
            "src": "9567:128:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28189
            ],
            "body": {
              "id": 6815,
              "nodeType": "Block",
              "src": "10443:497:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6795,
                        "name": "_curator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6780,
                        "src": "10527:8:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 6797,
                                "name": "__storage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8238,
                                "src": "10601:9:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                  "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                }
                              },
                              "id": 6798,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10601:11:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Storage storage pointer"
                              }
                            },
                            "id": 6799,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10613:16:20",
                            "memberName": "callbackGasLimit",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6419,
                            "src": "10601:28:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            }
                          },
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 6800,
                                "name": "__storage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8238,
                                "src": "10668:9:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                  "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                }
                              },
                              "id": 6801,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10668:11:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Storage storage pointer"
                              }
                            },
                            "id": 6802,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10680:18:20",
                            "memberName": "extraFeePercentage",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6421,
                            "src": "10668:30:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 6803,
                                "name": "__storage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8238,
                                "src": "10735:9:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                  "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                }
                              },
                              "id": 6804,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10735:11:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Storage storage pointer"
                              }
                            },
                            "id": 6805,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10747:16:20",
                            "memberName": "witCommitteeSize",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6425,
                            "src": "10735:28:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 6806,
                                "name": "__storage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8238,
                                "src": "10800:9:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                  "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                }
                              },
                              "id": 6807,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10800:11:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Storage storage pointer"
                              }
                            },
                            "id": 6808,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10812:16:20",
                            "memberName": "witInclusionFees",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6427,
                            "src": "10800:28:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 6809,
                                "name": "__storage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8238,
                                "src": "10871:9:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                  "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                }
                              },
                              "id": 6810,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10871:11:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Storage storage pointer"
                              }
                            },
                            "id": 6811,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10883:22:20",
                            "memberName": "randomizeWaitingBlocks",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6433,
                            "src": "10871:34:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            },
                            {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            },
                            {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            },
                            {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            },
                            {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          ],
                          "id": 6796,
                          "name": "CloneSettings",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6416,
                          "src": "10550:13:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_CloneSettings_$6416_storage_ptr_$",
                            "typeString": "type(struct WitRandomnessV3.CloneSettings storage pointer)"
                          }
                        },
                        "id": 6812,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "nameLocations": [
                          "10583:16:20",
                          "10648:18:20",
                          "10717:16:20",
                          "10782:16:20",
                          "10847:22:20"
                        ],
                        "names": [
                          "callbackGasLimit",
                          "extraFeePercentage",
                          "witCommitteeSize",
                          "witInclusionFees",
                          "randomizeWaitingBlocks"
                        ],
                        "nodeType": "FunctionCall",
                        "src": "10550:371:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CloneSettings_$6416_memory_ptr",
                          "typeString": "struct WitRandomnessV3.CloneSettings memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_struct$_CloneSettings_$6416_memory_ptr",
                          "typeString": "struct WitRandomnessV3.CloneSettings memory"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 6790,
                                  "name": "__clone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 45451,
                                  "src": "10485:7:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_address_$",
                                    "typeString": "function () returns (address)"
                                  }
                                },
                                "id": 6791,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10485:9:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 6789,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "10477:8:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_payable_$",
                                "typeString": "type(address payable)"
                              },
                              "typeName": {
                                "id": 6788,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "10477:8:20",
                                "stateMutability": "payable",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 6792,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10477:18:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 6787,
                          "name": "WitRandomnessV3",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8239,
                          "src": "10461:15:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitRandomnessV3_$8239_$",
                            "typeString": "type(contract WitRandomnessV3)"
                          }
                        },
                        "id": 6793,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10461:35:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_WitRandomnessV3_$8239",
                          "typeString": "contract WitRandomnessV3"
                        }
                      },
                      "id": 6794,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10497:15:20",
                      "memberName": "initializeClone",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6749,
                      "src": "10461:51:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_struct$_CloneSettings_$6416_memory_ptr_$returns$_t_contract$_IWitRandomness_$28351_$",
                        "typeString": "function (address,struct WitRandomnessV3.CloneSettings memory) external returns (contract IWitRandomness)"
                      }
                    },
                    "id": 6813,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10461:471:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWitRandomness_$28351",
                      "typeString": "contract IWitRandomness"
                    }
                  },
                  "functionReturnParameters": 6786,
                  "id": 6814,
                  "nodeType": "Return",
                  "src": "10454:478:20"
                }
              ]
            },
            "documentation": {
              "id": 6778,
              "nodeType": "StructuredDocumentation",
              "src": "9703:617:20",
              "text": "Creates a light-proxy clone to the `base()` logic address, to be owned by the specified `curator`address.\n Curators of cloned instances can optionally settle one single `IWitRandomnessConsumer` consuming contract.\n The consuming contract, if settled, will be immediately reported every time a new `randomize()` request\n gets solved and bridged back from Witnet. Either way, randomness resolutions will be reamin stored in the \n `WitRandomness` storage, as for future reference. \n @param _curator Address that will have authoritative access to `IWitRandomnessAdmin` methods."
            },
            "functionSelector": "8124b78e",
            "id": 6816,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "clone",
            "nameLocation": "10335:5:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6782,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10376:8:20"
            },
            "parameters": {
              "id": 6781,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6780,
                  "mutability": "mutable",
                  "name": "_curator",
                  "nameLocation": "10349:8:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6816,
                  "src": "10341:16:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6779,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10341:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10340:18:20"
            },
            "returnParameters": {
              "id": 6786,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6785,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6816,
                  "src": "10422:14:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IWitRandomness_$28351",
                    "typeString": "contract IWitRandomness"
                  },
                  "typeName": {
                    "id": 6784,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6783,
                      "name": "IWitRandomness",
                      "nameLocations": [
                        "10422:14:20"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28351,
                      "src": "10422:14:20"
                    },
                    "referencedDeclaration": 28351,
                    "src": "10422:14:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWitRandomness_$28351",
                      "typeString": "contract IWitRandomness"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10421:16:20"
            },
            "scope": 8239,
            "src": "10326:614:20",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              28196
            ],
            "body": {
              "id": 6830,
              "nodeType": "Block",
              "src": "11480:80:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 6825,
                            "name": "__storage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8238,
                            "src": "11531:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                            }
                          },
                          "id": 6826,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11531:11:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                            "typeString": "struct WitRandomnessV3.Storage storage pointer"
                          }
                        },
                        "id": 6827,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "11543:8:20",
                        "memberName": "consumer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6431,
                        "src": "11531:20:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 6824,
                      "name": "IWitRandomnessConsumer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28425,
                      "src": "11508:22:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_IWitRandomnessConsumer_$28425_$",
                        "typeString": "type(contract IWitRandomnessConsumer)"
                      }
                    },
                    "id": 6828,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11508:44:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWitRandomnessConsumer_$28425",
                      "typeString": "contract IWitRandomnessConsumer"
                    }
                  },
                  "functionReturnParameters": 6823,
                  "id": 6829,
                  "nodeType": "Return",
                  "src": "11501:51:20"
                }
              ]
            },
            "documentation": {
              "id": 6817,
              "nodeType": "StructuredDocumentation",
              "src": "10948:408:20",
              "text": "Returns the consumer address where all valid randomize results will be reported to.\n @dev If zero, generated randomness will not be reported to any other external address. \n @dev The consumer contract must implement the `IWitRandomnessConsumer` interface, \n @dev and accept this instance as source of entropy.\n @dev It can only be settled by a curator on cloned instances."
            },
            "functionSelector": "b4fd7296",
            "id": 6831,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "consumer",
            "nameLocation": "11371:8:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6819,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11400:8:20"
            },
            "parameters": {
              "id": 6818,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11379:2:20"
            },
            "returnParameters": {
              "id": 6823,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6822,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6831,
                  "src": "11451:22:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IWitRandomnessConsumer_$28425",
                    "typeString": "contract IWitRandomnessConsumer"
                  },
                  "typeName": {
                    "id": 6821,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6820,
                      "name": "IWitRandomnessConsumer",
                      "nameLocations": [
                        "11451:22:20"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28425,
                      "src": "11451:22:20"
                    },
                    "referencedDeclaration": 28425,
                    "src": "11451:22:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWitRandomnessConsumer_$28425",
                      "typeString": "contract IWitRandomnessConsumer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11450:24:20"
            },
            "scope": 8239,
            "src": "11362:198:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              28204
            ],
            "body": {
              "id": 6864,
              "nodeType": "Block",
              "src": "11846:256:20",
              "statements": [
                {
                  "assignments": [
                    6841
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6841,
                      "mutability": "mutable",
                      "name": "_baseFee",
                      "nameLocation": "11865:8:20",
                      "nodeType": "VariableDeclaration",
                      "scope": 6864,
                      "src": "11857:16:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6840,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "11857:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6851,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 6846,
                        "name": "_evmGasPrice",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6834,
                        "src": "11952:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 6847,
                            "name": "__storage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8238,
                            "src": "11980:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                            }
                          },
                          "id": 6848,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11980:11:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                            "typeString": "struct WitRandomnessV3.Storage storage pointer"
                          }
                        },
                        "id": 6849,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "11992:16:20",
                        "memberName": "callbackGasLimit",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6419,
                        "src": "11980:28:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 6843,
                            "name": "__WIT_ORACLE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6449,
                            "src": "11896:12:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 6842,
                          "name": "IWitOracleQueriable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26795,
                          "src": "11876:19:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IWitOracleQueriable_$26795_$",
                            "typeString": "type(contract IWitOracleQueriable)"
                          }
                        },
                        "id": 6844,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11876:33:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitOracleQueriable_$26795",
                          "typeString": "contract IWitOracleQueriable"
                        }
                      },
                      "id": 6845,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11910:27:20",
                      "memberName": "estimateBaseFeeWithCallback",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 26636,
                      "src": "11876:61:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint24_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint24) view external returns (uint256)"
                      }
                    },
                    "id": 6850,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11876:143:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11857:162:20"
                },
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6862,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 6859,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 6852,
                            "name": "_baseFee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6841,
                            "src": "12038:8:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "components": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint16",
                                  "typeString": "uint16"
                                },
                                "id": 6857,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "hexValue": "313030",
                                  "id": 6853,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "12050:3:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_100_by_1",
                                    "typeString": "int_const 100"
                                  },
                                  "value": "100"
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "expression": {
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "id": 6854,
                                      "name": "__storage",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8238,
                                      "src": "12056:9:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                        "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                      }
                                    },
                                    "id": 6855,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "12056:11:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                      "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                    }
                                  },
                                  "id": 6856,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "12068:18:20",
                                  "memberName": "extraFeePercentage",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 6421,
                                  "src": "12056:30:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint16",
                                    "typeString": "uint16"
                                  }
                                },
                                "src": "12050:36:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint16",
                                  "typeString": "uint16"
                                }
                              }
                            ],
                            "id": 6858,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "12049:38:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          "src": "12038:49:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 6860,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "12037:51:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "hexValue": "313030",
                      "id": 6861,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12091:3:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_100_by_1",
                        "typeString": "int_const 100"
                      },
                      "value": "100"
                    },
                    "src": "12037:57:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6839,
                  "id": 6863,
                  "nodeType": "Return",
                  "src": "12030:64:20"
                }
              ]
            },
            "documentation": {
              "id": 6832,
              "nodeType": "StructuredDocumentation",
              "src": "11568:141:20",
              "text": "Returns amount of wei required to be paid as a fee when requesting randomization with a \n transaction gas price as the one given."
            },
            "functionSelector": "a60ee268",
            "id": 6865,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "estimateRandomizeFee",
            "nameLocation": "11724:20:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6836,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11805:8:20"
            },
            "parameters": {
              "id": 6835,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6834,
                  "mutability": "mutable",
                  "name": "_evmGasPrice",
                  "nameLocation": "11753:12:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6865,
                  "src": "11745:20:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6833,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11745:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11744:22:20"
            },
            "returnParameters": {
              "id": 6839,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6838,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6865,
                  "src": "11832:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6837,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11832:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11831:9:20"
            },
            "scope": 8239,
            "src": "11715:387:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28212
            ],
            "body": {
              "id": 6884,
              "nodeType": "Block",
              "src": "12920:171:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 6877,
                            "name": "_blockNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6868,
                            "src": "12991:12:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "arguments": [
                              {
                                "id": 6879,
                                "name": "_blockNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6868,
                                "src": "13044:12:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 6878,
                              "name": "_fetchRandomnessAfter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8171,
                              "src": "13022:21:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bytes8_$",
                                "typeString": "function (uint256) view returns (bytes8)"
                              }
                            },
                            "id": 6880,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "13022:35:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes8",
                              "typeString": "bytes8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes8",
                              "typeString": "bytes8"
                            }
                          ],
                          "expression": {
                            "id": 6875,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "12962:3:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 6876,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "12966:6:20",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "12962:10:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 6881,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12962:110:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 6874,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967288,
                      "src": "12938:9:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 6882,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12938:145:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 6873,
                  "id": 6883,
                  "nodeType": "Return",
                  "src": "12931:152:20"
                }
              ]
            },
            "documentation": {
              "id": 6866,
              "nodeType": "StructuredDocumentation",
              "src": "12110:673:20",
              "text": "Retrieves the result of keccak256-hashing the given block number with the randomness value \n generated by the Witnet blockchain in response to the first non-failing randomize request solved \n after such block number.\n @dev Reverts if:\n    i.   no `randomize()` was queried on neither the given block, nor afterwards.\n    ii.  the first non-failing `randomize()` request found on or after the given block is not solved yet.\n    iii. all `randomize()` requests that took place on or after the given block were solved with errors.\n @param _blockNumber Block number from which the search will start."
            },
            "functionSelector": "82b1c174",
            "id": 6885,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "fetchRandomnessAfter",
            "nameLocation": "12798:20:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6870,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12879:8:20"
            },
            "parameters": {
              "id": 6869,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6868,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "12827:12:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6885,
                  "src": "12819:20:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6867,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12819:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12818:22:20"
            },
            "returnParameters": {
              "id": 6873,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6872,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6885,
                  "src": "12906:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6871,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12906:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12905:9:20"
            },
            "scope": 8239,
            "src": "12789:302:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28228
            ],
            "body": {
              "id": 6917,
              "nodeType": "Block",
              "src": "14601:230:20",
              "statements": [
                {
                  "expression": {
                    "id": 6915,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "components": [
                        {
                          "id": 6902,
                          "name": "_witnetQueryUUID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6892,
                          "src": "14613:16:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 6903,
                          "name": "_witnetDrTxHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6898,
                          "src": "14631:15:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                            "typeString": "Witnet.TransactionHash"
                          }
                        },
                        {
                          "id": 6904,
                          "name": "_witnetTimestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6895,
                          "src": "14648:16:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                            "typeString": "Witnet.Timestamp"
                          }
                        },
                        {
                          "id": 6905,
                          "name": "_evmFinalityBlock",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6900,
                          "src": "14666:17:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 6906,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "14612:72:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_bytes32_$_t_userDefinedValueType$_TransactionHash_$37159_$_t_userDefinedValueType$_Timestamp_$37157_$_t_uint256_$",
                        "typeString": "tuple(bytes32,Witnet.TransactionHash,Witnet.Timestamp,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "id": 6912,
                              "name": "_blockNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6888,
                              "src": "14795:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6911,
                            "name": "_getRandomizeQueryId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8049,
                            "src": "14774:20:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint64_$",
                              "typeString": "function (uint256) view returns (uint64)"
                            }
                          },
                          "id": 6913,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14774:34:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        ],
                        "expression": {
                          "arguments": [
                            {
                              "id": 6908,
                              "name": "__WIT_ORACLE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6449,
                              "src": "14707:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 6907,
                            "name": "IWitOracleQueriable",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26795,
                            "src": "14687:19:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_IWitOracleQueriable_$26795_$",
                              "typeString": "type(contract IWitOracleQueriable)"
                            }
                          },
                          "id": 6909,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14687:33:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IWitOracleQueriable_$26795",
                            "typeString": "contract IWitOracleQueriable"
                          }
                        },
                        "id": 6910,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "14735:20:20",
                        "memberName": "getQueryResultTrails",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 26734,
                        "src": "14687:68:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_bytes32_$_t_userDefinedValueType$_TransactionHash_$37159_$_t_userDefinedValueType$_Timestamp_$37157_$_t_uint256_$",
                          "typeString": "function (uint256) view external returns (bytes32,Witnet.TransactionHash,Witnet.Timestamp,uint256)"
                        }
                      },
                      "id": 6914,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14687:136:20",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_bytes32_$_t_userDefinedValueType$_TransactionHash_$37159_$_t_userDefinedValueType$_Timestamp_$37157_$_t_uint256_$",
                        "typeString": "tuple(bytes32,Witnet.TransactionHash,Witnet.Timestamp,uint256)"
                      }
                    },
                    "src": "14612:211:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6916,
                  "nodeType": "ExpressionStatement",
                  "src": "14612:211:20"
                }
              ]
            },
            "documentation": {
              "id": 6886,
              "nodeType": "StructuredDocumentation",
              "src": "13103:1172:20",
              "text": "Retrieves the actual random value, unique hash and timestamp of the witnessing commit/reveal act \n that took place in the Witnet blockchain in response to the first non-failing randomize query\n solved after the given block number.\n @dev Reverts if:\n    i.   no `randomize()` was queried on neither the given block, nor afterwards.\n    ii.  the first non-failing `randomize()` request found on or after the given block is not solved yet.\n    iii. all `randomize()` requests that took place on or after the given block were solved with errors.\n @param _blockNumber Block number from which the search will start.\n @return _witnetQueryUUID Universal identifier of the query posted from this contract that ultimately solved randomness.\n @return _witnetTimestamp Timestamp at which the randomness value was generated by the Witnet blockchain.\n @return _witnetDrTxHash Hash of the witnessing commit/reveal act that took place on the Witnet blockchain.\n @return _evmFinalityBlock EVM block number at which the generated randomness can be considered to be final."
            },
            "functionSelector": "17f45487",
            "id": 6918,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "fetchRandomnessAfterProof",
            "nameLocation": "14290:25:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6890,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14356:8:20"
            },
            "parameters": {
              "id": 6889,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6888,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "14324:12:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6918,
                  "src": "14316:20:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6887,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14316:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14315:22:20"
            },
            "returnParameters": {
              "id": 6901,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6892,
                  "mutability": "mutable",
                  "name": "_witnetQueryUUID",
                  "nameLocation": "14427:16:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6918,
                  "src": "14419:24:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6891,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14419:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6895,
                  "mutability": "mutable",
                  "name": "_witnetTimestamp",
                  "nameLocation": "14475:16:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6918,
                  "src": "14458:33:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                    "typeString": "Witnet.Timestamp"
                  },
                  "typeName": {
                    "id": 6894,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6893,
                      "name": "Witnet.Timestamp",
                      "nameLocations": [
                        "14458:6:20",
                        "14465:9:20"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37157,
                      "src": "14458:16:20"
                    },
                    "referencedDeclaration": 37157,
                    "src": "14458:16:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6898,
                  "mutability": "mutable",
                  "name": "_witnetDrTxHash",
                  "nameLocation": "14529:15:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6918,
                  "src": "14506:38:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                    "typeString": "Witnet.TransactionHash"
                  },
                  "typeName": {
                    "id": 6897,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6896,
                      "name": "Witnet.TransactionHash",
                      "nameLocations": [
                        "14506:6:20",
                        "14513:15:20"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37159,
                      "src": "14506:22:20"
                    },
                    "referencedDeclaration": 37159,
                    "src": "14506:22:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                      "typeString": "Witnet.TransactionHash"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6900,
                  "mutability": "mutable",
                  "name": "_evmFinalityBlock",
                  "nameLocation": "14567:17:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6918,
                  "src": "14559:25:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6899,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14559:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14404:191:20"
            },
            "scope": 8239,
            "src": "14281:550:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28234
            ],
            "body": {
              "id": 6929,
              "nodeType": "Block",
              "src": "15024:56:20",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 6925,
                        "name": "__storage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8238,
                        "src": "15042:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                          "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                        }
                      },
                      "id": 6926,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15042:11:20",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                        "typeString": "struct WitRandomnessV3.Storage storage pointer"
                      }
                    },
                    "id": 6927,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "15054:18:20",
                    "memberName": "lastRandomizeBlock",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 6423,
                    "src": "15042:30:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "functionReturnParameters": 6924,
                  "id": 6928,
                  "nodeType": "Return",
                  "src": "15035:37:20"
                }
              ]
            },
            "documentation": {
              "id": 6919,
              "nodeType": "StructuredDocumentation",
              "src": "14839:65:20",
              "text": "Returns last block number on which a randomize was requested."
            },
            "functionSelector": "8f261684",
            "id": 6930,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getLastRandomizeBlock",
            "nameLocation": "14919:21:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6921,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14960:8:20"
            },
            "parameters": {
              "id": 6920,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14940:2:20"
            },
            "returnParameters": {
              "id": 6924,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6923,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6930,
                  "src": "15010:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6922,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15010:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15009:9:20"
            },
            "scope": 8239,
            "src": "14910:170:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              28247
            ],
            "body": {
              "id": 6988,
              "nodeType": "Block",
              "src": "16067:377:20",
              "statements": [
                {
                  "assignments": [
                    6946
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6946,
                      "mutability": "mutable",
                      "name": "__request",
                      "nameLocation": "16096:9:20",
                      "nodeType": "VariableDeclaration",
                      "scope": 6988,
                      "src": "16078:27:20",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                        "typeString": "struct WitRandomnessV3.Randomize"
                      },
                      "typeName": {
                        "id": 6945,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 6944,
                          "name": "Randomize",
                          "nameLocations": [
                            "16078:9:20"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 6404,
                          "src": "16078:9:20"
                        },
                        "referencedDeclaration": 6404,
                        "src": "16078:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Randomize"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6952,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6947,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "16108:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 6948,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16108:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 6949,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "16120:8:20",
                      "memberName": "requests",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6445,
                      "src": "16108:20:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                        "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize storage ref)"
                      }
                    },
                    "id": 6951,
                    "indexExpression": {
                      "id": 6950,
                      "name": "_blockNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6933,
                      "src": "16129:12:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "16108:34:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Randomize_$6404_storage",
                      "typeString": "struct WitRandomnessV3.Randomize storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16078:64:20"
                },
                {
                  "expression": {
                    "id": 6960,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6953,
                      "name": "_queryId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6938,
                      "src": "16153:8:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                        "typeString": "Witnet.QueryId"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 6957,
                            "name": "__request",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6946,
                            "src": "16184:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                              "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                            }
                          },
                          "id": 6958,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "16194:7:20",
                          "memberName": "queryId",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6395,
                          "src": "16184:17:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        ],
                        "expression": {
                          "expression": {
                            "id": 6954,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "16164:6:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 6955,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "16171:7:20",
                          "memberName": "QueryId",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37151,
                          "src": "16164:14:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                            "typeString": "type(Witnet.QueryId)"
                          }
                        },
                        "id": 6956,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "16179:4:20",
                        "memberName": "wrap",
                        "nodeType": "MemberAccess",
                        "src": "16164:19:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_QueryId_$37151_$",
                          "typeString": "function (uint64) pure returns (Witnet.QueryId)"
                        }
                      },
                      "id": 6959,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16164:38:20",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                        "typeString": "Witnet.QueryId"
                      }
                    },
                    "src": "16153:49:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                      "typeString": "Witnet.QueryId"
                    }
                  },
                  "id": 6961,
                  "nodeType": "ExpressionStatement",
                  "src": "16153:49:20"
                },
                {
                  "expression": {
                    "id": 6973,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6962,
                      "name": "_prevRandomizeBlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6940,
                      "src": "16213:19:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "id": 6966,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 6963,
                            "name": "__request",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6946,
                            "src": "16235:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                              "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                            }
                          },
                          "id": 6964,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "16245:9:20",
                          "memberName": "prevBlock",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6403,
                          "src": "16235:19:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 6965,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16258:1:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "16235:24:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "arguments": [
                          {
                            "id": 6970,
                            "name": "_blockNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6933,
                            "src": "16306:12:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6969,
                          "name": "getRandomizePrevBlock",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7054,
                          "src": "16284:21:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                            "typeString": "function (uint256) view returns (uint256)"
                          }
                        },
                        "id": 6971,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16284:35:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 6972,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "16235:84:20",
                      "trueExpression": {
                        "expression": {
                          "id": 6967,
                          "name": "__request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6946,
                          "src": "16262:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                            "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                          }
                        },
                        "id": 6968,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "16272:9:20",
                        "memberName": "prevBlock",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6403,
                        "src": "16262:19:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "16213:106:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6974,
                  "nodeType": "ExpressionStatement",
                  "src": "16213:106:20"
                },
                {
                  "expression": {
                    "id": 6986,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6975,
                      "name": "_nextRandomizeBlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6942,
                      "src": "16330:19:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "id": 6979,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 6976,
                            "name": "__request",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6946,
                            "src": "16352:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                              "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                            }
                          },
                          "id": 6977,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "16362:9:20",
                          "memberName": "nextBlock",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6399,
                          "src": "16352:19:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 6978,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16375:1:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "16352:24:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "arguments": [
                          {
                            "id": 6983,
                            "name": "_blockNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6933,
                            "src": "16423:12:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6982,
                          "name": "getRandomizeNextBlock",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7022,
                          "src": "16401:21:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                            "typeString": "function (uint256) view returns (uint256)"
                          }
                        },
                        "id": 6984,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16401:35:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 6985,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "16352:84:20",
                      "trueExpression": {
                        "expression": {
                          "id": 6980,
                          "name": "__request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6946,
                          "src": "16379:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                            "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                          }
                        },
                        "id": 6981,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "16389:9:20",
                        "memberName": "nextBlock",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6399,
                        "src": "16379:19:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "16330:106:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6987,
                  "nodeType": "ExpressionStatement",
                  "src": "16330:106:20"
                }
              ]
            },
            "documentation": {
              "id": 6931,
              "nodeType": "StructuredDocumentation",
              "src": "15088:720:20",
              "text": "Retrieves metadata related to the randomize request that got queried to the`WitOracle` contract \n on the specified block number, if any.\n @dev Returns zero values if no randomize request was actually queried on the specified block number.\n @param _blockNumber Block number from which the search will start.\n @return _queryId Identifier of the underlying Wit/Oracle query created on the specified block number. \n @return _prevRandomizeBlock Block number in which a randomize request got queried just before this one. 0 if none.\n @return _nextRandomizeBlock Block number in which a randomize request got queried just after this one, 0 if none."
            },
            "functionSelector": "a3252f68",
            "id": 6989,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRandomizeData",
            "nameLocation": "15823:16:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6935,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "15902:8:20"
            },
            "parameters": {
              "id": 6934,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6933,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "15848:12:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6989,
                  "src": "15840:20:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6932,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15840:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15839:22:20"
            },
            "returnParameters": {
              "id": 6943,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6938,
                  "mutability": "mutable",
                  "name": "_queryId",
                  "nameLocation": "15958:8:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6989,
                  "src": "15943:23:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                    "typeString": "Witnet.QueryId"
                  },
                  "typeName": {
                    "id": 6937,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6936,
                      "name": "Witnet.QueryId",
                      "nameLocations": [
                        "15943:6:20",
                        "15950:7:20"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37151,
                      "src": "15943:14:20"
                    },
                    "referencedDeclaration": 37151,
                    "src": "15943:14:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                      "typeString": "Witnet.QueryId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6940,
                  "mutability": "mutable",
                  "name": "_prevRandomizeBlock",
                  "nameLocation": "15989:19:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6989,
                  "src": "15981:27:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6939,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15981:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6942,
                  "mutability": "mutable",
                  "name": "_nextRandomizeBlock",
                  "nameLocation": "16031:19:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 6989,
                  "src": "16023:27:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6941,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16023:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15928:133:20"
            },
            "scope": 8239,
            "src": "15814:630:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              28255
            ],
            "body": {
              "id": 7021,
              "nodeType": "Block",
              "src": "16856:245:20",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          },
                          "id": 7005,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "baseExpression": {
                                "expression": {
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "id": 6998,
                                    "name": "__storage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8238,
                                    "src": "16889:9:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                      "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                    }
                                  },
                                  "id": 6999,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "16889:11:20",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                    "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                  }
                                },
                                "id": 7000,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "16901:8:20",
                                "memberName": "requests",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6445,
                                "src": "16889:20:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                                  "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize storage ref)"
                                }
                              },
                              "id": 7002,
                              "indexExpression": {
                                "id": 7001,
                                "name": "_blockNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6992,
                                "src": "16910:12:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16889:34:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$6404_storage",
                                "typeString": "struct WitRandomnessV3.Randomize storage ref"
                              }
                            },
                            "id": 7003,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "16924:7:20",
                            "memberName": "queryId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6395,
                            "src": "16889:42:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 7004,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16935:1:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "16889:47:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "expression": {
                            "baseExpression": {
                              "expression": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 7012,
                                  "name": "__storage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8238,
                                  "src": "17038:9:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                    "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                  }
                                },
                                "id": 7013,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "17038:11:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                  "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                }
                              },
                              "id": 7014,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "17050:8:20",
                              "memberName": "requests",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6445,
                              "src": "17038:20:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                                "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize storage ref)"
                              }
                            },
                            "id": 7016,
                            "indexExpression": {
                              "id": 7015,
                              "name": "_blockNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6992,
                              "src": "17059:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "17038:34:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Randomize_$6404_storage",
                              "typeString": "struct WitRandomnessV3.Randomize storage ref"
                            }
                          },
                          "id": 7017,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "17073:9:20",
                          "memberName": "nextBlock",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6399,
                          "src": "17038:44:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "id": 7018,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "16889:193:20",
                        "trueExpression": {
                          "arguments": [
                            {
                              "id": 7007,
                              "name": "_blockNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6992,
                              "src": "16973:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 7008,
                                  "name": "__storage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8238,
                                  "src": "16987:9:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                    "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                  }
                                },
                                "id": 7009,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16987:11:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                  "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                }
                              },
                              "id": 7010,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "16999:18:20",
                              "memberName": "lastRandomizeBlock",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6423,
                              "src": "16987:30:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 7006,
                            "name": "_searchNextBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8203,
                            "src": "16956:16:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,uint256) view returns (uint256)"
                            }
                          },
                          "id": 7011,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16956:62:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 7019,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "16874:219:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6997,
                  "id": 7020,
                  "nodeType": "Return",
                  "src": "16867:226:20"
                }
              ]
            },
            "documentation": {
              "id": 6990,
              "nodeType": "StructuredDocumentation",
              "src": "16452:266:20",
              "text": "Returns the number of the next block in which a randomize request was posted after the given one. \n @param _blockNumber Block number from which the search will start.\n @return Number of the first block found after the given one, or `0` otherwise."
            },
            "functionSelector": "de0958ac",
            "id": 7022,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRandomizeNextBlock",
            "nameLocation": "16733:21:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6994,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "16815:8:20"
            },
            "parameters": {
              "id": 6993,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6992,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "16763:12:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7022,
                  "src": "16755:20:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6991,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16755:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "16754:22:20"
            },
            "returnParameters": {
              "id": 6997,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6996,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7022,
                  "src": "16842:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6995,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16842:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "16841:9:20"
            },
            "scope": 8239,
            "src": "16724:377:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28263
            ],
            "body": {
              "id": 7053,
              "nodeType": "Block",
              "src": "17520:280:20",
              "statements": [
                {
                  "assignments": [
                    7032
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7032,
                      "mutability": "mutable",
                      "name": "_latest",
                      "nameLocation": "17539:7:20",
                      "nodeType": "VariableDeclaration",
                      "scope": 7053,
                      "src": "17531:15:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7031,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "17531:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7036,
                  "initialValue": {
                    "expression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 7033,
                        "name": "__storage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8238,
                        "src": "17549:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                          "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                        }
                      },
                      "id": 7034,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17549:11:20",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                        "typeString": "struct WitRandomnessV3.Storage storage pointer"
                      }
                    },
                    "id": 7035,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "17561:18:20",
                    "memberName": "lastRandomizeBlock",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 6423,
                    "src": "17549:30:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17531:48:20"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7039,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7037,
                            "name": "_blockNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7025,
                            "src": "17598:12:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "id": 7038,
                            "name": "_latest",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7032,
                            "src": "17613:7:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "17598:22:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "arguments": [
                            {
                              "id": 7042,
                              "name": "_blockNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7025,
                              "src": "17727:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "baseExpression": {
                                  "expression": {
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "id": 7043,
                                      "name": "__storage",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8238,
                                      "src": "17741:9:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                        "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                      }
                                    },
                                    "id": 7044,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "17741:11:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                      "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                    }
                                  },
                                  "id": 7045,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "17753:8:20",
                                  "memberName": "requests",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 6445,
                                  "src": "17741:20:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                                    "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize storage ref)"
                                  }
                                },
                                "id": 7047,
                                "indexExpression": {
                                  "id": 7046,
                                  "name": "_latest",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7032,
                                  "src": "17762:7:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "17741:29:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Randomize_$6404_storage",
                                  "typeString": "struct WitRandomnessV3.Randomize storage ref"
                                }
                              },
                              "id": 7048,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "17771:9:20",
                              "memberName": "prevBlock",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6403,
                              "src": "17741:39:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 7041,
                            "name": "_searchPrevBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8230,
                            "src": "17710:16:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,uint256) view returns (uint256)"
                            }
                          },
                          "id": 7049,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17710:71:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 7050,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "17598:183:20",
                        "trueExpression": {
                          "id": 7040,
                          "name": "_latest",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7032,
                          "src": "17636:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 7051,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "17597:195:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 7030,
                  "id": 7052,
                  "nodeType": "Return",
                  "src": "17590:202:20"
                }
              ]
            },
            "documentation": {
              "id": 7023,
              "nodeType": "StructuredDocumentation",
              "src": "17109:273:20",
              "text": "Returns the number of the previous block in which a randomize request was posted before the given one.\n @param _blockNumber Block number from which the search will start. Cannot be zero.\n @return First block found before the given one, or `0` otherwise."
            },
            "functionSelector": "c0248bf1",
            "id": 7054,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRandomizePrevBlock",
            "nameLocation": "17397:21:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7027,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "17479:8:20"
            },
            "parameters": {
              "id": 7026,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7025,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "17427:12:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7054,
                  "src": "17419:20:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7024,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "17419:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "17418:22:20"
            },
            "returnParameters": {
              "id": 7030,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7029,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7054,
                  "src": "17506:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7028,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "17506:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "17505:9:20"
            },
            "scope": 8239,
            "src": "17388:412:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28272
            ],
            "body": {
              "id": 7072,
              "nodeType": "Block",
              "src": "18286:105:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 7068,
                            "name": "_blockNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7057,
                            "src": "18359:12:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7067,
                          "name": "_getRandomizeQueryId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8049,
                          "src": "18338:20:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint64_$",
                            "typeString": "function (uint256) view returns (uint64)"
                          }
                        },
                        "id": 7069,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18338:34:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 7064,
                          "name": "Witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 40741,
                          "src": "18304:6:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                            "typeString": "type(library Witnet)"
                          }
                        },
                        "id": 7065,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "18311:7:20",
                        "memberName": "QueryId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 37151,
                        "src": "18304:14:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                          "typeString": "type(Witnet.QueryId)"
                        }
                      },
                      "id": 7066,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "18319:4:20",
                      "memberName": "wrap",
                      "nodeType": "MemberAccess",
                      "src": "18304:19:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_QueryId_$37151_$",
                        "typeString": "function (uint64) pure returns (Witnet.QueryId)"
                      }
                    },
                    "id": 7070,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18304:79:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                      "typeString": "Witnet.QueryId"
                    }
                  },
                  "functionReturnParameters": 7063,
                  "id": 7071,
                  "nodeType": "Return",
                  "src": "18297:86:20"
                }
              ]
            },
            "documentation": {
              "id": 7055,
              "nodeType": "StructuredDocumentation",
              "src": "17808:335:20",
              "text": "Returns the identifier of the Wit/Oracle query that has either solved randomness\n for the specified block number, is currently attending randomness for the specified block number,\n of the one that attempted to solve it. \n @dev Returns zero if no randomize was request on or after the specified block number."
            },
            "functionSelector": "032698a5",
            "id": 7073,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRandomizeQueryId",
            "nameLocation": "18158:19:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7059,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "18217:8:20"
            },
            "parameters": {
              "id": 7058,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7057,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "18186:12:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7073,
                  "src": "18178:20:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7056,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18178:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18177:22:20"
            },
            "returnParameters": {
              "id": 7063,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7062,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7073,
                  "src": "18265:14:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                    "typeString": "Witnet.QueryId"
                  },
                  "typeName": {
                    "id": 7061,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 7060,
                      "name": "Witnet.QueryId",
                      "nameLocations": [
                        "18265:6:20",
                        "18272:7:20"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37151,
                      "src": "18265:14:20"
                    },
                    "referencedDeclaration": 37151,
                    "src": "18265:14:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                      "typeString": "Witnet.QueryId"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18264:16:20"
            },
            "scope": 8239,
            "src": "18149:242:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28280
            ],
            "body": {
              "id": 7106,
              "nodeType": "Block",
              "src": "18662:295:20",
              "statements": [
                {
                  "assignments": [
                    7084
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7084,
                      "mutability": "mutable",
                      "name": "_status",
                      "nameLocation": "18689:7:20",
                      "nodeType": "VariableDeclaration",
                      "scope": 7106,
                      "src": "18673:23:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                        "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                      },
                      "typeName": {
                        "id": 7083,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 7082,
                          "name": "RandomizeStatus",
                          "nameLocations": [
                            "18673:15:20"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 28460,
                          "src": "18673:15:20"
                        },
                        "referencedDeclaration": 28460,
                        "src": "18673:15:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                          "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7088,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 7086,
                        "name": "_blockNumber",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7076,
                        "src": "18718:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7085,
                      "name": "getRandomizeStatus",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7282,
                      "src": "18699:18:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_RandomizeStatus_$28460_$",
                        "typeString": "function (uint256) view returns (enum IWitRandomnessTypes.RandomizeStatus)"
                      }
                    },
                    "id": 7087,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18699:32:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                      "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18673:58:20"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                      "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                    },
                    "id": 7092,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7089,
                      "name": "_status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7084,
                      "src": "18746:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                        "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "expression": {
                        "id": 7090,
                        "name": "RandomizeStatus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28460,
                        "src": "18757:15:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_RandomizeStatus_$28460_$",
                          "typeString": "type(enum IWitRandomnessTypes.RandomizeStatus)"
                        }
                      },
                      "id": 7091,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "18773:5:20",
                      "memberName": "Error",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 28458,
                      "src": "18757:21:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                        "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                      }
                    },
                    "src": "18746:32:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7105,
                  "nodeType": "IfStatement",
                  "src": "18742:208:20",
                  "trueBody": {
                    "id": 7104,
                    "nodeType": "Block",
                    "src": "18780:170:20",
                    "statements": [
                      {
                        "expression": {
                          "id": 7102,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 7093,
                            "name": "_reason",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7080,
                            "src": "18795:7:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 7099,
                                    "name": "_blockNumber",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7076,
                                    "src": "18910:12:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 7098,
                                  "name": "_getRandomizeQueryId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8049,
                                  "src": "18889:20:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint64_$",
                                    "typeString": "function (uint256) view returns (uint64)"
                                  }
                                },
                                "id": 7100,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "18889:34:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "expression": {
                                "arguments": [
                                  {
                                    "id": 7095,
                                    "name": "__WIT_ORACLE",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6449,
                                    "src": "18825:12:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 7094,
                                  "name": "IWitOracleQueriable",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26795,
                                  "src": "18805:19:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_IWitOracleQueriable_$26795_$",
                                    "typeString": "type(contract IWitOracleQueriable)"
                                  }
                                },
                                "id": 7096,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "18805:33:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IWitOracleQueriable_$26795",
                                  "typeString": "contract IWitOracleQueriable"
                                }
                              },
                              "id": 7097,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "18839:31:20",
                              "memberName": "getQueryResultStatusDescription",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 26718,
                              "src": "18805:65:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_string_memory_ptr_$",
                                "typeString": "function (uint256) view external returns (string memory)"
                              }
                            },
                            "id": 7101,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "18805:133:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "src": "18795:143:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        "id": 7103,
                        "nodeType": "ExpressionStatement",
                        "src": "18795:143:20"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 7074,
              "nodeType": "StructuredDocumentation",
              "src": "18399:97:20",
              "text": "Explains why the last attempt of generating randomness for the specified block number failed."
            },
            "functionSelector": "e5117e63",
            "id": 7107,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRandomizeQueryErrorDescription",
            "nameLocation": "18511:33:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7078,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "18585:8:20"
            },
            "parameters": {
              "id": 7077,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7076,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "18553:12:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7107,
                  "src": "18545:20:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7075,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18545:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18544:22:20"
            },
            "returnParameters": {
              "id": 7081,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7080,
                  "mutability": "mutable",
                  "name": "_reason",
                  "nameLocation": "18648:7:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7107,
                  "src": "18634:21:20",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7079,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "18634:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18633:23:20"
            },
            "scope": 8239,
            "src": "18502:455:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28292
            ],
            "body": {
              "id": 7134,
              "nodeType": "Block",
              "src": "19803:211:20",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 7120,
                            "name": "__storage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8238,
                            "src": "19836:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                            }
                          },
                          "id": 7121,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19836:11:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                            "typeString": "struct WitRandomnessV3.Storage storage pointer"
                          }
                        },
                        "id": 7122,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "19848:16:20",
                        "memberName": "callbackGasLimit",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6419,
                        "src": "19836:28:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      },
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 7123,
                            "name": "__storage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8238,
                            "src": "19879:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                            }
                          },
                          "id": 7124,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19879:11:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                            "typeString": "struct WitRandomnessV3.Storage storage pointer"
                          }
                        },
                        "id": 7125,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "19891:18:20",
                        "memberName": "extraFeePercentage",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6421,
                        "src": "19879:30:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 7126,
                            "name": "__storage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8238,
                            "src": "19924:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                            }
                          },
                          "id": 7127,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19924:11:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                            "typeString": "struct WitRandomnessV3.Storage storage pointer"
                          }
                        },
                        "id": 7128,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "19936:16:20",
                        "memberName": "witCommitteeSize",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6425,
                        "src": "19924:28:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 7129,
                            "name": "__storage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8238,
                            "src": "19967:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                            }
                          },
                          "id": 7130,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19967:11:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                            "typeString": "struct WitRandomnessV3.Storage storage pointer"
                          }
                        },
                        "id": 7131,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "19979:16:20",
                        "memberName": "witInclusionFees",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6427,
                        "src": "19967:28:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "id": 7132,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "19821:185:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint24_$_t_uint16_$_t_uint16_$_t_uint64_$",
                      "typeString": "tuple(uint24,uint16,uint16,uint64)"
                    }
                  },
                  "functionReturnParameters": 7119,
                  "id": 7133,
                  "nodeType": "Return",
                  "src": "19814:192:20"
                }
              ]
            },
            "documentation": {
              "id": 7108,
              "nodeType": "StructuredDocumentation",
              "src": "18965:558:20",
              "text": "Returns security and liveness parameters required to the Witnet blockchain \n when solving randomness requests, if no others are specified.\n @return _callbackGasLimit Max. expendable gas upon randomness delivery.\n @return _extraFeePercentage Overhead percentage applied when estimating the randomize request fee. \n @return _witCommitteeSize Number of Witnet witnessing nodes required to generate unbiased randomness.\n @return _witInclusionFees Minimum amount of fees in $nanoWIT to be paid on the Witnet blockchain."
            },
            "functionSelector": "a769cfba",
            "id": 7135,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRandomizeQueryParams",
            "nameLocation": "19538:23:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7110,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "19581:8:20"
            },
            "parameters": {
              "id": 7109,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19561:2:20"
            },
            "returnParameters": {
              "id": 7119,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7112,
                  "mutability": "mutable",
                  "name": "_callbackGasLimit",
                  "nameLocation": "19650:17:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7135,
                  "src": "19643:24:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 7111,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "19643:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7114,
                  "mutability": "mutable",
                  "name": "_extraFeePercentage",
                  "nameLocation": "19689:19:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7135,
                  "src": "19682:26:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 7113,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "19682:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7116,
                  "mutability": "mutable",
                  "name": "_witCommitteeSize",
                  "nameLocation": "19730:17:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7135,
                  "src": "19723:24:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 7115,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "19723:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7118,
                  "mutability": "mutable",
                  "name": "_witInclusionFees",
                  "nameLocation": "19769:17:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7135,
                  "src": "19762:24:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 7117,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "19762:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19628:169:20"
            },
            "scope": 8239,
            "src": "19529:485:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28298
            ],
            "body": {
              "id": 7152,
              "nodeType": "Block",
              "src": "20260:137:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 7148,
                          "name": "getRandomizeRadonHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7164,
                          "src": "20355:21:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_userDefinedValueType$_RadonHash_$37153_$",
                            "typeString": "function () view returns (Witnet.RadonHash)"
                          }
                        },
                        "id": 7149,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20355:23:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                          "typeString": "Witnet.RadonHash"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                          "typeString": "Witnet.RadonHash"
                        }
                      ],
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "arguments": [
                              {
                                "id": 7143,
                                "name": "__WIT_ORACLE",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6449,
                                "src": "20289:12:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 7142,
                              "name": "IWitOracle",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26581,
                              "src": "20278:10:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IWitOracle_$26581_$",
                                "typeString": "type(contract IWitOracle)"
                              }
                            },
                            "id": 7144,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "20278:24:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IWitOracle_$26581",
                              "typeString": "contract IWitOracle"
                            }
                          },
                          "id": 7145,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "20303:8:20",
                          "memberName": "registry",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 26580,
                          "src": "20278:33:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWitOracleRadonRegistry_$27394_$",
                            "typeString": "function () view external returns (contract IWitOracleRadonRegistry)"
                          }
                        },
                        "id": 7146,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20278:35:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                          "typeString": "contract IWitOracleRadonRegistry"
                        }
                      },
                      "id": 7147,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "20314:26:20",
                      "memberName": "lookupRadonRequestBytecode",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27203,
                      "src": "20278:62:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_userDefinedValueType$_RadonHash_$37153_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (Witnet.RadonHash) view external returns (bytes memory)"
                      }
                    },
                    "id": 7150,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20278:111:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "functionReturnParameters": 7141,
                  "id": 7151,
                  "nodeType": "Return",
                  "src": "20271:118:20"
                }
              ]
            },
            "documentation": {
              "id": 7136,
              "nodeType": "StructuredDocumentation",
              "src": "20022:141:20",
              "text": "Returns the immutable bytecode of the Radon Request that's being used \n for solving randomness requests on the Witnet blockchain."
            },
            "functionSelector": "d9ecdfa6",
            "id": 7153,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRandomizeRadonBytecode",
            "nameLocation": "20178:25:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7138,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "20214:8:20"
            },
            "parameters": {
              "id": 7137,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20203:2:20"
            },
            "returnParameters": {
              "id": 7141,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7140,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7153,
                  "src": "20246:12:20",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 7139,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "20246:5:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "20245:14:20"
            },
            "scope": 8239,
            "src": "20169:228:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              28305
            ],
            "body": {
              "id": 7163,
              "nodeType": "Block",
              "src": "20648:53:20",
              "statements": [
                {
                  "expression": {
                    "id": 7161,
                    "name": "__WIT_ORACLE_RNG_RADON_HASH",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6376,
                    "src": "20666:27:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                      "typeString": "Witnet.RadonHash"
                    }
                  },
                  "functionReturnParameters": 7160,
                  "id": 7162,
                  "nodeType": "Return",
                  "src": "20659:34:20"
                }
              ]
            },
            "documentation": {
              "id": 7154,
              "nodeType": "StructuredDocumentation",
              "src": "20405:148:20",
              "text": "Returns the unique identifier of the Radon Request that's being used \n for solving request randomness requests on the Witnet blockchain."
            },
            "functionSelector": "a310a6bc",
            "id": 7164,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRandomizeRadonHash",
            "nameLocation": "20568:21:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7156,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "20600:8:20"
            },
            "parameters": {
              "id": 7155,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20589:2:20"
            },
            "returnParameters": {
              "id": 7160,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7159,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7164,
                  "src": "20630:16:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                    "typeString": "Witnet.RadonHash"
                  },
                  "typeName": {
                    "id": 7158,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 7157,
                      "name": "Witnet.RadonHash",
                      "nameLocations": [
                        "20630:6:20",
                        "20637:9:20"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37153,
                      "src": "20630:16:20"
                    },
                    "referencedDeclaration": 37153,
                    "src": "20630:16:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                      "typeString": "Witnet.RadonHash"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "20629:18:20"
            },
            "scope": 8239,
            "src": "20559:142:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28314
            ],
            "body": {
              "id": 7281,
              "nodeType": "Block",
              "src": "21471:2324:20",
              "statements": [
                {
                  "assignments": [
                    7176
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7176,
                      "mutability": "mutable",
                      "name": "__request",
                      "nameLocation": "21500:9:20",
                      "nodeType": "VariableDeclaration",
                      "scope": 7281,
                      "src": "21482:27:20",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                        "typeString": "struct WitRandomnessV3.Randomize"
                      },
                      "typeName": {
                        "id": 7175,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 7174,
                          "name": "Randomize",
                          "nameLocations": [
                            "21482:9:20"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 6404,
                          "src": "21482:9:20"
                        },
                        "referencedDeclaration": 6404,
                        "src": "21482:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Randomize"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7182,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 7177,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "21512:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 7178,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "21512:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 7179,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "21524:8:20",
                      "memberName": "requests",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6445,
                      "src": "21512:20:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                        "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize storage ref)"
                      }
                    },
                    "id": 7181,
                    "indexExpression": {
                      "id": 7180,
                      "name": "_blockNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7167,
                      "src": "21533:12:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "21512:34:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Randomize_$6404_storage",
                      "typeString": "struct WitRandomnessV3.Randomize storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "21482:64:20"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7185,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7183,
                      "name": "_blockNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7167,
                      "src": "21571:12:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 7184,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "21587:1:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "21571:17:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "id": 7193,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 7190,
                          "name": "__request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7176,
                          "src": "21664:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                            "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                          }
                        },
                        "id": 7191,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "21674:7:20",
                        "memberName": "queryId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6395,
                        "src": "21664:17:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "30",
                        "id": 7192,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "21685:1:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "21664:22:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "id": 7208,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 7201,
                            "name": "__request",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7176,
                            "src": "21998:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                              "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                            }
                          },
                          "id": 7202,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "22008:7:20",
                          "memberName": "queryId",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6395,
                          "src": "21998:17:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "arguments": [
                              {
                                "id": 7205,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "22024:6:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint64_$",
                                  "typeString": "type(uint64)"
                                },
                                "typeName": {
                                  "id": 7204,
                                  "name": "uint64",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "22024:6:20",
                                  "typeDescriptions": {}
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_type$_t_uint64_$",
                                  "typeString": "type(uint64)"
                                }
                              ],
                              "id": 7203,
                              "name": "type",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967269,
                              "src": "22019:4:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 7206,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "22019:12:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_meta_type_t_uint64",
                              "typeString": "type(uint64)"
                            }
                          },
                          "id": 7207,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "22032:3:20",
                          "memberName": "max",
                          "nodeType": "MemberAccess",
                          "src": "22019:16:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "src": "21998:37:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "id": 7277,
                        "nodeType": "Block",
                        "src": "22479:1309:20",
                        "statements": [
                          {
                            "condition": {
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 7231,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 7225,
                                  "name": "__request",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7176,
                                  "src": "22498:9:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                    "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                  }
                                },
                                "id": 7226,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "22508:10:20",
                                "memberName": "randomness",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6401,
                                "src": "22498:20:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes8",
                                  "typeString": "bytes8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "arguments": [
                                  {
                                    "hexValue": "30",
                                    "id": 7229,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22530:1:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "id": 7228,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "22522:7:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 7227,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "22522:7:20",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 7230,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "22522:10:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "22498:34:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "id": 7275,
                              "nodeType": "Block",
                              "src": "23289:488:20",
                              "statements": [
                                {
                                  "expression": {
                                    "components": [
                                      {
                                        "condition": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "id": 7267,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "expression": {
                                              "id": 7263,
                                              "name": "block",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4294967292,
                                              "src": "23605:5:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_magic_block",
                                                "typeString": "block"
                                              }
                                            },
                                            "id": 7264,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberLocation": "23611:6:20",
                                            "memberName": "number",
                                            "nodeType": "MemberAccess",
                                            "src": "23605:12:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": ">=",
                                          "rightExpression": {
                                            "expression": {
                                              "id": 7265,
                                              "name": "__request",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7176,
                                              "src": "23621:9:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                                "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                              }
                                            },
                                            "id": 7266,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberLocation": "23631:8:20",
                                            "memberName": "finality",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 6397,
                                            "src": "23621:18:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint64",
                                              "typeString": "uint64"
                                            }
                                          },
                                          "src": "23605:34:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                          }
                                        },
                                        "falseExpression": {
                                          "expression": {
                                            "id": 7270,
                                            "name": "RandomizeStatus",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 28460,
                                            "src": "23716:15:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_enum$_RandomizeStatus_$28460_$",
                                              "typeString": "type(enum IWitRandomnessTypes.RandomizeStatus)"
                                            }
                                          },
                                          "id": 7271,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "memberLocation": "23732:10:20",
                                          "memberName": "Finalizing",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 28459,
                                          "src": "23716:26:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                                            "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                                          }
                                        },
                                        "id": 7272,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "Conditional",
                                        "src": "23605:137:20",
                                        "trueExpression": {
                                          "expression": {
                                            "id": 7268,
                                            "name": "RandomizeStatus",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 28460,
                                            "src": "23667:15:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_enum$_RandomizeStatus_$28460_$",
                                              "typeString": "type(enum IWitRandomnessTypes.RandomizeStatus)"
                                            }
                                          },
                                          "id": 7269,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "memberLocation": "23683:5:20",
                                          "memberName": "Ready",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 28457,
                                          "src": "23667:21:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                                            "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                                          }
                                        },
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                                          "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                                        }
                                      }
                                    ],
                                    "id": 7273,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "23582:179:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                                      "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                                    }
                                  },
                                  "functionReturnParameters": 7173,
                                  "id": 7274,
                                  "nodeType": "Return",
                                  "src": "23575:186:20"
                                }
                              ]
                            },
                            "id": 7276,
                            "nodeType": "IfStatement",
                            "src": "22494:1283:20",
                            "trueBody": {
                              "id": 7262,
                              "nodeType": "Block",
                              "src": "22534:749:20",
                              "statements": [
                                {
                                  "condition": {
                                    "commonType": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "id": 7250,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      },
                                      "id": 7245,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "commonType": {
                                          "typeIdentifier": "t_uint16",
                                          "typeString": "uint16"
                                        },
                                        "id": 7236,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "expression": {
                                            "arguments": [],
                                            "expression": {
                                              "argumentTypes": [],
                                              "id": 7232,
                                              "name": "__storage",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 8238,
                                              "src": "22882:9:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                                "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                              }
                                            },
                                            "id": 7233,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "22882:11:20",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                              "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                            }
                                          },
                                          "id": 7234,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "22894:22:20",
                                          "memberName": "randomizeWaitingBlocks",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 6433,
                                          "src": "22882:34:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint16",
                                            "typeString": "uint16"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">",
                                        "rightExpression": {
                                          "hexValue": "30",
                                          "id": 7235,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "22919:1:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                          },
                                          "value": "0"
                                        },
                                        "src": "22882:38:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "&&",
                                      "rightExpression": {
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 7244,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "expression": {
                                            "id": 7237,
                                            "name": "block",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4294967292,
                                            "src": "22949:5:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_magic_block",
                                              "typeString": "block"
                                            }
                                          },
                                          "id": 7238,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "22955:6:20",
                                          "memberName": "number",
                                          "nodeType": "MemberAccess",
                                          "src": "22949:12:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">",
                                        "rightExpression": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "id": 7243,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "id": 7239,
                                            "name": "_blockNumber",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7167,
                                            "src": "22964:12:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "+",
                                          "rightExpression": {
                                            "expression": {
                                              "arguments": [],
                                              "expression": {
                                                "argumentTypes": [],
                                                "id": 7240,
                                                "name": "__storage",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8238,
                                                "src": "22979:9:20",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                                  "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                                }
                                              },
                                              "id": 7241,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "functionCall",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "22979:11:20",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                                "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                              }
                                            },
                                            "id": 7242,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberLocation": "22991:22:20",
                                            "memberName": "randomizeWaitingBlocks",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 6433,
                                            "src": "22979:34:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint16",
                                              "typeString": "uint16"
                                            }
                                          },
                                          "src": "22964:49:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "22949:64:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "src": "22882:131:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&&",
                                    "rightExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      },
                                      "id": 7249,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 7246,
                                          "name": "__request",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7176,
                                          "src": "23042:9:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                            "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                          }
                                        },
                                        "id": 7247,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "23052:9:20",
                                        "memberName": "nextBlock",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 6399,
                                        "src": "23042:19:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint64",
                                          "typeString": "uint64"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">",
                                      "rightExpression": {
                                        "hexValue": "30",
                                        "id": 7248,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "23064:1:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      },
                                      "src": "23042:23:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "src": "22882:183:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseBody": {
                                    "id": 7260,
                                    "nodeType": "Block",
                                    "src": "23180:74:20",
                                    "statements": [
                                      {
                                        "expression": {
                                          "expression": {
                                            "id": 7257,
                                            "name": "RandomizeStatus",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 28460,
                                            "src": "23210:15:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_enum$_RandomizeStatus_$28460_$",
                                              "typeString": "type(enum IWitRandomnessTypes.RandomizeStatus)"
                                            }
                                          },
                                          "id": 7258,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "memberLocation": "23226:8:20",
                                          "memberName": "Awaiting",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 28456,
                                          "src": "23210:24:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                                            "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                                          }
                                        },
                                        "functionReturnParameters": 7173,
                                        "id": 7259,
                                        "nodeType": "Return",
                                        "src": "23203:31:20"
                                      }
                                    ]
                                  },
                                  "id": 7261,
                                  "nodeType": "IfStatement",
                                  "src": "22856:398:20",
                                  "trueBody": {
                                    "id": 7256,
                                    "nodeType": "Block",
                                    "src": "23085:89:20",
                                    "statements": [
                                      {
                                        "expression": {
                                          "arguments": [
                                            {
                                              "expression": {
                                                "id": 7252,
                                                "name": "__request",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7176,
                                                "src": "23134:9:20",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                                  "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                                }
                                              },
                                              "id": 7253,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberLocation": "23144:9:20",
                                              "memberName": "nextBlock",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 6399,
                                              "src": "23134:19:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint64",
                                                "typeString": "uint64"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_uint64",
                                                "typeString": "uint64"
                                              }
                                            ],
                                            "id": 7251,
                                            "name": "getRandomizeStatus",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7282,
                                            "src": "23115:18:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_RandomizeStatus_$28460_$",
                                              "typeString": "function (uint256) view returns (enum IWitRandomnessTypes.RandomizeStatus)"
                                            }
                                          },
                                          "id": 7254,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "functionCall",
                                          "lValueRequested": false,
                                          "nameLocations": [],
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "23115:39:20",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                                            "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                                          }
                                        },
                                        "functionReturnParameters": 7173,
                                        "id": 7255,
                                        "nodeType": "Return",
                                        "src": "23108:46:20"
                                      }
                                    ]
                                  }
                                }
                              ]
                            }
                          }
                        ]
                      },
                      "id": 7278,
                      "nodeType": "IfStatement",
                      "src": "21994:1794:20",
                      "trueBody": {
                        "id": 7224,
                        "nodeType": "Block",
                        "src": "22037:436:20",
                        "statements": [
                          {
                            "condition": {
                              "commonType": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              },
                              "id": 7212,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 7209,
                                  "name": "__request",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7176,
                                  "src": "22277:9:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                    "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                  }
                                },
                                "id": 7210,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "22287:9:20",
                                "memberName": "nextBlock",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6399,
                                "src": "22277:19:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">",
                              "rightExpression": {
                                "hexValue": "30",
                                "id": 7211,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "22299:1:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "22277:23:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "id": 7222,
                              "nodeType": "Block",
                              "src": "22389:63:20",
                              "statements": [
                                {
                                  "expression": {
                                    "expression": {
                                      "id": 7219,
                                      "name": "RandomizeStatus",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 28460,
                                      "src": "22415:15:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_enum$_RandomizeStatus_$28460_$",
                                        "typeString": "type(enum IWitRandomnessTypes.RandomizeStatus)"
                                      }
                                    },
                                    "id": 7220,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberLocation": "22431:5:20",
                                    "memberName": "Error",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 28458,
                                    "src": "22415:21:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                                      "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                                    }
                                  },
                                  "functionReturnParameters": 7173,
                                  "id": 7221,
                                  "nodeType": "Return",
                                  "src": "22408:28:20"
                                }
                              ]
                            },
                            "id": 7223,
                            "nodeType": "IfStatement",
                            "src": "22273:179:20",
                            "trueBody": {
                              "id": 7218,
                              "nodeType": "Block",
                              "src": "22302:81:20",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "expression": {
                                          "id": 7214,
                                          "name": "__request",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7176,
                                          "src": "22347:9:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                            "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                          }
                                        },
                                        "id": 7215,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "22357:9:20",
                                        "memberName": "nextBlock",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 6399,
                                        "src": "22347:19:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint64",
                                          "typeString": "uint64"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint64",
                                          "typeString": "uint64"
                                        }
                                      ],
                                      "id": 7213,
                                      "name": "getRandomizeStatus",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7282,
                                      "src": "22328:18:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_RandomizeStatus_$28460_$",
                                        "typeString": "function (uint256) view returns (enum IWitRandomnessTypes.RandomizeStatus)"
                                      }
                                    },
                                    "id": 7216,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "22328:39:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                                      "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                                    }
                                  },
                                  "functionReturnParameters": 7173,
                                  "id": 7217,
                                  "nodeType": "Return",
                                  "src": "22321:46:20"
                                }
                              ]
                            }
                          }
                        ]
                      }
                    },
                    "id": 7279,
                    "nodeType": "IfStatement",
                    "src": "21660:2128:20",
                    "trueBody": {
                      "id": 7200,
                      "nodeType": "Block",
                      "src": "21688:300:20",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 7196,
                                    "name": "_blockNumber",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7167,
                                    "src": "21938:12:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 7195,
                                  "name": "getRandomizeNextBlock",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7022,
                                  "src": "21916:21:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                                    "typeString": "function (uint256) view returns (uint256)"
                                  }
                                },
                                "id": 7197,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "21916:35:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 7194,
                              "name": "getRandomizeStatus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7282,
                              "src": "21879:18:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_RandomizeStatus_$28460_$",
                                "typeString": "function (uint256) view returns (enum IWitRandomnessTypes.RandomizeStatus)"
                              }
                            },
                            "id": 7198,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "21879:87:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                              "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                            }
                          },
                          "functionReturnParameters": 7173,
                          "id": 7199,
                          "nodeType": "Return",
                          "src": "21872:94:20"
                        }
                      ]
                    }
                  },
                  "id": 7280,
                  "nodeType": "IfStatement",
                  "src": "21567:2221:20",
                  "trueBody": {
                    "id": 7189,
                    "nodeType": "Block",
                    "src": "21590:64:20",
                    "statements": [
                      {
                        "expression": {
                          "expression": {
                            "id": 7186,
                            "name": "RandomizeStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28460,
                            "src": "21612:15:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_RandomizeStatus_$28460_$",
                              "typeString": "type(enum IWitRandomnessTypes.RandomizeStatus)"
                            }
                          },
                          "id": 7187,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "21628:4:20",
                          "memberName": "Void",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 28455,
                          "src": "21612:20:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                            "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                          }
                        },
                        "functionReturnParameters": 7173,
                        "id": 7188,
                        "nodeType": "Return",
                        "src": "21605:27:20"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 7165,
              "nodeType": "StructuredDocumentation",
              "src": "20709:618:20",
              "text": "Returns status of the first non-errored randomize request queried on or after the given block number.\n  - 0 -> Void: no randomize request was actually queried on or after the given block number.\n  - 1 -> Awaiting: a randomize request was found but it's not yet solved by the Wit/Oracle.\n  - 2 -> Ready: a successfull randomize value was reported and is ready to be read.\n  - 3 -> Error: all attempted randomize requests at or after the given block were solved with errors.\n  - 4 -> Finalizing: a randomize result was relayed already but cannot yet be considered to be final."
            },
            "functionSelector": "76fa9d20",
            "id": 7282,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRandomizeStatus",
            "nameLocation": "21342:18:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7169,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "21400:8:20"
            },
            "parameters": {
              "id": 7168,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7167,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "21369:12:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7282,
                  "src": "21361:20:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7166,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21361:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "21360:22:20"
            },
            "returnParameters": {
              "id": 7173,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7172,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7282,
                  "src": "21449:15:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                    "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                  },
                  "typeName": {
                    "id": 7171,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 7170,
                      "name": "RandomizeStatus",
                      "nameLocations": [
                        "21449:15:20"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28460,
                      "src": "21449:15:20"
                    },
                    "referencedDeclaration": 28460,
                    "src": "21449:15:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                      "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "21448:17:20"
            },
            "scope": 8239,
            "src": "21333:2462:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28320
            ],
            "body": {
              "id": 7293,
              "nodeType": "Block",
              "src": "24244:60:20",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 7289,
                        "name": "__storage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8238,
                        "src": "24262:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                          "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                        }
                      },
                      "id": 7290,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "24262:11:20",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                        "typeString": "struct WitRandomnessV3.Storage storage pointer"
                      }
                    },
                    "id": 7291,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "24274:22:20",
                    "memberName": "randomizeWaitingBlocks",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 6433,
                    "src": "24262:34:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "functionReturnParameters": 7288,
                  "id": 7292,
                  "nodeType": "Return",
                  "src": "24255:41:20"
                }
              ]
            },
            "documentation": {
              "id": 7283,
              "nodeType": "StructuredDocumentation",
              "src": "23803:317:20",
              "text": "Return the number of EVM blocks after a randomize requests that have to elapse before\n considering such request to be delayed. Results to delayed requests can potentially be\n provided by later requests, if solved earlier. A value of zero means that randomize \n requests will never expire. "
            },
            "functionSelector": "51cb149d",
            "id": 7294,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRandomizeWaitingBlocks",
            "nameLocation": "24135:25:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7285,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "24180:8:20"
            },
            "parameters": {
              "id": 7284,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "24160:2:20"
            },
            "returnParameters": {
              "id": 7288,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7287,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7294,
                  "src": "24231:6:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 7286,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "24231:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24230:8:20"
            },
            "scope": 8239,
            "src": "24126:178:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              28328
            ],
            "body": {
              "id": 7311,
              "nodeType": "Block",
              "src": "24624:109:20",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                          "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                        },
                        "id": 7308,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "id": 7304,
                              "name": "_blockNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7297,
                              "src": "24676:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 7303,
                            "name": "getRandomizeStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7282,
                            "src": "24657:18:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_RandomizeStatus_$28460_$",
                              "typeString": "function (uint256) view returns (enum IWitRandomnessTypes.RandomizeStatus)"
                            }
                          },
                          "id": 7305,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "24657:32:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                            "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 7306,
                            "name": "RandomizeStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28460,
                            "src": "24693:15:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_RandomizeStatus_$28460_$",
                              "typeString": "type(enum IWitRandomnessTypes.RandomizeStatus)"
                            }
                          },
                          "id": 7307,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "24709:5:20",
                          "memberName": "Ready",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 28457,
                          "src": "24693:21:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_RandomizeStatus_$28460",
                            "typeString": "enum IWitRandomnessTypes.RandomizeStatus"
                          }
                        },
                        "src": "24657:57:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 7309,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "24642:83:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7302,
                  "id": 7310,
                  "nodeType": "Return",
                  "src": "24635:90:20"
                }
              ]
            },
            "documentation": {
              "id": 7295,
              "nodeType": "StructuredDocumentation",
              "src": "24314:184:20",
              "text": "Returns `true` only if a successfull resolution from the Witnet blockchain is found for the first \n non-errored randomize request posted on or after the given block number."
            },
            "functionSelector": "9bc86fec",
            "id": 7312,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isRandomized",
            "nameLocation": "24513:12:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7299,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "24586:8:20"
            },
            "parameters": {
              "id": 7298,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7297,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "24534:12:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7312,
                  "src": "24526:20:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7296,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "24526:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24525:22:20"
            },
            "returnParameters": {
              "id": 7302,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7301,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7312,
                  "src": "24613:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7300,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "24613:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24612:6:20"
            },
            "scope": 8239,
            "src": "24504:229:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28334
            ],
            "body": {
              "id": 7483,
              "nodeType": "Block",
              "src": "25122:1990:20",
              "statements": [
                {
                  "assignments": [
                    7320
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7320,
                      "mutability": "mutable",
                      "name": "_queryId",
                      "nameLocation": "25141:8:20",
                      "nodeType": "VariableDeclaration",
                      "scope": 7483,
                      "src": "25133:16:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7319,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "25133:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7321,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "25133:16:20"
                },
                {
                  "assignments": [
                    7323
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7323,
                      "mutability": "mutable",
                      "name": "_blockNumber",
                      "nameLocation": "25168:12:20",
                      "nodeType": "VariableDeclaration",
                      "scope": 7483,
                      "src": "25160:20:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7322,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "25160:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7326,
                  "initialValue": {
                    "expression": {
                      "id": 7324,
                      "name": "block",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967292,
                      "src": "25183:5:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_block",
                        "typeString": "block"
                      }
                    },
                    "id": 7325,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "25189:6:20",
                    "memberName": "number",
                    "nodeType": "MemberAccess",
                    "src": "25183:12:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "25160:35:20"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7331,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 7327,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "25210:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 7328,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "25210:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 7329,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "25222:18:20",
                      "memberName": "lastRandomizeBlock",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6423,
                      "src": "25210:30:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 7330,
                      "name": "_blockNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7323,
                      "src": "25243:12:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "25210:45:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 7463,
                    "nodeType": "Block",
                    "src": "26860:80:20",
                    "statements": [
                      {
                        "expression": {
                          "id": 7461,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 7454,
                            "name": "_queryId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7320,
                            "src": "26875:8:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "expression": {
                              "baseExpression": {
                                "expression": {
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "id": 7455,
                                    "name": "__storage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8238,
                                    "src": "26886:9:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                      "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                    }
                                  },
                                  "id": 7456,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "26886:11:20",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                    "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                  }
                                },
                                "id": 7457,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "26898:8:20",
                                "memberName": "requests",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6445,
                                "src": "26886:20:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                                  "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize storage ref)"
                                }
                              },
                              "id": 7459,
                              "indexExpression": {
                                "id": 7458,
                                "name": "_blockNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7323,
                                "src": "26907:12:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "26886:34:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$6404_storage",
                                "typeString": "struct WitRandomnessV3.Randomize storage ref"
                              }
                            },
                            "id": 7460,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26921:7:20",
                            "memberName": "queryId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6395,
                            "src": "26886:42:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "26875:53:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 7462,
                        "nodeType": "ExpressionStatement",
                        "src": "26875:53:20"
                      }
                    ]
                  },
                  "id": 7464,
                  "nodeType": "IfStatement",
                  "src": "25206:1734:20",
                  "trueBody": {
                    "id": 7453,
                    "nodeType": "Block",
                    "src": "25257:1597:20",
                    "statements": [
                      {
                        "expression": {
                          "id": 7335,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 7332,
                            "name": "_evmUsedFunds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7317,
                            "src": "25272:13:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "expression": {
                              "id": 7333,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "25288:3:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 7334,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "25292:5:20",
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "src": "25288:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "25272:25:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 7336,
                        "nodeType": "ExpressionStatement",
                        "src": "25272:25:20"
                      },
                      {
                        "expression": {
                          "id": 7367,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 7337,
                            "name": "_queryId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7320,
                            "src": "25378:8:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 7345,
                                "name": "__WIT_ORACLE_RNG_RADON_HASH",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6376,
                                "src": "25513:27:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                                  "typeString": "Witnet.RadonHash"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "id": 7348,
                                    "name": "_WIT_ORACLE_RNG_MAX_RESULT_SIZE",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6388,
                                    "src": "25616:31:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint16",
                                      "typeString": "uint16"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "id": 7349,
                                        "name": "__storage",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8238,
                                        "src": "25688:9:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                          "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                        }
                                      },
                                      "id": 7350,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "25688:11:20",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                        "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                      }
                                    },
                                    "id": 7351,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "25700:16:20",
                                    "memberName": "witCommitteeSize",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6425,
                                    "src": "25688:28:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint16",
                                      "typeString": "uint16"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "id": 7352,
                                        "name": "__storage",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8238,
                                        "src": "25757:9:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                          "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                        }
                                      },
                                      "id": 7353,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "25757:11:20",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                        "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                      }
                                    },
                                    "id": 7354,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "25769:16:20",
                                    "memberName": "witInclusionFees",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6427,
                                    "src": "25757:28:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint16",
                                      "typeString": "uint16"
                                    },
                                    {
                                      "typeIdentifier": "t_uint16",
                                      "typeString": "uint16"
                                    },
                                    {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  ],
                                  "expression": {
                                    "id": 7346,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 40741,
                                    "src": "25559:6:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 7347,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "25566:8:20",
                                  "memberName": "QuerySLA",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 37373,
                                  "src": "25559:15:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_struct$_QuerySLA_$37373_storage_ptr_$",
                                    "typeString": "type(struct Witnet.QuerySLA storage pointer)"
                                  }
                                },
                                "id": 7355,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "structConstructorCall",
                                "lValueRequested": false,
                                "nameLocations": [
                                  "25598:16:20",
                                  "25670:16:20",
                                  "25739:16:20"
                                ],
                                "names": [
                                  "witResultMaxSize",
                                  "witCommitteeSize",
                                  "witUnitaryReward"
                                ],
                                "nodeType": "FunctionCall",
                                "src": "25559:246:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                                  "typeString": "struct Witnet.QuerySLA memory"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "id": 7360,
                                        "name": "this",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4294967268,
                                        "src": "25886:4:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_WitRandomnessV3_$8239",
                                          "typeString": "contract WitRandomnessV3"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_contract$_WitRandomnessV3_$8239",
                                          "typeString": "contract WitRandomnessV3"
                                        }
                                      ],
                                      "id": 7359,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "25878:7:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_address_$",
                                        "typeString": "type(address)"
                                      },
                                      "typeName": {
                                        "id": 7358,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25878:7:20",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 7361,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "25878:13:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "id": 7362,
                                        "name": "__storage",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8238,
                                        "src": "25924:9:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                          "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                        }
                                      },
                                      "id": 7363,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "25924:11:20",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                        "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                      }
                                    },
                                    "id": 7364,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "25936:16:20",
                                    "memberName": "callbackGasLimit",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6419,
                                    "src": "25924:28:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint24",
                                      "typeString": "uint24"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint24",
                                      "typeString": "uint24"
                                    }
                                  ],
                                  "expression": {
                                    "id": 7356,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 40741,
                                    "src": "25824:6:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 7357,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "25831:13:20",
                                  "memberName": "QueryCallback",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 37340,
                                  "src": "25824:20:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_struct$_QueryCallback_$37340_storage_ptr_$",
                                    "typeString": "type(struct Witnet.QueryCallback storage pointer)"
                                  }
                                },
                                "id": 7365,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "structConstructorCall",
                                "lValueRequested": false,
                                "nameLocations": [
                                  "25868:8:20",
                                  "25914:8:20"
                                ],
                                "names": [
                                  "consumer",
                                  "gasLimit"
                                ],
                                "nodeType": "FunctionCall",
                                "src": "25824:148:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_QueryCallback_$37340_memory_ptr",
                                  "typeString": "struct Witnet.QueryCallback memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                                  "typeString": "Witnet.RadonHash"
                                },
                                {
                                  "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                                  "typeString": "struct Witnet.QuerySLA memory"
                                },
                                {
                                  "typeIdentifier": "t_struct$_QueryCallback_$37340_memory_ptr",
                                  "typeString": "struct Witnet.QueryCallback memory"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                                    "typeString": "Witnet.RadonHash"
                                  },
                                  {
                                    "typeIdentifier": "t_struct$_QuerySLA_$37373_memory_ptr",
                                    "typeString": "struct Witnet.QuerySLA memory"
                                  },
                                  {
                                    "typeIdentifier": "t_struct$_QueryCallback_$37340_memory_ptr",
                                    "typeString": "struct Witnet.QueryCallback memory"
                                  }
                                ],
                                "expression": {
                                  "arguments": [
                                    {
                                      "id": 7339,
                                      "name": "__WIT_ORACLE",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6449,
                                      "src": "25409:12:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    ],
                                    "id": 7338,
                                    "name": "IWitOracleQueriable",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 26795,
                                    "src": "25389:19:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_IWitOracleQueriable_$26795_$",
                                      "typeString": "type(contract IWitOracleQueriable)"
                                    }
                                  },
                                  "id": 7340,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "25389:33:20",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IWitOracleQueriable_$26795",
                                    "typeString": "contract IWitOracleQueriable"
                                  }
                                },
                                "id": 7341,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "25423:21:20",
                                "memberName": "queryDataWithCallback",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 26788,
                                "src": "25389:55:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_payable$_t_userDefinedValueType$_RadonHash_$37153_$_t_struct$_QuerySLA_$37373_memory_ptr_$_t_struct$_QueryCallback_$37340_memory_ptr_$returns$_t_uint256_$",
                                  "typeString": "function (Witnet.RadonHash,struct Witnet.QuerySLA memory,struct Witnet.QueryCallback memory) payable external returns (uint256)"
                                }
                              },
                              "id": 7344,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "names": [
                                "value"
                              ],
                              "nodeType": "FunctionCallOptions",
                              "options": [
                                {
                                  "expression": {
                                    "id": 7342,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967281,
                                    "src": "25470:3:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 7343,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "25474:5:20",
                                  "memberName": "value",
                                  "nodeType": "MemberAccess",
                                  "src": "25470:9:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "src": "25389:105:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_payable$_t_userDefinedValueType$_RadonHash_$37153_$_t_struct$_QuerySLA_$37373_memory_ptr_$_t_struct$_QueryCallback_$37340_memory_ptr_$returns$_t_uint256_$value",
                                "typeString": "function (Witnet.RadonHash,struct Witnet.QuerySLA memory,struct Witnet.QueryCallback memory) payable external returns (uint256)"
                              }
                            },
                            "id": 7366,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "25389:598:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "25378:609:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 7368,
                        "nodeType": "ExpressionStatement",
                        "src": "25378:609:20"
                      },
                      {
                        "assignments": [
                          7370
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 7370,
                            "mutability": "mutable",
                            "name": "_prevBlock",
                            "nameLocation": "26064:10:20",
                            "nodeType": "VariableDeclaration",
                            "scope": 7453,
                            "src": "26056:18:20",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 7369,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "26056:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 7374,
                        "initialValue": {
                          "expression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 7371,
                              "name": "__storage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8238,
                              "src": "26077:9:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                              }
                            },
                            "id": 7372,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "26077:11:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                              "typeString": "struct WitRandomnessV3.Storage storage pointer"
                            }
                          },
                          "id": 7373,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "26089:18:20",
                          "memberName": "lastRandomizeBlock",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6423,
                          "src": "26077:30:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "26056:51:20"
                      },
                      {
                        "assignments": [
                          7377
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 7377,
                            "mutability": "mutable",
                            "name": "__request",
                            "nameLocation": "26140:9:20",
                            "nodeType": "VariableDeclaration",
                            "scope": 7453,
                            "src": "26122:27:20",
                            "stateVariable": false,
                            "storageLocation": "storage",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                              "typeString": "struct WitRandomnessV3.Randomize"
                            },
                            "typeName": {
                              "id": 7376,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 7375,
                                "name": "Randomize",
                                "nameLocations": [
                                  "26122:9:20"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 6404,
                                "src": "26122:9:20"
                              },
                              "referencedDeclaration": 6404,
                              "src": "26122:9:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Randomize"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 7383,
                        "initialValue": {
                          "baseExpression": {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 7378,
                                "name": "__storage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8238,
                                "src": "26152:9:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                  "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                }
                              },
                              "id": 7379,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "26152:11:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Storage storage pointer"
                              }
                            },
                            "id": 7380,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26164:8:20",
                            "memberName": "requests",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6445,
                            "src": "26152:20:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                              "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize storage ref)"
                            }
                          },
                          "id": 7382,
                          "indexExpression": {
                            "id": 7381,
                            "name": "_blockNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7323,
                            "src": "26173:12:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "26152:34:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Randomize_$6404_storage",
                            "typeString": "struct WitRandomnessV3.Randomize storage ref"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "26122:64:20"
                      },
                      {
                        "expression": {
                          "id": 7391,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "id": 7384,
                              "name": "__request",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7377,
                              "src": "26201:9:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                              }
                            },
                            "id": 7386,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberLocation": "26211:7:20",
                            "memberName": "queryId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6395,
                            "src": "26201:17:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 7389,
                                "name": "_queryId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7320,
                                "src": "26228:8:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 7388,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "26221:6:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint64_$",
                                "typeString": "type(uint64)"
                              },
                              "typeName": {
                                "id": 7387,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "26221:6:20",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 7390,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "26221:16:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "26201:36:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "id": 7392,
                        "nodeType": "ExpressionStatement",
                        "src": "26201:36:20"
                      },
                      {
                        "expression": {
                          "id": 7400,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "id": 7393,
                              "name": "__request",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7377,
                              "src": "26252:9:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                              }
                            },
                            "id": 7395,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberLocation": "26262:9:20",
                            "memberName": "prevBlock",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6403,
                            "src": "26252:19:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 7398,
                                "name": "_prevBlock",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7370,
                                "src": "26281:10:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 7397,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "26274:6:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint64_$",
                                "typeString": "type(uint64)"
                              },
                              "typeName": {
                                "id": 7396,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "26274:6:20",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 7399,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "26274:18:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "26252:40:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "id": 7401,
                        "nodeType": "ExpressionStatement",
                        "src": "26252:40:20"
                      },
                      {
                        "expression": {
                          "id": 7412,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "baseExpression": {
                                "expression": {
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "id": 7402,
                                    "name": "__storage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8238,
                                    "src": "26307:9:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                      "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                    }
                                  },
                                  "id": 7403,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "26307:11:20",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                    "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                  }
                                },
                                "id": 7404,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "26319:8:20",
                                "memberName": "requests",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6445,
                                "src": "26307:20:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                                  "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize storage ref)"
                                }
                              },
                              "id": 7406,
                              "indexExpression": {
                                "id": 7405,
                                "name": "_prevBlock",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7370,
                                "src": "26328:10:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "26307:32:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$6404_storage",
                                "typeString": "struct WitRandomnessV3.Randomize storage ref"
                              }
                            },
                            "id": 7407,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberLocation": "26340:9:20",
                            "memberName": "nextBlock",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6399,
                            "src": "26307:42:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 7410,
                                "name": "_blockNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7323,
                                "src": "26359:12:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 7409,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "26352:6:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint64_$",
                                "typeString": "type(uint64)"
                              },
                              "typeName": {
                                "id": 7408,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "26352:6:20",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 7411,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "26352:20:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "26307:65:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "id": 7413,
                        "nodeType": "ExpressionStatement",
                        "src": "26307:65:20"
                      },
                      {
                        "expression": {
                          "id": 7421,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 7414,
                                "name": "__storage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8238,
                                "src": "26387:9:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                  "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                }
                              },
                              "id": 7415,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "26387:11:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Storage storage pointer"
                              }
                            },
                            "id": 7416,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberLocation": "26399:18:20",
                            "memberName": "lastRandomizeBlock",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6423,
                            "src": "26387:30:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 7419,
                                "name": "_blockNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7323,
                                "src": "26427:12:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 7418,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "26420:6:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint64_$",
                                "typeString": "type(uint64)"
                              },
                              "typeName": {
                                "id": 7417,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "26420:6:20",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 7420,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "26420:20:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "26387:53:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "id": 7422,
                        "nodeType": "ExpressionStatement",
                        "src": "26387:53:20"
                      },
                      {
                        "expression": {
                          "id": 7436,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "expression": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 7423,
                                  "name": "__storage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8238,
                                  "src": "26455:9:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                    "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                  }
                                },
                                "id": 7424,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "26455:11:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                  "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                }
                              },
                              "id": 7425,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "26467:6:20",
                              "memberName": "blocks",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6440,
                              "src": "26455:18:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_userDefinedValueType$_QueryId_$37151_$_t_uint256_$",
                                "typeString": "mapping(Witnet.QueryId => uint256)"
                              }
                            },
                            "id": 7434,
                            "indexExpression": {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "id": 7431,
                                      "name": "_queryId",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7320,
                                      "src": "26501:8:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 7430,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "26494:6:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint64_$",
                                      "typeString": "type(uint64)"
                                    },
                                    "typeName": {
                                      "id": 7429,
                                      "name": "uint64",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "26494:6:20",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 7432,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "26494:16:20",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                ],
                                "expression": {
                                  "expression": {
                                    "id": 7426,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 40741,
                                    "src": "26474:6:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 7427,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "26481:7:20",
                                  "memberName": "QueryId",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 37151,
                                  "src": "26474:14:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                                    "typeString": "type(Witnet.QueryId)"
                                  }
                                },
                                "id": 7428,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "26489:4:20",
                                "memberName": "wrap",
                                "nodeType": "MemberAccess",
                                "src": "26474:19:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_QueryId_$37151_$",
                                  "typeString": "function (uint64) pure returns (Witnet.QueryId)"
                                }
                              },
                              "id": 7433,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "26474:37:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                "typeString": "Witnet.QueryId"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "26455:57:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 7435,
                            "name": "_blockNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7323,
                            "src": "26515:12:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "26455:72:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 7437,
                        "nodeType": "ExpressionStatement",
                        "src": "26455:72:20"
                      },
                      {
                        "eventCall": {
                          "arguments": [
                            {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 7439,
                                "name": "_msgSender",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 505,
                                "src": "26717:10:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                  "typeString": "function () view returns (address)"
                                }
                              },
                              "id": 7440,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "26717:12:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "expression": {
                                "id": 7441,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967292,
                                "src": "26749:5:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 7442,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "26755:6:20",
                              "memberName": "number",
                              "nodeType": "MemberAccess",
                              "src": "26749:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "id": 7448,
                                      "name": "_queryId",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7320,
                                      "src": "26807:8:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 7447,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "26800:6:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint64_$",
                                      "typeString": "type(uint64)"
                                    },
                                    "typeName": {
                                      "id": 7446,
                                      "name": "uint64",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "26800:6:20",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 7449,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "26800:16:20",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                ],
                                "expression": {
                                  "expression": {
                                    "id": 7443,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 40741,
                                    "src": "26780:6:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 7444,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "26787:7:20",
                                  "memberName": "QueryId",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 37151,
                                  "src": "26780:14:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                                    "typeString": "type(Witnet.QueryId)"
                                  }
                                },
                                "id": 7445,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "26795:4:20",
                                "memberName": "wrap",
                                "nodeType": "MemberAccess",
                                "src": "26780:19:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_QueryId_$37151_$",
                                  "typeString": "function (uint64) pure returns (Witnet.QueryId)"
                                }
                              },
                              "id": 7450,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "26780:37:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                "typeString": "Witnet.QueryId"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                                "typeString": "Witnet.QueryId"
                              }
                            ],
                            "id": 7438,
                            "name": "Randomizing",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28439,
                            "src": "26687:11:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_userDefinedValueType$_QueryId_$37151_$returns$__$",
                              "typeString": "function (address,uint256,Witnet.QueryId)"
                            }
                          },
                          "id": 7451,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "26687:145:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7452,
                        "nodeType": "EmitStatement",
                        "src": "26682:150:20"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7468,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7465,
                      "name": "_evmUsedFunds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7317,
                      "src": "26996:13:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 7466,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967281,
                        "src": "27012:3:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 7467,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "27016:5:20",
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "src": "27012:9:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "26996:25:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7482,
                  "nodeType": "IfStatement",
                  "src": "26992:113:20",
                  "trueBody": {
                    "id": 7481,
                    "nodeType": "Block",
                    "src": "27023:82:20",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 7478,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 7475,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967281,
                                  "src": "27067:3:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 7476,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "27071:5:20",
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "src": "27067:9:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "id": 7477,
                                "name": "_evmUsedFunds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7317,
                                "src": "27079:13:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "27067:25:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "arguments": [
                                {
                                  "expression": {
                                    "id": 7471,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967281,
                                    "src": "27046:3:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 7472,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "27050:6:20",
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "src": "27046:10:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 7470,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "27038:8:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_payable_$",
                                  "typeString": "type(address payable)"
                                },
                                "typeName": {
                                  "id": 7469,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "27038:8:20",
                                  "stateMutability": "payable",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 7473,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "27038:19:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "id": 7474,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "27058:8:20",
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "src": "27038:28:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 7479,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "27038:55:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7480,
                        "nodeType": "ExpressionStatement",
                        "src": "27038:55:20"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 7313,
              "nodeType": "StructuredDocumentation",
              "src": "24741:256:20",
              "text": "Requests the Witnet blockchain to generate an unbiased 64-bit random seed.\n @dev Only one randomize request per block will get ultimately relayed to the Witnet blockchain.\n @return _evmUsedFunds EVM funds actually paid as randomize fee."
            },
            "functionSelector": "699b328a",
            "id": 7484,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "randomize",
            "nameLocation": "25012:9:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7315,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "25067:8:20"
            },
            "parameters": {
              "id": 7314,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "25021:2:20"
            },
            "returnParameters": {
              "id": 7318,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7317,
                  "mutability": "mutable",
                  "name": "_evmUsedFunds",
                  "nameLocation": "25102:13:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7484,
                  "src": "25094:21:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7316,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "25094:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25093:23:20"
            },
            "scope": 8239,
            "src": "25003:2109:20",
            "stateMutability": "payable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              28344
            ],
            "body": {
              "id": 7515,
              "nodeType": "Block",
              "src": "27480:256:20",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7512,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "id": 7496,
                              "name": "blockNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7487,
                              "src": "27526:11:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 7495,
                            "name": "isRandomized",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7312,
                            "src": "27513:12:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (uint256) view returns (bool)"
                            }
                          },
                          "id": 7497,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "27513:25:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 7511,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "id": 7499,
                                "name": "blockNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7487,
                                "src": "27580:11:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 7498,
                              "name": "fetchRandomnessAfter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6885,
                              "src": "27559:20:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bytes32_$",
                                "typeString": "function (uint256) view returns (bytes32)"
                              }
                            },
                            "id": 7500,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "27559:33:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 7504,
                                    "name": "blockNumber",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7487,
                                    "src": "27639:11:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "id": 7507,
                                        "name": "witnetRandomness",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7489,
                                        "src": "27680:16:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 7506,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "27673:6:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes8_$",
                                        "typeString": "type(bytes8)"
                                      },
                                      "typeName": {
                                        "id": 7505,
                                        "name": "bytes8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "27673:6:20",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 7508,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "27673:24:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes8",
                                      "typeString": "bytes8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes8",
                                      "typeString": "bytes8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 7502,
                                    "name": "abi",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967295,
                                    "src": "27606:3:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_abi",
                                      "typeString": "abi"
                                    }
                                  },
                                  "id": 7503,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberLocation": "27610:6:20",
                                  "memberName": "encode",
                                  "nodeType": "MemberAccess",
                                  "src": "27606:10:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                    "typeString": "function () pure returns (bytes memory)"
                                  }
                                },
                                "id": 7509,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "27606:110:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 7501,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967288,
                              "src": "27596:9:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 7510,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "27596:121:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "27559:158:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "27513:204:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 7513,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "27498:230:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7494,
                  "id": 7514,
                  "nodeType": "Return",
                  "src": "27491:237:20"
                }
              ]
            },
            "documentation": {
              "id": 7485,
              "nodeType": "StructuredDocumentation",
              "src": "27120:197:20",
              "text": "Verifies that the specified randomness seed was actually generated on the Witnet blockchain,\n and was actually used for producing the randomness seed returned by `fetchRandomnessAfter`."
            },
            "functionSelector": "10586559",
            "id": 7516,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "verifyRandomnessAfter",
            "nameLocation": "27332:21:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7491,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "27442:8:20"
            },
            "parameters": {
              "id": 7490,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7487,
                  "mutability": "mutable",
                  "name": "blockNumber",
                  "nameLocation": "27362:11:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7516,
                  "src": "27354:19:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7486,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "27354:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7489,
                  "mutability": "mutable",
                  "name": "witnetRandomness",
                  "nameLocation": "27383:16:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7516,
                  "src": "27375:24:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7488,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27375:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27353:47:20"
            },
            "returnParameters": {
              "id": 7494,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7493,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7516,
                  "src": "27469:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7492,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "27469:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27468:6:20"
            },
            "scope": 8239,
            "src": "27323:413:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              28350
            ],
            "body": {
              "id": 7525,
              "nodeType": "Block",
              "src": "27882:38:20",
              "statements": [
                {
                  "expression": {
                    "id": 7523,
                    "name": "__WIT_ORACLE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6449,
                    "src": "27900:12:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 7522,
                  "id": 7524,
                  "nodeType": "Return",
                  "src": "27893:19:20"
                }
              ]
            },
            "documentation": {
              "id": 7517,
              "nodeType": "StructuredDocumentation",
              "src": "27744:62:20",
              "text": "The Wit/Oracle core address accepted as source of entropy."
            },
            "functionSelector": "1014d375",
            "id": 7526,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "witOracle",
            "nameLocation": "27821:9:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7519,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "27841:8:20"
            },
            "parameters": {
              "id": 7518,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "27830:2:20"
            },
            "returnParameters": {
              "id": 7522,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7521,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7526,
                  "src": "27873:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7520,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "27873:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27872:9:20"
            },
            "scope": 8239,
            "src": "27812:108:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              28356,
              45708
            ],
            "body": {
              "id": 7538,
              "nodeType": "Block",
              "src": "28282:49:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 7533,
                        "name": "Ownable2Step",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 45709,
                        "src": "28293:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Ownable2Step_$45709_$",
                          "typeString": "type(contract Ownable2Step)"
                        }
                      },
                      "id": 7535,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "28306:15:20",
                      "memberName": "acceptOwnership",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 45708,
                      "src": "28293:28:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 7536,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "28293:30:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7537,
                  "nodeType": "ExpressionStatement",
                  "src": "28293:30:20"
                }
              ]
            },
            "documentation": {
              "id": 7527,
              "nodeType": "StructuredDocumentation",
              "src": "27930:236:20",
              "text": "===============================================================================================================\n --- IWitRandomnessAdmin -------------------------------------------------------------------------------------"
            },
            "functionSelector": "79ba5097",
            "id": 7539,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "acceptOwnership",
            "nameLocation": "28181:15:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7531,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 7529,
                  "name": "IWitRandomnessAdmin",
                  "nameLocations": [
                    "28226:19:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 28395,
                  "src": "28226:19:20"
                },
                {
                  "id": 7530,
                  "name": "Ownable2Step",
                  "nameLocations": [
                    "28247:12:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45709,
                  "src": "28247:12:20"
                }
              ],
              "src": "28216:44:20"
            },
            "parameters": {
              "id": 7528,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "28196:2:20"
            },
            "returnParameters": {
              "id": 7532,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "28282:0:20"
            },
            "scope": 8239,
            "src": "28172:159:20",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              335,
              28361
            ],
            "body": {
              "id": 7551,
              "nodeType": "Block",
              "src": "28467:41:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 7547,
                        "name": "Ownable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 415,
                        "src": "28485:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Ownable_$415_$",
                          "typeString": "type(contract Ownable)"
                        }
                      },
                      "id": 7548,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "28493:5:20",
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 335,
                      "src": "28485:13:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 7549,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "28485:15:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 7546,
                  "id": 7550,
                  "nodeType": "Return",
                  "src": "28478:22:20"
                }
              ]
            },
            "functionSelector": "8da5cb5b",
            "id": 7552,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "owner",
            "nameLocation": "28348:5:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7543,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 7541,
                  "name": "IWitRandomnessAdmin",
                  "nameLocations": [
                    "28383:19:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 28395,
                  "src": "28383:19:20"
                },
                {
                  "id": 7542,
                  "name": "Ownable",
                  "nameLocations": [
                    "28404:7:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 415,
                  "src": "28404:7:20"
                }
              ],
              "src": "28373:39:20"
            },
            "parameters": {
              "id": 7540,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "28353:2:20"
            },
            "returnParameters": {
              "id": 7546,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7545,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7552,
                  "src": "28453:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7544,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "28453:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28452:9:20"
            },
            "scope": 8239,
            "src": "28339:169:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28366,
              45647
            ],
            "body": {
              "id": 7564,
              "nodeType": "Block",
              "src": "28656:53:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 7560,
                        "name": "Ownable2Step",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 45709,
                        "src": "28674:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Ownable2Step_$45709_$",
                          "typeString": "type(contract Ownable2Step)"
                        }
                      },
                      "id": 7561,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "28687:12:20",
                      "memberName": "pendingOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 45647,
                      "src": "28674:25:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 7562,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "28674:27:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 7559,
                  "id": 7563,
                  "nodeType": "Return",
                  "src": "28667:34:20"
                }
              ]
            },
            "functionSelector": "e30c3978",
            "id": 7565,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "pendingOwner",
            "nameLocation": "28525:12:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7556,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 7554,
                  "name": "IWitRandomnessAdmin",
                  "nameLocations": [
                    "28568:19:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 28395,
                  "src": "28568:19:20"
                },
                {
                  "id": 7555,
                  "name": "Ownable2Step",
                  "nameLocations": [
                    "28589:12:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45709,
                  "src": "28589:12:20"
                }
              ],
              "src": "28558:44:20"
            },
            "parameters": {
              "id": 7553,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "28537:2:20"
            },
            "returnParameters": {
              "id": 7559,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7558,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7565,
                  "src": "28642:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7557,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "28642:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28641:9:20"
            },
            "scope": 8239,
            "src": "28516:193:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28394,
              45667
            ],
            "body": {
              "id": 7581,
              "nodeType": "Block",
              "src": "28870:55:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7578,
                        "name": "_newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7567,
                        "src": "28907:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 7575,
                        "name": "Ownable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 415,
                        "src": "28881:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Ownable_$415_$",
                          "typeString": "type(contract Ownable)"
                        }
                      },
                      "id": 7577,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "28889:17:20",
                      "memberName": "transferOwnership",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 394,
                      "src": "28881:25:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 7579,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "28881:36:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7580,
                  "nodeType": "ExpressionStatement",
                  "src": "28881:36:20"
                }
              ]
            },
            "functionSelector": "f2fde38b",
            "id": 7582,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7573,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7572,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "28855:9:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 326,
                  "src": "28855:9:20"
                },
                "nodeType": "ModifierInvocation",
                "src": "28855:9:20"
              }
            ],
            "name": "transferOwnership",
            "nameLocation": "28730:17:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7571,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 7569,
                  "name": "IWitRandomnessAdmin",
                  "nameLocations": [
                    "28794:19:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 28395,
                  "src": "28794:19:20"
                },
                {
                  "id": 7570,
                  "name": "Ownable2Step",
                  "nameLocations": [
                    "28815:12:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45709,
                  "src": "28815:12:20"
                }
              ],
              "src": "28784:44:20"
            },
            "parameters": {
              "id": 7568,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7567,
                  "mutability": "mutable",
                  "name": "_newOwner",
                  "nameLocation": "28756:9:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7582,
                  "src": "28748:17:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7566,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "28748:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28747:19:20"
            },
            "returnParameters": {
              "id": 7574,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "28870:0:20"
            },
            "scope": 8239,
            "src": "28721:204:20",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              28373
            ],
            "body": {
              "id": 7660,
              "nodeType": "Block",
              "src": "29095:669:20",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 7605,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 7599,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 7594,
                        "name": "_consumer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7584,
                        "src": "29124:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 7597,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "29145:1:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 7596,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "29137:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 7595,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "29137:7:20",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7598,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "29137:10:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "29124:23:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 7604,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "expression": {
                            "id": 7600,
                            "name": "_consumer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7584,
                            "src": "29168:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 7601,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "29178:4:20",
                          "memberName": "code",
                          "nodeType": "MemberAccess",
                          "src": "29168:14:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 7602,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "29183:6:20",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "29168:21:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "hexValue": "30",
                        "id": 7603,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "29192:1:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "29168:25:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "29124:69:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7655,
                  "nodeType": "IfStatement",
                  "src": "29106:609:20",
                  "trueBody": {
                    "id": 7654,
                    "nodeType": "Block",
                    "src": "29205:510:20",
                    "statements": [
                      {
                        "clauses": [
                          {
                            "block": {
                              "id": 7646,
                              "nodeType": "Block",
                              "src": "29314:366:20",
                              "statements": [
                                {
                                  "condition": {
                                    "commonType": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    "id": 7623,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "arguments": [
                                        {
                                          "id": 7617,
                                          "name": "_witRandomness",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7613,
                                          "src": "29345:14:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_IWitRandomness_$28351",
                                            "typeString": "contract IWitRandomness"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_contract$_IWitRandomness_$28351",
                                            "typeString": "contract IWitRandomness"
                                          }
                                        ],
                                        "id": 7616,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "29337:7:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_address_$",
                                          "typeString": "type(address)"
                                        },
                                        "typeName": {
                                          "id": 7615,
                                          "name": "address",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "29337:7:20",
                                          "typeDescriptions": {}
                                        }
                                      },
                                      "id": 7618,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "29337:23:20",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "==",
                                    "rightExpression": {
                                      "arguments": [
                                        {
                                          "id": 7621,
                                          "name": "this",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4294967268,
                                          "src": "29372:4:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_WitRandomnessV3_$8239",
                                            "typeString": "contract WitRandomnessV3"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_contract$_WitRandomnessV3_$8239",
                                            "typeString": "contract WitRandomnessV3"
                                          }
                                        ],
                                        "id": 7620,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "29364:7:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_address_$",
                                          "typeString": "type(address)"
                                        },
                                        "typeName": {
                                          "id": 7619,
                                          "name": "address",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "29364:7:20",
                                          "typeDescriptions": {}
                                        }
                                      },
                                      "id": 7622,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "29364:13:20",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "src": "29337:40:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "id": 7645,
                                  "nodeType": "IfStatement",
                                  "src": "29333:332:20",
                                  "trueBody": {
                                    "id": 7644,
                                    "nodeType": "Block",
                                    "src": "29379:286:20",
                                    "statements": [
                                      {
                                        "expression": {
                                          "arguments": [
                                            {
                                              "commonType": {
                                                "typeIdentifier": "t_uint24",
                                                "typeString": "uint24"
                                              },
                                              "id": 7627,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "leftExpression": {
                                                "id": 7625,
                                                "name": "_maxCallbackGasLimit",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7586,
                                                "src": "29411:20:20",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint24",
                                                  "typeString": "uint24"
                                                }
                                              },
                                              "nodeType": "BinaryOperation",
                                              "operator": ">=",
                                              "rightExpression": {
                                                "id": 7626,
                                                "name": "_WIT_ORACLE_MIN_CALLBACK_GAS_LIMIT",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6384,
                                                "src": "29435:34:20",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint24",
                                                  "typeString": "uint24"
                                                }
                                              },
                                              "src": "29411:58:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                              }
                                            },
                                            {
                                              "hexValue": "6c6f7720676173206c696d6974",
                                              "id": 7628,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "string",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "29471:15:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_8136bd669bcfac35e9c0f5d28501d7665165e9832f33ee7f92c02edd2bf2f624",
                                                "typeString": "literal_string \"low gas limit\""
                                              },
                                              "value": "low gas limit"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                              },
                                              {
                                                "typeIdentifier": "t_stringliteral_8136bd669bcfac35e9c0f5d28501d7665165e9832f33ee7f92c02edd2bf2f624",
                                                "typeString": "literal_string \"low gas limit\""
                                              }
                                            ],
                                            "id": 7624,
                                            "name": "_require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 26494,
                                            "src": "29402:8:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                              "typeString": "function (bool,string memory) view"
                                            }
                                          },
                                          "id": 7629,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "functionCall",
                                          "lValueRequested": false,
                                          "nameLocations": [],
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "29402:85:20",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                          }
                                        },
                                        "id": 7630,
                                        "nodeType": "ExpressionStatement",
                                        "src": "29402:85:20"
                                      },
                                      {
                                        "expression": {
                                          "id": 7635,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftHandSide": {
                                            "expression": {
                                              "arguments": [],
                                              "expression": {
                                                "argumentTypes": [],
                                                "id": 7631,
                                                "name": "__storage",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8238,
                                                "src": "29510:9:20",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                                  "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                                }
                                              },
                                              "id": 7632,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "functionCall",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "29510:11:20",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                                "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                              }
                                            },
                                            "id": 7633,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberLocation": "29522:8:20",
                                            "memberName": "consumer",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 6431,
                                            "src": "29510:20:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          "nodeType": "Assignment",
                                          "operator": "=",
                                          "rightHandSide": {
                                            "id": 7634,
                                            "name": "_consumer",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7584,
                                            "src": "29533:9:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          "src": "29510:32:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        },
                                        "id": 7636,
                                        "nodeType": "ExpressionStatement",
                                        "src": "29510:32:20"
                                      },
                                      {
                                        "expression": {
                                          "id": 7641,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftHandSide": {
                                            "expression": {
                                              "arguments": [],
                                              "expression": {
                                                "argumentTypes": [],
                                                "id": 7637,
                                                "name": "__storage",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8238,
                                                "src": "29565:9:20",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                                  "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                                }
                                              },
                                              "id": 7638,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "functionCall",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "29565:11:20",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                                "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                              }
                                            },
                                            "id": 7639,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberLocation": "29577:16:20",
                                            "memberName": "callbackGasLimit",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 6419,
                                            "src": "29565:28:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint24",
                                              "typeString": "uint24"
                                            }
                                          },
                                          "nodeType": "Assignment",
                                          "operator": "=",
                                          "rightHandSide": {
                                            "id": 7640,
                                            "name": "_maxCallbackGasLimit",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7586,
                                            "src": "29596:20:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint24",
                                              "typeString": "uint24"
                                            }
                                          },
                                          "src": "29565:51:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint24",
                                            "typeString": "uint24"
                                          }
                                        },
                                        "id": 7642,
                                        "nodeType": "ExpressionStatement",
                                        "src": "29565:51:20"
                                      },
                                      {
                                        "functionReturnParameters": 7593,
                                        "id": 7643,
                                        "nodeType": "Return",
                                        "src": "29639:7:20"
                                      }
                                    ]
                                  }
                                }
                              ]
                            },
                            "errorName": "",
                            "id": 7647,
                            "nodeType": "TryCatchClause",
                            "parameters": {
                              "id": 7614,
                              "nodeType": "ParameterList",
                              "parameters": [
                                {
                                  "constant": false,
                                  "id": 7613,
                                  "mutability": "mutable",
                                  "name": "_witRandomness",
                                  "nameLocation": "29298:14:20",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 7647,
                                  "src": "29283:29:20",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IWitRandomness_$28351",
                                    "typeString": "contract IWitRandomness"
                                  },
                                  "typeName": {
                                    "id": 7612,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 7611,
                                      "name": "IWitRandomness",
                                      "nameLocations": [
                                        "29283:14:20"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 28351,
                                      "src": "29283:14:20"
                                    },
                                    "referencedDeclaration": 28351,
                                    "src": "29283:14:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_IWitRandomness_$28351",
                                      "typeString": "contract IWitRandomness"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "src": "29282:31:20"
                            },
                            "src": "29274:406:20"
                          },
                          {
                            "block": {
                              "id": 7651,
                              "nodeType": "Block",
                              "src": "29702:2:20",
                              "statements": []
                            },
                            "errorName": "",
                            "id": 7652,
                            "nodeType": "TryCatchClause",
                            "parameters": {
                              "id": 7650,
                              "nodeType": "ParameterList",
                              "parameters": [
                                {
                                  "constant": false,
                                  "id": 7649,
                                  "mutability": "mutable",
                                  "name": "",
                                  "nameLocation": "-1:-1:-1",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 7652,
                                  "src": "29688:12:20",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes"
                                  },
                                  "typeName": {
                                    "id": 7648,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "29688:5:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "src": "29687:14:20"
                            },
                            "src": "29681:23:20"
                          }
                        ],
                        "externalCall": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "arguments": [
                                {
                                  "id": 7607,
                                  "name": "_consumer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7584,
                                  "src": "29247:9:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 7606,
                                "name": "IWitRandomnessConsumer",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 28425,
                                "src": "29224:22:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IWitRandomnessConsumer_$28425_$",
                                  "typeString": "type(contract IWitRandomnessConsumer)"
                                }
                              },
                              "id": 7608,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "29224:33:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IWitRandomnessConsumer_$28425",
                                "typeString": "contract IWitRandomnessConsumer"
                              }
                            },
                            "id": 7609,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "29258:13:20",
                            "memberName": "witRandomness",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 28424,
                            "src": "29224:47:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWitRandomness_$28351_$",
                              "typeString": "function () view external returns (contract IWitRandomness)"
                            }
                          },
                          "id": 7610,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "29224:49:20",
                          "tryCall": true,
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IWitRandomness_$28351",
                            "typeString": "contract IWitRandomness"
                          }
                        },
                        "id": 7653,
                        "nodeType": "TryStatement",
                        "src": "29220:484:20"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "696e76616c696420636f6e73756d6572",
                        "id": 7657,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "29734:18:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_30d375c2d3310d4f09ec0a62e559f9c93a07370306fdd51d6e054a68ee1c63ac",
                          "typeString": "literal_string \"invalid consumer\""
                        },
                        "value": "invalid consumer"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_30d375c2d3310d4f09ec0a62e559f9c93a07370306fdd51d6e054a68ee1c63ac",
                          "typeString": "literal_string \"invalid consumer\""
                        }
                      ],
                      "id": 7656,
                      "name": "_revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26513,
                      "src": "29726:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) view"
                      }
                    },
                    "id": 7658,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "29726:27:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7659,
                  "nodeType": "ExpressionStatement",
                  "src": "29726:27:20"
                }
              ]
            },
            "functionSelector": "72587321",
            "id": 7661,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7590,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7589,
                  "name": "onlyOnClones",
                  "nameLocations": [
                    "29058:12:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45371,
                  "src": "29058:12:20"
                },
                "nodeType": "ModifierInvocation",
                "src": "29058:12:20"
              },
              {
                "id": 7592,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7591,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "29080:9:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 326,
                  "src": "29080:9:20"
                },
                "nodeType": "ModifierInvocation",
                "src": "29080:9:20"
              }
            ],
            "name": "settleConsumer",
            "nameLocation": "28942:14:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7588,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "29022:8:20"
            },
            "parameters": {
              "id": 7587,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7584,
                  "mutability": "mutable",
                  "name": "_consumer",
                  "nameLocation": "28965:9:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7661,
                  "src": "28957:17:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7583,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "28957:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7586,
                  "mutability": "mutable",
                  "name": "_maxCallbackGasLimit",
                  "nameLocation": "28983:20:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7661,
                  "src": "28976:27:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 7585,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "28976:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28956:48:20"
            },
            "returnParameters": {
              "id": 7593,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "29095:0:20"
            },
            "scope": 8239,
            "src": "28933:831:20",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              28384
            ],
            "body": {
              "id": 7714,
              "nodeType": "Block",
              "src": "30042:509:20",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7686,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 7682,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            },
                            "id": 7678,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 7676,
                              "name": "_callbackGasLimit",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7663,
                              "src": "30105:17:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint24",
                                "typeString": "uint24"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "id": 7677,
                              "name": "_WIT_ORACLE_MIN_CALLBACK_GAS_LIMIT",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6384,
                              "src": "30126:34:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint24",
                                "typeString": "uint24"
                              }
                            },
                            "src": "30105:55:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            },
                            "id": 7681,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 7679,
                              "name": "_minWitCommitteeSize",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7667,
                              "src": "30181:20:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint16",
                                "typeString": "uint16"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 7680,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "30204:1:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "30181:24:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "30105:100:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          },
                          "id": 7685,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7683,
                            "name": "_minWitCommitteeSize",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7667,
                            "src": "30227:20:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "hexValue": "313237",
                            "id": 7684,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "30251:3:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_127_by_1",
                              "typeString": "int_const 127"
                            },
                            "value": "127"
                          },
                          "src": "30227:27:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "30105:149:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e76616c696420706172616d73",
                        "id": 7687,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "30270:16:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ac5ac7e4af96b704de23383a91c10346f729e9b7855b951aeea8b541e93db654",
                          "typeString": "literal_string \"invalid params\""
                        },
                        "value": "invalid params"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ac5ac7e4af96b704de23383a91c10346f729e9b7855b951aeea8b541e93db654",
                          "typeString": "literal_string \"invalid params\""
                        }
                      ],
                      "id": 7675,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "30082:8:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 7688,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30082:215:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7689,
                  "nodeType": "ExpressionStatement",
                  "src": "30082:215:20"
                },
                {
                  "expression": {
                    "id": 7694,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 7690,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "30308:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 7691,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "30308:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 7692,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "30320:16:20",
                      "memberName": "callbackGasLimit",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6419,
                      "src": "30308:28:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 7693,
                      "name": "_callbackGasLimit",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7663,
                      "src": "30339:17:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint24",
                        "typeString": "uint24"
                      }
                    },
                    "src": "30308:48:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "id": 7695,
                  "nodeType": "ExpressionStatement",
                  "src": "30308:48:20"
                },
                {
                  "expression": {
                    "id": 7700,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 7696,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "30367:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 7697,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "30367:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 7698,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "30379:18:20",
                      "memberName": "extraFeePercentage",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6421,
                      "src": "30367:30:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 7699,
                      "name": "_extraFeePercentage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7665,
                      "src": "30400:19:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "30367:52:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "id": 7701,
                  "nodeType": "ExpressionStatement",
                  "src": "30367:52:20"
                },
                {
                  "expression": {
                    "id": 7706,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 7702,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "30430:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 7703,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "30430:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 7704,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "30442:16:20",
                      "memberName": "witCommitteeSize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6425,
                      "src": "30430:28:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 7705,
                      "name": "_minWitCommitteeSize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7667,
                      "src": "30461:20:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "30430:51:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "id": 7707,
                  "nodeType": "ExpressionStatement",
                  "src": "30430:51:20"
                },
                {
                  "expression": {
                    "id": 7712,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 7708,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "30492:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 7709,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "30492:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 7710,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "30504:16:20",
                      "memberName": "witInclusionFees",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6427,
                      "src": "30492:28:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 7711,
                      "name": "_minWitInclusionFees",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7669,
                      "src": "30523:20:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "30492:51:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "id": 7713,
                  "nodeType": "ExpressionStatement",
                  "src": "30492:51:20"
                }
              ]
            },
            "functionSelector": "cdd02a30",
            "id": 7715,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7673,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7672,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "30027:9:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 326,
                  "src": "30027:9:20"
                },
                "nodeType": "ModifierInvocation",
                "src": "30027:9:20"
              }
            ],
            "name": "settleQueryParams",
            "nameLocation": "29781:17:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7671,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "29991:8:20"
            },
            "parameters": {
              "id": 7670,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7663,
                  "mutability": "mutable",
                  "name": "_callbackGasLimit",
                  "nameLocation": "29820:17:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7715,
                  "src": "29813:24:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 7662,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "29813:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7665,
                  "mutability": "mutable",
                  "name": "_extraFeePercentage",
                  "nameLocation": "29859:19:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7715,
                  "src": "29852:26:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 7664,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "29852:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7667,
                  "mutability": "mutable",
                  "name": "_minWitCommitteeSize",
                  "nameLocation": "29900:20:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7715,
                  "src": "29893:27:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 7666,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "29893:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7669,
                  "mutability": "mutable",
                  "name": "_minWitInclusionFees",
                  "nameLocation": "29942:20:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7715,
                  "src": "29935:27:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 7668,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "29935:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29798:175:20"
            },
            "returnParameters": {
              "id": 7674,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "30042:0:20"
            },
            "scope": 8239,
            "src": "29772:779:20",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              28389
            ],
            "body": {
              "id": 7729,
              "nodeType": "Block",
              "src": "30699:79:20",
              "statements": [
                {
                  "expression": {
                    "id": 7727,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 7723,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "30710:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 7724,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "30710:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 7725,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "30722:22:20",
                      "memberName": "randomizeWaitingBlocks",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6433,
                      "src": "30710:34:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 7726,
                      "name": "_randomizeWaitingBlocks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7717,
                      "src": "30747:23:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "30710:60:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "id": 7728,
                  "nodeType": "ExpressionStatement",
                  "src": "30710:60:20"
                }
              ]
            },
            "functionSelector": "1ab79a37",
            "id": 7730,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7721,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7720,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "30684:9:20"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 326,
                  "src": "30684:9:20"
                },
                "nodeType": "ModifierInvocation",
                "src": "30684:9:20"
              }
            ],
            "name": "settleRandomizeWaitingBlocks",
            "nameLocation": "30570:28:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7719,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "30648:8:20"
            },
            "parameters": {
              "id": 7718,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7717,
                  "mutability": "mutable",
                  "name": "_randomizeWaitingBlocks",
                  "nameLocation": "30606:23:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7730,
                  "src": "30599:30:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 7716,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "30599:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30598:32:20"
            },
            "returnParameters": {
              "id": 7722,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "30699:0:20"
            },
            "scope": 8239,
            "src": "30561:217:20",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              26806
            ],
            "body": {
              "id": 7939,
              "nodeType": "Block",
              "src": "31625:2301:20",
              "statements": [
                {
                  "assignments": [
                    7740
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7740,
                      "mutability": "mutable",
                      "name": "_randomizeBlock",
                      "nameLocation": "31644:15:20",
                      "nodeType": "VariableDeclaration",
                      "scope": 7939,
                      "src": "31636:23:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7739,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "31636:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7753,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 7741,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "31662:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 7742,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "31662:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 7743,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "31674:6:20",
                      "memberName": "blocks",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6440,
                      "src": "31662:18:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_userDefinedValueType$_QueryId_$37151_$_t_uint256_$",
                        "typeString": "mapping(Witnet.QueryId => uint256)"
                      }
                    },
                    "id": 7752,
                    "indexExpression": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "id": 7749,
                              "name": "queryId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7733,
                              "src": "31708:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 7748,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "31701:6:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint64_$",
                              "typeString": "type(uint64)"
                            },
                            "typeName": {
                              "id": 7747,
                              "name": "uint64",
                              "nodeType": "ElementaryTypeName",
                              "src": "31701:6:20",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 7750,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31701:15:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        ],
                        "expression": {
                          "expression": {
                            "id": 7744,
                            "name": "Witnet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40741,
                            "src": "31681:6:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                              "typeString": "type(library Witnet)"
                            }
                          },
                          "id": 7745,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "31688:7:20",
                          "memberName": "QueryId",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37151,
                          "src": "31681:14:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_userDefinedValueType$_QueryId_$37151_$",
                            "typeString": "type(Witnet.QueryId)"
                          }
                        },
                        "id": 7746,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "31696:4:20",
                        "memberName": "wrap",
                        "nodeType": "MemberAccess",
                        "src": "31681:19:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_QueryId_$37151_$",
                          "typeString": "function (uint64) pure returns (Witnet.QueryId)"
                        }
                      },
                      "id": 7751,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "31681:36:20",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_QueryId_$37151",
                        "typeString": "Witnet.QueryId"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "31662:56:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "31636:82:20"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7757,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7755,
                          "name": "_randomizeBlock",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7740,
                          "src": "31738:15:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 7756,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "31756:1:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "31738:19:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e76616c6964207175657279",
                        "id": 7758,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "31759:15:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_13fbcf8acd45718f4bd8ddae394689a1e6702f8aed06636ff8be3a34b040f0b5",
                          "typeString": "literal_string \"invalid query\""
                        },
                        "value": "invalid query"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_13fbcf8acd45718f4bd8ddae394689a1e6702f8aed06636ff8be3a34b040f0b5",
                          "typeString": "literal_string \"invalid query\""
                        }
                      ],
                      "id": 7754,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "31729:8:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 7759,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31729:46:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7760,
                  "nodeType": "ExpressionStatement",
                  "src": "31729:46:20"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 7763,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "31810:3:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 7764,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "31814:6:20",
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "31810:10:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 7762,
                          "name": "reportableFrom",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7958,
                          "src": "31795:14:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view returns (bool)"
                          }
                        },
                        "id": 7765,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "31795:26:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e76616c6964206f7261636c65",
                        "id": 7766,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "31823:16:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_cb2d1e9dfd97eaf95f99d74a04eb502b6404ea235ae0f509d4ba6dee55f4818b",
                          "typeString": "literal_string \"invalid oracle\""
                        },
                        "value": "invalid oracle"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_cb2d1e9dfd97eaf95f99d74a04eb502b6404ea235ae0f509d4ba6dee55f4818b",
                          "typeString": "literal_string \"invalid oracle\""
                        }
                      ],
                      "id": 7761,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "31786:8:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 7767,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31786:54:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7768,
                  "nodeType": "ExpressionStatement",
                  "src": "31786:54:20"
                },
                {
                  "assignments": [
                    7771
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7771,
                      "mutability": "mutable",
                      "name": "__request",
                      "nameLocation": "31871:9:20",
                      "nodeType": "VariableDeclaration",
                      "scope": 7939,
                      "src": "31853:27:20",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                        "typeString": "struct WitRandomnessV3.Randomize"
                      },
                      "typeName": {
                        "id": 7770,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 7769,
                          "name": "Randomize",
                          "nameLocations": [
                            "31853:9:20"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 6404,
                          "src": "31853:9:20"
                        },
                        "referencedDeclaration": 6404,
                        "src": "31853:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Randomize"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7777,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 7772,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "31883:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 7773,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "31883:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 7774,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "31895:8:20",
                      "memberName": "requests",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6445,
                      "src": "31883:20:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                        "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize storage ref)"
                      }
                    },
                    "id": 7776,
                    "indexExpression": {
                      "id": 7775,
                      "name": "_randomizeBlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7740,
                      "src": "31904:15:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "31883:37:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Randomize_$6404_storage",
                      "typeString": "struct WitRandomnessV3.Randomize storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "31853:67:20"
                },
                {
                  "assignments": [
                    7782
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7782,
                      "mutability": "mutable",
                      "name": "_queryResult",
                      "nameLocation": "31958:12:20",
                      "nodeType": "VariableDeclaration",
                      "scope": 7939,
                      "src": "31933:37:20",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                        "typeString": "struct Witnet.DataResult"
                      },
                      "typeName": {
                        "id": 7781,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 7780,
                          "name": "Witnet.DataResult",
                          "nameLocations": [
                            "31933:6:20",
                            "31940:10:20"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 37293,
                          "src": "31933:17:20"
                        },
                        "referencedDeclaration": 37293,
                        "src": "31933:17:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                          "typeString": "struct Witnet.DataResult"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7790,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 7785,
                        "name": "queryResult",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7735,
                        "src": "31984:11:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      {
                        "components": [
                          {
                            "expression": {
                              "id": 7786,
                              "name": "Witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 40741,
                              "src": "31998:6:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                "typeString": "type(library Witnet)"
                              }
                            },
                            "id": 7787,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "32005:10:20",
                            "memberName": "DataResult",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37293,
                            "src": "31998:17:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_DataResult_$37293_storage_ptr_$",
                              "typeString": "type(struct Witnet.DataResult storage pointer)"
                            }
                          }
                        ],
                        "id": 7788,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "31997:19:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_DataResult_$37293_storage_ptr_$",
                          "typeString": "type(struct Witnet.DataResult storage pointer)"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        },
                        {
                          "typeIdentifier": "t_type$_t_struct$_DataResult_$37293_storage_ptr_$",
                          "typeString": "type(struct Witnet.DataResult storage pointer)"
                        }
                      ],
                      "expression": {
                        "id": 7783,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967295,
                        "src": "31973:3:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 7784,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "31977:6:20",
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "src": "31973:10:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 7789,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31973:44:20",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "31933:84:20"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 7814,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 7809,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7800,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bytes8",
                            "typeString": "bytes8"
                          },
                          "id": 7794,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 7791,
                              "name": "__request",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7771,
                              "src": "32046:9:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                              }
                            },
                            "id": 7792,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "32056:10:20",
                            "memberName": "randomness",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6401,
                            "src": "32046:20:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes8",
                              "typeString": "bytes8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 7793,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "32070:1:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "32046:25:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          },
                          "id": 7799,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 7795,
                                "name": "__storage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8238,
                                "src": "32092:9:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                  "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                }
                              },
                              "id": 7796,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "32092:11:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Storage storage pointer"
                              }
                            },
                            "id": 7797,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "32104:22:20",
                            "memberName": "randomizeWaitingBlocks",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6433,
                            "src": "32092:34:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 7798,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "32129:1:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "32092:38:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "32046:84:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&&",
                      "rightExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7808,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 7801,
                            "name": "block",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967292,
                            "src": "32151:5:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_block",
                              "typeString": "block"
                            }
                          },
                          "id": 7802,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "32157:6:20",
                          "memberName": "number",
                          "nodeType": "MemberAccess",
                          "src": "32151:12:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7807,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7803,
                            "name": "_randomizeBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7740,
                            "src": "32166:15:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 7804,
                                "name": "__storage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8238,
                                "src": "32184:9:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                  "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                }
                              },
                              "id": 7805,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "32184:11:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Storage storage pointer"
                              }
                            },
                            "id": 7806,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "32196:22:20",
                            "memberName": "randomizeWaitingBlocks",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6433,
                            "src": "32184:34:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          "src": "32166:52:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "32151:67:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "32046:172:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "id": 7813,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 7810,
                          "name": "__request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7771,
                          "src": "32239:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                            "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                          }
                        },
                        "id": 7811,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "32249:9:20",
                        "memberName": "nextBlock",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6399,
                        "src": "32239:19:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "hexValue": "30",
                        "id": 7812,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "32261:1:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "32239:23:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "32046:216:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 7937,
                    "nodeType": "Block",
                    "src": "32452:1467:20",
                    "statements": [
                      {
                        "assignments": [
                          7827
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 7827,
                            "mutability": "mutable",
                            "name": "_randomness",
                            "nameLocation": "32474:11:20",
                            "nodeType": "VariableDeclaration",
                            "scope": 7937,
                            "src": "32467:18:20",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes8",
                              "typeString": "bytes8"
                            },
                            "typeName": {
                              "id": 7826,
                              "name": "bytes8",
                              "nodeType": "ElementaryTypeName",
                              "src": "32467:6:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes8",
                                "typeString": "bytes8"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 7832,
                        "initialValue": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 7830,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "32495:1:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 7829,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "32488:6:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes8_$",
                              "typeString": "type(bytes8)"
                            },
                            "typeName": {
                              "id": 7828,
                              "name": "bytes8",
                              "nodeType": "ElementaryTypeName",
                              "src": "32488:6:20",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 7831,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "32488:9:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes8",
                            "typeString": "bytes8"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "32467:30:20"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_ResultStatus_$37698",
                            "typeString": "enum Witnet.ResultStatus"
                          },
                          "id": 7838,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 7833,
                              "name": "_queryResult",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7782,
                              "src": "32516:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                "typeString": "struct Witnet.DataResult memory"
                              }
                            },
                            "id": 7834,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "32529:6:20",
                            "memberName": "status",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37278,
                            "src": "32516:19:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "expression": {
                                "id": 7835,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "32539:6:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 7836,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "32546:12:20",
                              "memberName": "ResultStatus",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37698,
                              "src": "32539:19:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ResultStatus_$37698_$",
                                "typeString": "type(enum Witnet.ResultStatus)"
                              }
                            },
                            "id": 7837,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "32559:8:20",
                            "memberName": "NoErrors",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37375,
                            "src": "32539:28:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            }
                          },
                          "src": "32516:51:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 7877,
                          "nodeType": "Block",
                          "src": "32879:71:20",
                          "statements": [
                            {
                              "expression": {
                                "id": 7875,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "expression": {
                                    "id": 7867,
                                    "name": "__request",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7771,
                                    "src": "32898:9:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                      "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                    }
                                  },
                                  "id": 7869,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberLocation": "32908:7:20",
                                  "memberName": "queryId",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 6395,
                                  "src": "32898:17:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "id": 7872,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "32923:6:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint64_$",
                                          "typeString": "type(uint64)"
                                        },
                                        "typeName": {
                                          "id": 7871,
                                          "name": "uint64",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "32923:6:20",
                                          "typeDescriptions": {}
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_type$_t_uint64_$",
                                          "typeString": "type(uint64)"
                                        }
                                      ],
                                      "id": 7870,
                                      "name": "type",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967269,
                                      "src": "32918:4:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                        "typeString": "function () pure"
                                      }
                                    },
                                    "id": 7873,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "32918:12:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_meta_type_t_uint64",
                                      "typeString": "type(uint64)"
                                    }
                                  },
                                  "id": 7874,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberLocation": "32931:3:20",
                                  "memberName": "max",
                                  "nodeType": "MemberAccess",
                                  "src": "32918:16:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "src": "32898:36:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "id": 7876,
                              "nodeType": "ExpressionStatement",
                              "src": "32898:36:20"
                            }
                          ]
                        },
                        "id": 7878,
                        "nodeType": "IfStatement",
                        "src": "32512:438:20",
                        "trueBody": {
                          "id": 7866,
                          "nodeType": "Block",
                          "src": "32569:304:20",
                          "statements": [
                            {
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                },
                                "id": 7845,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "arguments": [
                                    {
                                      "id": 7841,
                                      "name": "queryId",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7733,
                                      "src": "32599:7:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 7840,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "32592:6:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint64_$",
                                      "typeString": "type(uint64)"
                                    },
                                    "typeName": {
                                      "id": 7839,
                                      "name": "uint64",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "32592:6:20",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 7842,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "32592:15:20",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "expression": {
                                    "id": 7843,
                                    "name": "__request",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7771,
                                    "src": "32611:9:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                      "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                    }
                                  },
                                  "id": 7844,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "32621:7:20",
                                  "memberName": "queryId",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 6395,
                                  "src": "32611:17:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "src": "32592:36:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 7856,
                              "nodeType": "IfStatement",
                              "src": "32588:202:20",
                              "trueBody": {
                                "id": 7855,
                                "nodeType": "Block",
                                "src": "32630:160:20",
                                "statements": [
                                  {
                                    "expression": {
                                      "id": 7853,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "expression": {
                                          "id": 7846,
                                          "name": "__request",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7771,
                                          "src": "32735:9:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                            "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                          }
                                        },
                                        "id": 7848,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "memberLocation": "32745:7:20",
                                        "memberName": "queryId",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 6395,
                                        "src": "32735:17:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint64",
                                          "typeString": "uint64"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "arguments": [
                                          {
                                            "id": 7851,
                                            "name": "queryId",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7733,
                                            "src": "32762:7:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "id": 7850,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "32755:6:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint64_$",
                                            "typeString": "type(uint64)"
                                          },
                                          "typeName": {
                                            "id": 7849,
                                            "name": "uint64",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "32755:6:20",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 7852,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "32755:15:20",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint64",
                                          "typeString": "uint64"
                                        }
                                      },
                                      "src": "32735:35:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      }
                                    },
                                    "id": 7854,
                                    "nodeType": "ExpressionStatement",
                                    "src": "32735:35:20"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "id": 7864,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 7857,
                                  "name": "_randomness",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7827,
                                  "src": "32808:11:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes8",
                                    "typeString": "bytes8"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "expression": {
                                          "id": 7860,
                                          "name": "_queryResult",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7782,
                                          "src": "32829:12:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                            "typeString": "struct Witnet.DataResult memory"
                                          }
                                        },
                                        "id": 7861,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "32842:12:20",
                                        "memberName": "fetchBytes32",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 38364,
                                        "src": "32829:25:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_struct$_DataResult_$37293_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_DataResult_$37293_memory_ptr_$",
                                          "typeString": "function (struct Witnet.DataResult memory) pure returns (bytes32)"
                                        }
                                      },
                                      "id": 7862,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "32829:27:20",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "id": 7859,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "32822:6:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes8_$",
                                      "typeString": "type(bytes8)"
                                    },
                                    "typeName": {
                                      "id": 7858,
                                      "name": "bytes8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "32822:6:20",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 7863,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "32822:35:20",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes8",
                                    "typeString": "bytes8"
                                  }
                                },
                                "src": "32808:49:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes8",
                                  "typeString": "bytes8"
                                }
                              },
                              "id": 7865,
                              "nodeType": "ExpressionStatement",
                              "src": "32808:49:20"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "id": 7887,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "id": 7879,
                              "name": "__request",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7771,
                              "src": "32964:9:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                              }
                            },
                            "id": 7881,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberLocation": "32974:8:20",
                            "memberName": "finality",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6397,
                            "src": "32964:18:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 7884,
                                  "name": "_queryResult",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7782,
                                  "src": "32992:12:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                    "typeString": "struct Witnet.DataResult memory"
                                  }
                                },
                                "id": 7885,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "33005:8:20",
                                "memberName": "finality",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37286,
                                "src": "32992:21:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 7883,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "32985:6:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint64_$",
                                "typeString": "type(uint64)"
                              },
                              "typeName": {
                                "id": 7882,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "32985:6:20",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 7886,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "32985:29:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "32964:50:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "id": 7888,
                        "nodeType": "ExpressionStatement",
                        "src": "32964:50:20"
                      },
                      {
                        "expression": {
                          "id": 7893,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "id": 7889,
                              "name": "__request",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7771,
                              "src": "33029:9:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                              }
                            },
                            "id": 7891,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberLocation": "33039:10:20",
                            "memberName": "randomness",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6401,
                            "src": "33029:20:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes8",
                              "typeString": "bytes8"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 7892,
                            "name": "_randomness",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7827,
                            "src": "33052:11:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes8",
                              "typeString": "bytes8"
                            }
                          },
                          "src": "33029:34:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes8",
                            "typeString": "bytes8"
                          }
                        },
                        "id": 7894,
                        "nodeType": "ExpressionStatement",
                        "src": "33029:34:20"
                      },
                      {
                        "assignments": [
                          7896
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 7896,
                            "mutability": "mutable",
                            "name": "_consumer",
                            "nameLocation": "33088:9:20",
                            "nodeType": "VariableDeclaration",
                            "scope": 7937,
                            "src": "33080:17:20",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 7895,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "33080:7:20",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 7900,
                        "initialValue": {
                          "expression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 7897,
                              "name": "__storage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8238,
                              "src": "33100:9:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                              }
                            },
                            "id": 7898,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "33100:11:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                              "typeString": "struct WitRandomnessV3.Storage storage pointer"
                            }
                          },
                          "id": 7899,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "33112:8:20",
                          "memberName": "consumer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6431,
                          "src": "33100:20:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "33080:40:20"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 7906,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7901,
                            "name": "_consumer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7896,
                            "src": "33139:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 7904,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "33160:1:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 7903,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "33152:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 7902,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "33152:7:20",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 7905,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "33152:10:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "33139:23:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 7929,
                        "nodeType": "IfStatement",
                        "src": "33135:621:20",
                        "trueBody": {
                          "id": 7928,
                          "nodeType": "Block",
                          "src": "33164:592:20",
                          "statements": [
                            {
                              "clauses": [
                                {
                                  "block": {
                                    "id": 7920,
                                    "nodeType": "Block",
                                    "src": "33480:2:20",
                                    "statements": []
                                  },
                                  "errorName": "",
                                  "id": 7921,
                                  "nodeType": "TryCatchClause",
                                  "src": "33480:2:20"
                                },
                                {
                                  "block": {
                                    "id": 7925,
                                    "nodeType": "Block",
                                    "src": "33504:237:20",
                                    "statements": []
                                  },
                                  "errorName": "",
                                  "id": 7926,
                                  "nodeType": "TryCatchClause",
                                  "parameters": {
                                    "id": 7924,
                                    "nodeType": "ParameterList",
                                    "parameters": [
                                      {
                                        "constant": false,
                                        "id": 7923,
                                        "mutability": "mutable",
                                        "name": "",
                                        "nameLocation": "-1:-1:-1",
                                        "nodeType": "VariableDeclaration",
                                        "scope": 7926,
                                        "src": "33490:12:20",
                                        "stateVariable": false,
                                        "storageLocation": "memory",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes"
                                        },
                                        "typeName": {
                                          "id": 7922,
                                          "name": "bytes",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "33490:5:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_storage_ptr",
                                            "typeString": "bytes"
                                          }
                                        },
                                        "visibility": "internal"
                                      }
                                    ],
                                    "src": "33489:14:20"
                                  },
                                  "src": "33483:258:20"
                                }
                              ],
                              "externalCall": {
                                "arguments": [
                                  {
                                    "id": 7911,
                                    "name": "_randomness",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7827,
                                    "src": "33260:11:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes8",
                                      "typeString": "bytes8"
                                    }
                                  },
                                  {
                                    "id": 7912,
                                    "name": "_randomizeBlock",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7740,
                                    "src": "33294:15:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 7913,
                                      "name": "_queryResult",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7782,
                                      "src": "33332:12:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                        "typeString": "struct Witnet.DataResult memory"
                                      }
                                    },
                                    "id": 7914,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "33345:8:20",
                                    "memberName": "finality",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 37286,
                                    "src": "33332:21:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 7915,
                                      "name": "_queryResult",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7782,
                                      "src": "33376:12:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                        "typeString": "struct Witnet.DataResult memory"
                                      }
                                    },
                                    "id": 7916,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "33389:9:20",
                                    "memberName": "timestamp",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 37289,
                                    "src": "33376:22:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                      "typeString": "Witnet.Timestamp"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 7917,
                                      "name": "_queryResult",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7782,
                                      "src": "33421:12:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                        "typeString": "struct Witnet.DataResult memory"
                                      }
                                    },
                                    "id": 7918,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "33434:8:20",
                                    "memberName": "drTxHash",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 37284,
                                    "src": "33421:21:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                                      "typeString": "Witnet.TransactionHash"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes8",
                                      "typeString": "bytes8"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                      "typeString": "Witnet.Timestamp"
                                    },
                                    {
                                      "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                                      "typeString": "Witnet.TransactionHash"
                                    }
                                  ],
                                  "expression": {
                                    "arguments": [
                                      {
                                        "id": 7908,
                                        "name": "_consumer",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7896,
                                        "src": "33210:9:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "id": 7907,
                                      "name": "IWitRandomnessConsumer",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 28425,
                                      "src": "33187:22:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_IWitRandomnessConsumer_$28425_$",
                                        "typeString": "type(contract IWitRandomnessConsumer)"
                                      }
                                    },
                                    "id": 7909,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "33187:33:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_IWitRandomnessConsumer_$28425",
                                      "typeString": "contract IWitRandomnessConsumer"
                                    }
                                  },
                                  "id": 7910,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "33221:16:20",
                                  "memberName": "reportRandomness",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 28417,
                                  "src": "33187:50:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_userDefinedValueType$_Timestamp_$37157_$_t_userDefinedValueType$_TransactionHash_$37159_$returns$__$",
                                    "typeString": "function (bytes32,uint256,uint256,Witnet.Timestamp,Witnet.TransactionHash) external"
                                  }
                                },
                                "id": 7919,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "33187:292:20",
                                "tryCall": true,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 7927,
                              "nodeType": "TryStatement",
                              "src": "33183:558:20"
                            }
                          ]
                        }
                      },
                      {
                        "eventCall": {
                          "arguments": [
                            {
                              "id": 7931,
                              "name": "_randomizeBlock",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7740,
                              "src": "33806:15:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 7932,
                                "name": "_queryResult",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7782,
                                "src": "33841:12:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                  "typeString": "struct Witnet.DataResult memory"
                                }
                              },
                              "id": 7933,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "33854:8:20",
                              "memberName": "finality",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37286,
                              "src": "33841:21:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 7934,
                              "name": "_randomness",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7827,
                              "src": "33881:11:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes8",
                                "typeString": "bytes8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes8",
                                "typeString": "bytes8"
                              }
                            ],
                            "id": 7930,
                            "name": "Randomized",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28448,
                            "src": "33777:10:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$",
                              "typeString": "function (uint256,uint256,bytes32)"
                            }
                          },
                          "id": 7935,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "33777:130:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7936,
                        "nodeType": "EmitStatement",
                        "src": "33772:135:20"
                      }
                    ]
                  },
                  "id": 7938,
                  "nodeType": "IfStatement",
                  "src": "32028:1891:20",
                  "trueBody": {
                    "id": 7825,
                    "nodeType": "Block",
                    "src": "32274:172:20",
                    "statements": [
                      {
                        "expression": {
                          "id": 7823,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "id": 7815,
                              "name": "__request",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7771,
                              "src": "32396:9:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                              }
                            },
                            "id": 7817,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberLocation": "32406:7:20",
                            "memberName": "queryId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6395,
                            "src": "32396:17:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 7820,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "32421:6:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint64_$",
                                    "typeString": "type(uint64)"
                                  },
                                  "typeName": {
                                    "id": 7819,
                                    "name": "uint64",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "32421:6:20",
                                    "typeDescriptions": {}
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_type$_t_uint64_$",
                                    "typeString": "type(uint64)"
                                  }
                                ],
                                "id": 7818,
                                "name": "type",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967269,
                                "src": "32416:4:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                  "typeString": "function () pure"
                                }
                              },
                              "id": 7821,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "32416:12:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_meta_type_t_uint64",
                                "typeString": "type(uint64)"
                              }
                            },
                            "id": 7822,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "32429:3:20",
                            "memberName": "max",
                            "nodeType": "MemberAccess",
                            "src": "32416:16:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "32396:36:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "id": 7824,
                        "nodeType": "ExpressionStatement",
                        "src": "32396:36:20"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 7731,
              "nodeType": "StructuredDocumentation",
              "src": "31032:419:20",
              "text": "Method to be called from the witOracle contract as soon as the given Witnet `queryId` gets reported.\n @dev It should revert if called from an address different to the WitOracle instance being used by consumer.\n @param queryId The unique identifier of the Witnet query being reported.\n @param queryResult Abi-encoded Witnet.DataResult containing the CBOR-encoded query's result, and metadata."
            },
            "functionSelector": "d6f29e81",
            "id": 7940,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "reportWitOracleQueryResult",
            "nameLocation": "31466:26:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7737,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "31593:8:20"
            },
            "parameters": {
              "id": 7736,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7733,
                  "mutability": "mutable",
                  "name": "queryId",
                  "nameLocation": "31515:7:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7940,
                  "src": "31507:15:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7732,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "31507:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7735,
                  "mutability": "mutable",
                  "name": "queryResult",
                  "nameLocation": "31552:11:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7940,
                  "src": "31537:26:20",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 7734,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "31537:5:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31492:82:20"
            },
            "returnParameters": {
              "id": 7738,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "31625:0:20"
            },
            "scope": 8239,
            "src": "31457:2469:20",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              26814
            ],
            "body": {
              "id": 7957,
              "nodeType": "Block",
              "src": "34276:82:20",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 7954,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7949,
                          "name": "_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7943,
                          "src": "34309:5:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 7952,
                              "name": "__WIT_ORACLE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6449,
                              "src": "34326:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 7951,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "34318:7:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 7950,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "34318:7:20",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 7953,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "34318:21:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "34309:30:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 7955,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "34294:56:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7948,
                  "id": 7956,
                  "nodeType": "Return",
                  "src": "34287:63:20"
                }
              ]
            },
            "documentation": {
              "id": 7941,
              "nodeType": "StructuredDocumentation",
              "src": "33934:218:20",
              "text": "Determines if Witnet queries can be reported from given address.\n @dev In practice, must only be true on the WitOracle address that's being used by\n @dev the consumer contract to post data queries. "
            },
            "functionSelector": "47a10e56",
            "id": 7958,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "reportableFrom",
            "nameLocation": "34167:14:20",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7945,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "34215:8:20"
            },
            "parameters": {
              "id": 7944,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7943,
                  "mutability": "mutable",
                  "name": "_from",
                  "nameLocation": "34190:5:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 7958,
                  "src": "34182:13:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7942,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "34182:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "34181:15:20"
            },
            "returnParameters": {
              "id": 7948,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7947,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 7958,
                  "src": "34265:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7946,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "34265:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "34264:6:20"
            },
            "scope": 8239,
            "src": "34158:200:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8048,
              "nodeType": "Block",
              "src": "34731:969:20",
              "statements": [
                {
                  "assignments": [
                    7967
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7967,
                      "mutability": "mutable",
                      "name": "__request",
                      "nameLocation": "34760:9:20",
                      "nodeType": "VariableDeclaration",
                      "scope": 8048,
                      "src": "34742:27:20",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                        "typeString": "struct WitRandomnessV3.Randomize"
                      },
                      "typeName": {
                        "id": 7966,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 7965,
                          "name": "Randomize",
                          "nameLocations": [
                            "34742:9:20"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 6404,
                          "src": "34742:9:20"
                        },
                        "referencedDeclaration": 6404,
                        "src": "34742:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Randomize"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7973,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 7968,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "34772:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 7969,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "34772:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 7970,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "34784:8:20",
                      "memberName": "requests",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6445,
                      "src": "34772:20:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                        "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize storage ref)"
                      }
                    },
                    "id": 7972,
                    "indexExpression": {
                      "id": 7971,
                      "name": "_blockNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7960,
                      "src": "34793:12:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "34772:34:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Randomize_$6404_storage",
                      "typeString": "struct WitRandomnessV3.Randomize storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "34742:64:20"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 7977,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 7974,
                        "name": "__request",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7967,
                        "src": "34821:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                        }
                      },
                      "id": 7975,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "34831:7:20",
                      "memberName": "queryId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6395,
                      "src": "34821:17:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 7976,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "34842:1:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "34821:22:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "id": 7992,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 7985,
                          "name": "__request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7967,
                          "src": "34980:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                            "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                          }
                        },
                        "id": 7986,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "34990:7:20",
                        "memberName": "queryId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6395,
                        "src": "34980:17:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "expression": {
                          "arguments": [
                            {
                              "id": 7989,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "35006:6:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint64_$",
                                "typeString": "type(uint64)"
                              },
                              "typeName": {
                                "id": 7988,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "35006:6:20",
                                "typeDescriptions": {}
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_type$_t_uint64_$",
                                "typeString": "type(uint64)"
                              }
                            ],
                            "id": 7987,
                            "name": "type",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967269,
                            "src": "35001:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 7990,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35001:12:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_meta_type_t_uint64",
                            "typeString": "type(uint64)"
                          }
                        },
                        "id": 7991,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "35014:3:20",
                        "memberName": "max",
                        "nodeType": "MemberAccess",
                        "src": "35001:16:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "src": "34980:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 8045,
                      "nodeType": "Block",
                      "src": "35234:459:20",
                      "statements": [
                        {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_bytes8",
                              "typeString": "bytes8"
                            },
                            "id": 8013,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 8007,
                                "name": "__request",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7967,
                                "src": "35253:9:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                  "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                }
                              },
                              "id": 8008,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "35263:10:20",
                              "memberName": "randomness",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6401,
                              "src": "35253:20:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes8",
                                "typeString": "bytes8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 8011,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "35284:1:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 8010,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "35277:6:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes8_$",
                                  "typeString": "type(bytes8)"
                                },
                                "typeName": {
                                  "id": 8009,
                                  "name": "bytes8",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "35277:6:20",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 8012,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "35277:9:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes8",
                                "typeString": "bytes8"
                              }
                            },
                            "src": "35253:33:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 8041,
                          "nodeType": "IfStatement",
                          "src": "35249:394:20",
                          "trueBody": {
                            "id": 8040,
                            "nodeType": "Block",
                            "src": "35288:355:20",
                            "statements": [
                              {
                                "condition": {
                                  "commonType": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "id": 8032,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "id": 8027,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint16",
                                        "typeString": "uint16"
                                      },
                                      "id": 8018,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "arguments": [],
                                          "expression": {
                                            "argumentTypes": [],
                                            "id": 8014,
                                            "name": "__storage",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8238,
                                            "src": "35333:9:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                              "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                            }
                                          },
                                          "id": 8015,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "functionCall",
                                          "lValueRequested": false,
                                          "nameLocations": [],
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "35333:11:20",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                            "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                          }
                                        },
                                        "id": 8016,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "35345:22:20",
                                        "memberName": "randomizeWaitingBlocks",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 6433,
                                        "src": "35333:34:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint16",
                                          "typeString": "uint16"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">",
                                      "rightExpression": {
                                        "hexValue": "30",
                                        "id": 8017,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "35370:1:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      },
                                      "src": "35333:38:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&&",
                                    "rightExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 8026,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 8019,
                                          "name": "block",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4294967292,
                                          "src": "35401:5:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_magic_block",
                                            "typeString": "block"
                                          }
                                        },
                                        "id": 8020,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "35407:6:20",
                                        "memberName": "number",
                                        "nodeType": "MemberAccess",
                                        "src": "35401:12:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">",
                                      "rightExpression": {
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 8025,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 8021,
                                          "name": "_blockNumber",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7960,
                                          "src": "35416:12:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "+",
                                        "rightExpression": {
                                          "expression": {
                                            "arguments": [],
                                            "expression": {
                                              "argumentTypes": [],
                                              "id": 8022,
                                              "name": "__storage",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 8238,
                                              "src": "35431:9:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                                "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                              }
                                            },
                                            "id": 8023,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "35431:11:20",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                              "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                            }
                                          },
                                          "id": 8024,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "35443:22:20",
                                          "memberName": "randomizeWaitingBlocks",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 6433,
                                          "src": "35431:34:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint16",
                                            "typeString": "uint16"
                                          }
                                        },
                                        "src": "35416:49:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "35401:64:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "src": "35333:132:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "&&",
                                  "rightExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    },
                                    "id": 8031,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "expression": {
                                        "id": 8028,
                                        "name": "__request",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7967,
                                        "src": "35494:9:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                          "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                        }
                                      },
                                      "id": 8029,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "35504:9:20",
                                      "memberName": "nextBlock",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 6399,
                                      "src": "35494:19:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">",
                                    "rightExpression": {
                                      "hexValue": "30",
                                      "id": 8030,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "35516:1:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "src": "35494:23:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "src": "35333:184:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "id": 8039,
                                "nodeType": "IfStatement",
                                "src": "35307:321:20",
                                "trueBody": {
                                  "id": 8038,
                                  "nodeType": "Block",
                                  "src": "35537:91:20",
                                  "statements": [
                                    {
                                      "expression": {
                                        "arguments": [
                                          {
                                            "expression": {
                                              "id": 8034,
                                              "name": "__request",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7967,
                                              "src": "35588:9:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                                "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                              }
                                            },
                                            "id": 8035,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberLocation": "35598:9:20",
                                            "memberName": "nextBlock",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 6399,
                                            "src": "35588:19:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint64",
                                              "typeString": "uint64"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint64",
                                              "typeString": "uint64"
                                            }
                                          ],
                                          "id": 8033,
                                          "name": "_getRandomizeQueryId",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8049,
                                          "src": "35567:20:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint64_$",
                                            "typeString": "function (uint256) view returns (uint64)"
                                          }
                                        },
                                        "id": 8036,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "35567:41:20",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint64",
                                          "typeString": "uint64"
                                        }
                                      },
                                      "functionReturnParameters": 7964,
                                      "id": 8037,
                                      "nodeType": "Return",
                                      "src": "35560:48:20"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          "expression": {
                            "expression": {
                              "id": 8042,
                              "name": "__request",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7967,
                              "src": "35664:9:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                              }
                            },
                            "id": 8043,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "35674:7:20",
                            "memberName": "queryId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6395,
                            "src": "35664:17:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "functionReturnParameters": 7964,
                          "id": 8044,
                          "nodeType": "Return",
                          "src": "35657:24:20"
                        }
                      ]
                    },
                    "id": 8046,
                    "nodeType": "IfStatement",
                    "src": "34976:717:20",
                    "trueBody": {
                      "id": 8006,
                      "nodeType": "Block",
                      "src": "35019:209:20",
                      "statements": [
                        {
                          "expression": {
                            "components": [
                              {
                                "condition": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  },
                                  "id": 7996,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "expression": {
                                      "id": 7993,
                                      "name": "__request",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7967,
                                      "src": "35060:9:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                        "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                      }
                                    },
                                    "id": 7994,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "35070:9:20",
                                    "memberName": "nextBlock",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6399,
                                    "src": "35060:19:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": ">",
                                  "rightExpression": {
                                    "hexValue": "30",
                                    "id": 7995,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "35082:1:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "src": "35060:23:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseExpression": {
                                  "expression": {
                                    "id": 8001,
                                    "name": "__request",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7967,
                                    "src": "35174:9:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                      "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                    }
                                  },
                                  "id": 8002,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "35184:7:20",
                                  "memberName": "queryId",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 6395,
                                  "src": "35174:17:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "id": 8003,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "Conditional",
                                "src": "35060:131:20",
                                "trueExpression": {
                                  "arguments": [
                                    {
                                      "expression": {
                                        "id": 7998,
                                        "name": "__request",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7967,
                                        "src": "35129:9:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                          "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                        }
                                      },
                                      "id": 7999,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "35139:9:20",
                                      "memberName": "nextBlock",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 6399,
                                      "src": "35129:19:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      }
                                    ],
                                    "id": 7997,
                                    "name": "_getRandomizeQueryId",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8049,
                                    "src": "35108:20:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint64_$",
                                      "typeString": "function (uint256) view returns (uint64)"
                                    }
                                  },
                                  "id": 8000,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "35108:41:20",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "id": 8004,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "35041:165:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "functionReturnParameters": 7964,
                          "id": 8005,
                          "nodeType": "Return",
                          "src": "35034:172:20"
                        }
                      ]
                    }
                  },
                  "id": 8047,
                  "nodeType": "IfStatement",
                  "src": "34817:876:20",
                  "trueBody": {
                    "id": 7984,
                    "nodeType": "Block",
                    "src": "34845:125:20",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 7980,
                                  "name": "_blockNumber",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7960,
                                  "src": "34928:12:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 7979,
                                "name": "getRandomizeNextBlock",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7022,
                                "src": "34906:21:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                                  "typeString": "function (uint256) view returns (uint256)"
                                }
                              },
                              "id": 7981,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "34906:35:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 7978,
                            "name": "_getRandomizeQueryId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8049,
                            "src": "34867:20:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint64_$",
                              "typeString": "function (uint256) view returns (uint64)"
                            }
                          },
                          "id": 7982,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "34867:89:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "functionReturnParameters": 7964,
                        "id": 7983,
                        "nodeType": "Return",
                        "src": "34860:96:20"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 8049,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_getRandomizeQueryId",
            "nameLocation": "34625:20:20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7961,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7960,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "34654:12:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 8049,
                  "src": "34646:20:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7959,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "34646:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "34645:22:20"
            },
            "returnParameters": {
              "id": 7964,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7963,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8049,
                  "src": "34718:6:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 7962,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "34718:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "34717:8:20"
            },
            "scope": 8239,
            "src": "34616:1084:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8170,
              "nodeType": "Block",
              "src": "35836:1429:20",
              "statements": [
                {
                  "assignments": [
                    8058
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8058,
                      "mutability": "mutable",
                      "name": "__request",
                      "nameLocation": "35865:9:20",
                      "nodeType": "VariableDeclaration",
                      "scope": 8170,
                      "src": "35847:27:20",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                        "typeString": "struct WitRandomnessV3.Randomize"
                      },
                      "typeName": {
                        "id": 8057,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 8056,
                          "name": "Randomize",
                          "nameLocations": [
                            "35847:9:20"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 6404,
                          "src": "35847:9:20"
                        },
                        "referencedDeclaration": 6404,
                        "src": "35847:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Randomize"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8064,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 8059,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8238,
                          "src": "35877:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                          }
                        },
                        "id": 8060,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "35877:11:20",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Storage storage pointer"
                        }
                      },
                      "id": 8061,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "35889:8:20",
                      "memberName": "requests",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6445,
                      "src": "35877:20:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                        "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize storage ref)"
                      }
                    },
                    "id": 8063,
                    "indexExpression": {
                      "id": 8062,
                      "name": "_blockNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8051,
                      "src": "35898:12:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "35877:34:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Randomize_$6404_storage",
                      "typeString": "struct WitRandomnessV3.Randomize storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "35847:64:20"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 8068,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 8065,
                        "name": "__request",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8058,
                        "src": "35926:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                          "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                        }
                      },
                      "id": 8066,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "35936:7:20",
                      "memberName": "queryId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6395,
                      "src": "35926:17:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 8067,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "35947:1:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "35926:22:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "id": 8083,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 8076,
                          "name": "__request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8058,
                          "src": "36094:9:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                            "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                          }
                        },
                        "id": 8077,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "36104:7:20",
                        "memberName": "queryId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6395,
                        "src": "36094:17:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "expression": {
                          "arguments": [
                            {
                              "id": 8080,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "36120:6:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint64_$",
                                "typeString": "type(uint64)"
                              },
                              "typeName": {
                                "id": 8079,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "36120:6:20",
                                "typeDescriptions": {}
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_type$_t_uint64_$",
                                "typeString": "type(uint64)"
                              }
                            ],
                            "id": 8078,
                            "name": "type",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967269,
                            "src": "36115:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 8081,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "36115:12:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_meta_type_t_uint64",
                            "typeString": "type(uint64)"
                          }
                        },
                        "id": 8082,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "36128:3:20",
                        "memberName": "max",
                        "nodeType": "MemberAccess",
                        "src": "36115:16:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "src": "36094:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_bytes8",
                          "typeString": "bytes8"
                        },
                        "id": 8104,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 8098,
                            "name": "__request",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8058,
                            "src": "36385:9:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                              "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                            }
                          },
                          "id": 8099,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "36395:10:20",
                          "memberName": "randomness",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6401,
                          "src": "36385:20:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes8",
                            "typeString": "bytes8"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 8102,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "36416:1:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 8101,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "36409:6:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes8_$",
                              "typeString": "type(bytes8)"
                            },
                            "typeName": {
                              "id": 8100,
                              "name": "bytes8",
                              "nodeType": "ElementaryTypeName",
                              "src": "36409:6:20",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 8103,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "36409:9:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes8",
                            "typeString": "bytes8"
                          }
                        },
                        "src": "36385:33:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "id": 8166,
                        "nodeType": "Block",
                        "src": "36938:320:20",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 8145,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "expression": {
                                      "id": 8141,
                                      "name": "block",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967292,
                                      "src": "36980:5:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_block",
                                        "typeString": "block"
                                      }
                                    },
                                    "id": 8142,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "36986:6:20",
                                    "memberName": "number",
                                    "nodeType": "MemberAccess",
                                    "src": "36980:12:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": ">=",
                                  "rightExpression": {
                                    "expression": {
                                      "id": 8143,
                                      "name": "__request",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8058,
                                      "src": "36996:9:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                        "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                      }
                                    },
                                    "id": 8144,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "37006:8:20",
                                    "memberName": "finality",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6397,
                                    "src": "36996:18:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  "src": "36980:34:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "hexValue": "66696e616c697a696e67206f6e20626c6f636b2023",
                                          "id": 8150,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "string",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "37079:23:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_stringliteral_399e5c00a46970613fe1bf6f076dbd494ddaeae6688dcf891c48abf0f5c421d3",
                                            "typeString": "literal_string \"finalizing on block #\""
                                          },
                                          "value": "finalizing on block #"
                                        },
                                        {
                                          "arguments": [
                                            {
                                              "arguments": [
                                                {
                                                  "expression": {
                                                    "id": 8155,
                                                    "name": "__request",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8058,
                                                    "src": "37149:9:20",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                                      "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                                    }
                                                  },
                                                  "id": 8156,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberLocation": "37159:8:20",
                                                  "memberName": "finality",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 6397,
                                                  "src": "37149:18:20",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_uint64",
                                                    "typeString": "uint64"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_uint64",
                                                    "typeString": "uint64"
                                                  }
                                                ],
                                                "id": 8154,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "37141:7:20",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_uint256_$",
                                                  "typeString": "type(uint256)"
                                                },
                                                "typeName": {
                                                  "id": 8153,
                                                  "name": "uint256",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "37141:7:20",
                                                  "typeDescriptions": {}
                                                }
                                              },
                                              "id": 8157,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "37141:27:20",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            ],
                                            "expression": {
                                              "id": 8151,
                                              "name": "Witnet",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 40741,
                                              "src": "37125:6:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                                "typeString": "type(library Witnet)"
                                              }
                                            },
                                            "id": 8152,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberLocation": "37132:8:20",
                                            "memberName": "toString",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 40621,
                                            "src": "37125:15:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$",
                                              "typeString": "function (uint256) pure returns (string memory)"
                                            }
                                          },
                                          "id": 8158,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "functionCall",
                                          "lValueRequested": false,
                                          "nameLocations": [],
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "37125:44:20",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_stringliteral_399e5c00a46970613fe1bf6f076dbd494ddaeae6688dcf891c48abf0f5c421d3",
                                            "typeString": "literal_string \"finalizing on block #\""
                                          },
                                          {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        ],
                                        "expression": {
                                          "id": 8148,
                                          "name": "abi",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4294967295,
                                          "src": "37040:3:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_magic_abi",
                                            "typeString": "abi"
                                          }
                                        },
                                        "id": 8149,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "memberLocation": "37044:12:20",
                                        "memberName": "encodePacked",
                                        "nodeType": "MemberAccess",
                                        "src": "37040:16:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                          "typeString": "function () pure returns (bytes memory)"
                                        }
                                      },
                                      "id": 8159,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "37040:148:20",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "id": 8147,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "37033:6:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                      "typeString": "type(string storage pointer)"
                                    },
                                    "typeName": {
                                      "id": 8146,
                                      "name": "string",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "37033:6:20",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 8160,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "37033:156:20",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 8140,
                                "name": "_require",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26494,
                                "src": "36953:8:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (bool,string memory) view"
                                }
                              },
                              "id": 8161,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "36953:251:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 8162,
                            "nodeType": "ExpressionStatement",
                            "src": "36953:251:20"
                          },
                          {
                            "expression": {
                              "expression": {
                                "id": 8163,
                                "name": "__request",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8058,
                                "src": "37226:9:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                  "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                }
                              },
                              "id": 8164,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "37236:10:20",
                              "memberName": "randomness",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6401,
                              "src": "37226:20:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes8",
                                "typeString": "bytes8"
                              }
                            },
                            "functionReturnParameters": 8055,
                            "id": 8165,
                            "nodeType": "Return",
                            "src": "37219:27:20"
                          }
                        ]
                      },
                      "id": 8167,
                      "nodeType": "IfStatement",
                      "src": "36381:877:20",
                      "trueBody": {
                        "id": 8139,
                        "nodeType": "Block",
                        "src": "36420:512:20",
                        "statements": [
                          {
                            "condition": {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 8118,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint16",
                                  "typeString": "uint16"
                                },
                                "id": 8109,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "id": 8105,
                                      "name": "__storage",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8238,
                                      "src": "36457:9:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                        "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                      }
                                    },
                                    "id": 8106,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "36457:11:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                      "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                    }
                                  },
                                  "id": 8107,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "36469:22:20",
                                  "memberName": "randomizeWaitingBlocks",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 6433,
                                  "src": "36457:34:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint16",
                                    "typeString": "uint16"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 8108,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "36494:1:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "36457:38:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&&",
                              "rightExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 8117,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 8110,
                                    "name": "block",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967292,
                                    "src": "36521:5:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_block",
                                      "typeString": "block"
                                    }
                                  },
                                  "id": 8111,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "36527:6:20",
                                  "memberName": "number",
                                  "nodeType": "MemberAccess",
                                  "src": "36521:12:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 8116,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 8112,
                                    "name": "_blockNumber",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8051,
                                    "src": "36536:12:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "expression": {
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "id": 8113,
                                        "name": "__storage",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8238,
                                        "src": "36551:9:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                          "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                        }
                                      },
                                      "id": 8114,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "36551:11:20",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                        "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                      }
                                    },
                                    "id": 8115,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "36563:22:20",
                                    "memberName": "randomizeWaitingBlocks",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6433,
                                    "src": "36551:34:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint16",
                                      "typeString": "uint16"
                                    }
                                  },
                                  "src": "36536:49:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "36521:64:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "36457:128:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "id": 8137,
                              "nodeType": "Block",
                              "src": "36848:63:20",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "hexValue": "70656e64696e672072616e646f6d697a65",
                                        "id": 8134,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "36875:19:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_06a39c1cfbbaaebf65cb621f56a07759f8e599c84ca52e82092ad3e68603dc57",
                                          "typeString": "literal_string \"pending randomize\""
                                        },
                                        "value": "pending randomize"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_stringliteral_06a39c1cfbbaaebf65cb621f56a07759f8e599c84ca52e82092ad3e68603dc57",
                                          "typeString": "literal_string \"pending randomize\""
                                        }
                                      ],
                                      "id": 8133,
                                      "name": "_revert",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 26513,
                                      "src": "36867:7:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                                        "typeString": "function (string memory) view"
                                      }
                                    },
                                    "id": 8135,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "36867:28:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 8136,
                                  "nodeType": "ExpressionStatement",
                                  "src": "36867:28:20"
                                }
                              ]
                            },
                            "id": 8138,
                            "nodeType": "IfStatement",
                            "src": "36435:476:20",
                            "trueBody": {
                              "id": 8132,
                              "nodeType": "Block",
                              "src": "36601:241:20",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint64",
                                          "typeString": "uint64"
                                        },
                                        "id": 8123,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "expression": {
                                            "id": 8120,
                                            "name": "__request",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8058,
                                            "src": "36651:9:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                              "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                            }
                                          },
                                          "id": 8121,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "36661:9:20",
                                          "memberName": "nextBlock",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 6399,
                                          "src": "36651:19:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint64",
                                            "typeString": "uint64"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">",
                                        "rightExpression": {
                                          "hexValue": "30",
                                          "id": 8122,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "36673:1:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                          },
                                          "value": "0"
                                        },
                                        "src": "36651:23:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      {
                                        "hexValue": "64656c617965643a206b6565702077616974696e67206f722072657472792072616e646f6d697a65",
                                        "id": 8124,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "36697:42:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_ab2ca8b59164d4c9e107aeeb05596f84d518213b63e19d830e604779be571297",
                                          "typeString": "literal_string \"delayed: keep waiting or retry randomize\""
                                        },
                                        "value": "delayed: keep waiting or retry randomize"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        },
                                        {
                                          "typeIdentifier": "t_stringliteral_ab2ca8b59164d4c9e107aeeb05596f84d518213b63e19d830e604779be571297",
                                          "typeString": "literal_string \"delayed: keep waiting or retry randomize\""
                                        }
                                      ],
                                      "id": 8119,
                                      "name": "_require",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 26494,
                                      "src": "36620:8:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                        "typeString": "function (bool,string memory) view"
                                      }
                                    },
                                    "id": 8125,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "36620:138:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 8126,
                                  "nodeType": "ExpressionStatement",
                                  "src": "36620:138:20"
                                },
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "expression": {
                                          "id": 8128,
                                          "name": "__request",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8058,
                                          "src": "36806:9:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                            "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                          }
                                        },
                                        "id": 8129,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "36816:9:20",
                                        "memberName": "nextBlock",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 6399,
                                        "src": "36806:19:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint64",
                                          "typeString": "uint64"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint64",
                                          "typeString": "uint64"
                                        }
                                      ],
                                      "id": 8127,
                                      "name": "_fetchRandomnessAfter",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8171,
                                      "src": "36784:21:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bytes8_$",
                                        "typeString": "function (uint256) view returns (bytes8)"
                                      }
                                    },
                                    "id": 8130,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "36784:42:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes8",
                                      "typeString": "bytes8"
                                    }
                                  },
                                  "functionReturnParameters": 8055,
                                  "id": 8131,
                                  "nodeType": "Return",
                                  "src": "36777:49:20"
                                }
                              ]
                            }
                          }
                        ]
                      }
                    },
                    "id": 8168,
                    "nodeType": "IfStatement",
                    "src": "36090:1168:20",
                    "trueBody": {
                      "id": 8097,
                      "nodeType": "Block",
                      "src": "36133:242:20",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                },
                                "id": 8088,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 8085,
                                    "name": "__request",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8058,
                                    "src": "36175:9:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                      "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                    }
                                  },
                                  "id": 8086,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "36185:9:20",
                                  "memberName": "nextBlock",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 6399,
                                  "src": "36175:19:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 8087,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "36197:1:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "36175:23:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              {
                                "hexValue": "6661696c65643a2072657472792072616e646f6d697a65",
                                "id": 8089,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "36217:25:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_87b345d5d8f48851d4ab902df8da675bc16d9a03e9e272c454d9e0e928b034d1",
                                  "typeString": "literal_string \"failed: retry randomize\""
                                },
                                "value": "failed: retry randomize"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_87b345d5d8f48851d4ab902df8da675bc16d9a03e9e272c454d9e0e928b034d1",
                                  "typeString": "literal_string \"failed: retry randomize\""
                                }
                              ],
                              "id": 8084,
                              "name": "_require",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26494,
                              "src": "36148:8:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                "typeString": "function (bool,string memory) view"
                              }
                            },
                            "id": 8090,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "36148:109:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 8091,
                          "nodeType": "ExpressionStatement",
                          "src": "36148:109:20"
                        },
                        {
                          "expression": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 8093,
                                  "name": "__request",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8058,
                                  "src": "36319:9:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Randomize_$6404_storage_ptr",
                                    "typeString": "struct WitRandomnessV3.Randomize storage pointer"
                                  }
                                },
                                "id": 8094,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "36329:9:20",
                                "memberName": "nextBlock",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6399,
                                "src": "36319:19:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "id": 8092,
                              "name": "_fetchRandomnessAfter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8171,
                              "src": "36279:21:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bytes8_$",
                                "typeString": "function (uint256) view returns (bytes8)"
                              }
                            },
                            "id": 8095,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "36279:74:20",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes8",
                              "typeString": "bytes8"
                            }
                          },
                          "functionReturnParameters": 8055,
                          "id": 8096,
                          "nodeType": "Return",
                          "src": "36272:81:20"
                        }
                      ]
                    }
                  },
                  "id": 8169,
                  "nodeType": "IfStatement",
                  "src": "35922:1336:20",
                  "trueBody": {
                    "id": 8075,
                    "nodeType": "Block",
                    "src": "35950:134:20",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 8071,
                                  "name": "_blockNumber",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8051,
                                  "src": "36034:12:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 8070,
                                "name": "getRandomizeNextBlock",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7022,
                                "src": "36012:21:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                                  "typeString": "function (uint256) view returns (uint256)"
                                }
                              },
                              "id": 8072,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "36012:35:20",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 8069,
                            "name": "_fetchRandomnessAfter",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8171,
                            "src": "35972:21:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bytes8_$",
                              "typeString": "function (uint256) view returns (bytes8)"
                            }
                          },
                          "id": 8073,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "35972:90:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes8",
                            "typeString": "bytes8"
                          }
                        },
                        "functionReturnParameters": 8055,
                        "id": 8074,
                        "nodeType": "Return",
                        "src": "35965:97:20"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 8171,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_fetchRandomnessAfter",
            "nameLocation": "35717:21:20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8052,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8051,
                  "mutability": "mutable",
                  "name": "_blockNumber",
                  "nameLocation": "35747:12:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 8171,
                  "src": "35739:20:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8050,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "35739:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "35738:22:20"
            },
            "returnParameters": {
              "id": 8055,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8054,
                  "mutability": "mutable",
                  "name": "_randomness",
                  "nameLocation": "35818:11:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 8171,
                  "src": "35811:18:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes8",
                    "typeString": "bytes8"
                  },
                  "typeName": {
                    "id": 8053,
                    "name": "bytes8",
                    "nodeType": "ElementaryTypeName",
                    "src": "35811:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes8",
                      "typeString": "bytes8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "35810:20:20"
            },
            "scope": 8239,
            "src": "35708:1557:20",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8202,
              "nodeType": "Block",
              "src": "37543:194:20",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8183,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8181,
                            "name": "_target",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8174,
                            "src": "37562:7:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "id": 8182,
                            "name": "_latest",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8176,
                            "src": "37573:7:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "37562:18:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "arguments": [
                            {
                              "id": 8191,
                              "name": "_target",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8174,
                              "src": "37669:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "baseExpression": {
                                  "expression": {
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "id": 8192,
                                      "name": "__storage",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8238,
                                      "src": "37678:9:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                        "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                      }
                                    },
                                    "id": 8193,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "37678:11:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                      "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                    }
                                  },
                                  "id": 8194,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "37690:8:20",
                                  "memberName": "requests",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 6445,
                                  "src": "37678:20:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                                    "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize storage ref)"
                                  }
                                },
                                "id": 8196,
                                "indexExpression": {
                                  "id": 8195,
                                  "name": "_latest",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8176,
                                  "src": "37699:7:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "37678:29:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Randomize_$6404_storage",
                                  "typeString": "struct WitRandomnessV3.Randomize storage ref"
                                }
                              },
                              "id": 8197,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "37708:9:20",
                              "memberName": "prevBlock",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6403,
                              "src": "37678:39:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 8190,
                            "name": "_searchNextBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8203,
                            "src": "37652:16:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,uint256) view returns (uint256)"
                            }
                          },
                          "id": 8198,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "37652:66:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8199,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "37562:156:20",
                        "trueExpression": {
                          "expression": {
                            "baseExpression": {
                              "expression": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 8184,
                                  "name": "__storage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8238,
                                  "src": "37597:9:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                    "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                  }
                                },
                                "id": 8185,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "37597:11:20",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                  "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                }
                              },
                              "id": 8186,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "37609:8:20",
                              "memberName": "requests",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6445,
                              "src": "37597:20:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                                "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize storage ref)"
                              }
                            },
                            "id": 8188,
                            "indexExpression": {
                              "id": 8187,
                              "name": "_latest",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8176,
                              "src": "37618:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "37597:29:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Randomize_$6404_storage",
                              "typeString": "struct WitRandomnessV3.Randomize storage ref"
                            }
                          },
                          "id": 8189,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "37627:9:20",
                          "memberName": "nextBlock",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6399,
                          "src": "37597:39:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 8200,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "37561:168:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 8180,
                  "id": 8201,
                  "nodeType": "Return",
                  "src": "37554:175:20"
                }
              ]
            },
            "documentation": {
              "id": 8172,
              "nodeType": "StructuredDocumentation",
              "src": "37273:172:20",
              "text": "@dev Recursively searches for the number of the first block after the given one in which a Witnet \n @dev randomness request was posted. Returns 0 if none found."
            },
            "id": 8203,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_searchNextBlock",
            "nameLocation": "37460:16:20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8177,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8174,
                  "mutability": "mutable",
                  "name": "_target",
                  "nameLocation": "37485:7:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 8203,
                  "src": "37477:15:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8173,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "37477:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8176,
                  "mutability": "mutable",
                  "name": "_latest",
                  "nameLocation": "37502:7:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 8203,
                  "src": "37494:15:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8175,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "37494:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "37476:34:20"
            },
            "returnParameters": {
              "id": 8180,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8179,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8203,
                  "src": "37534:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8178,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "37534:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "37533:9:20"
            },
            "scope": 8239,
            "src": "37451:286:20",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8229,
              "nodeType": "Block",
              "src": "38016:160:20",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8215,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8213,
                            "name": "_target",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8206,
                            "src": "38035:7:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "id": 8214,
                            "name": "_latest",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8208,
                            "src": "38045:7:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "38035:17:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "arguments": [
                            {
                              "id": 8218,
                              "name": "_target",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8206,
                              "src": "38108:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "baseExpression": {
                                  "expression": {
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "id": 8219,
                                      "name": "__storage",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8238,
                                      "src": "38117:9:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$6446_storage_ptr_$",
                                        "typeString": "function () pure returns (struct WitRandomnessV3.Storage storage pointer)"
                                      }
                                    },
                                    "id": 8220,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "38117:11:20",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                                      "typeString": "struct WitRandomnessV3.Storage storage pointer"
                                    }
                                  },
                                  "id": 8221,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "38129:8:20",
                                  "memberName": "requests",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 6445,
                                  "src": "38117:20:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Randomize_$6404_storage_$",
                                    "typeString": "mapping(uint256 => struct WitRandomnessV3.Randomize storage ref)"
                                  }
                                },
                                "id": 8223,
                                "indexExpression": {
                                  "id": 8222,
                                  "name": "_latest",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8208,
                                  "src": "38138:7:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "38117:29:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Randomize_$6404_storage",
                                  "typeString": "struct WitRandomnessV3.Randomize storage ref"
                                }
                              },
                              "id": 8224,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "38147:9:20",
                              "memberName": "prevBlock",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6403,
                              "src": "38117:39:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 8217,
                            "name": "_searchPrevBlock",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8230,
                            "src": "38091:16:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,uint256) view returns (uint256)"
                            }
                          },
                          "id": 8225,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "38091:66:20",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8226,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "38035:122:20",
                        "trueExpression": {
                          "id": 8216,
                          "name": "_latest",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8208,
                          "src": "38068:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 8227,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "38034:134:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 8212,
                  "id": 8228,
                  "nodeType": "Return",
                  "src": "38027:141:20"
                }
              ]
            },
            "documentation": {
              "id": 8204,
              "nodeType": "StructuredDocumentation",
              "src": "37745:173:20",
              "text": "@dev Recursively searches for the number of the first block before the given one in which a Witnet \n @dev randomness request was posted. Returns 0 if none found."
            },
            "id": 8230,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_searchPrevBlock",
            "nameLocation": "37933:16:20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8209,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8206,
                  "mutability": "mutable",
                  "name": "_target",
                  "nameLocation": "37958:7:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 8230,
                  "src": "37950:15:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8205,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "37950:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8208,
                  "mutability": "mutable",
                  "name": "_latest",
                  "nameLocation": "37975:7:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 8230,
                  "src": "37967:15:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8207,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "37967:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "37949:34:20"
            },
            "returnParameters": {
              "id": 8212,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8211,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8230,
                  "src": "38007:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8210,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "38007:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "38006:9:20"
            },
            "scope": 8239,
            "src": "37924:252:20",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8237,
              "nodeType": "Block",
              "src": "38250:94:20",
              "statements": [
                {
                  "AST": {
                    "nativeSrc": "38270:67:20",
                    "nodeType": "YulBlock",
                    "src": "38270:67:20",
                    "statements": [
                      {
                        "nativeSrc": "38285:41:20",
                        "nodeType": "YulAssignment",
                        "src": "38285:41:20",
                        "value": {
                          "name": "_WIT_RANDOMNESS_STORAGE_SLOT",
                          "nativeSrc": "38298:28:20",
                          "nodeType": "YulIdentifier",
                          "src": "38298:28:20"
                        },
                        "variableNames": [
                          {
                            "name": "_ptr.slot",
                            "nativeSrc": "38285:9:20",
                            "nodeType": "YulIdentifier",
                            "src": "38285:9:20"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "prague",
                  "externalReferences": [
                    {
                      "declaration": 6392,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "38298:28:20",
                      "valueSize": 1
                    },
                    {
                      "declaration": 8234,
                      "isOffset": false,
                      "isSlot": true,
                      "src": "38285:9:20",
                      "suffix": "slot",
                      "valueSize": 1
                    }
                  ],
                  "id": 8236,
                  "nodeType": "InlineAssembly",
                  "src": "38261:76:20"
                }
              ]
            },
            "id": 8238,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__storage",
            "nameLocation": "38193:9:20",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8231,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "38202:2:20"
            },
            "returnParameters": {
              "id": 8235,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8234,
                  "mutability": "mutable",
                  "name": "_ptr",
                  "nameLocation": "38244:4:20",
                  "nodeType": "VariableDeclaration",
                  "scope": 8238,
                  "src": "38228:20:20",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                    "typeString": "struct WitRandomnessV3.Storage"
                  },
                  "typeName": {
                    "id": 8233,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 8232,
                      "name": "Storage",
                      "nameLocations": [
                        "38228:7:20"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 6446,
                      "src": "38228:7:20"
                    },
                    "referencedDeclaration": 6446,
                    "src": "38228:7:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Storage_$6446_storage_ptr",
                      "typeString": "struct WitRandomnessV3.Storage"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "38227:22:20"
            },
            "scope": 8239,
            "src": "38184:160:20",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 8240,
        "src": "3208:35139:20",
        "usedErrors": [
          16,
          19,
          281,
          286,
          40752,
          42702,
          42708
        ],
        "usedEvents": [
          24,
          292,
          28439,
          28448,
          45361,
          45638
        ]
      }
    ],
    "src": "35:38314:20"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.30+commit.73712a01.Emscripten.clang"
  },
  "networks": {
    "84532": {
      "events": {},
      "links": {},
      "address": "0xC0FFee84CC8a7A033B55fFc0cc6Bf3087136d391"
    },
    "11142220": {
      "events": {},
      "links": {},
      "address": "0xC0FFEE00B76e0E48b967f2963ae6190dA32a536C"
    },
    "11155111": {
      "events": {},
      "links": {},
      "address": "0xC0FFee84CC8a7A033B55fFc0cc6Bf3087136d391"
    },
    "11155420": {
      "events": {},
      "links": {},
      "address": "0xC0FFee84CC8a7A033B55fFc0cc6Bf3087136d391"
    }
  },
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-10-15T14:34:45.440Z",
  "devdoc": {
    "author": "The Witnet Foundation.",
    "details": "Protection against race-condition and malleability attacks requires randomness queried to this contract to be solved is an asynchronous way, meaning that after some randomness is requested, the result provided from the Wit/Oracle sidechain won't be ready until a certain amount of EVM blocks have elapsed.  This protection also implies that eventually failing randomness requests on the Wit/Oracle sidechain  cannot be retried but from this very same contract. Failing randomness requests will get all automatically and unbiasedly solved as soon as some new randomness request gets solved, even if paid by a different requester. Querying for new randomness requires paying a fee in native EVM gas currency, as to cover the implicit cost of solving unmalleable randomness on the Wit/Oracle sidechain and report it back to the EVM storage. The actual  randomize fee depends on the expected gas price to pay for the EVM transaction that would eventually include  a call to any of the `randomize(..)` methods of this contract. The randomize fee can be computed by passing the expected gas price value to the `estimateRandomizeFee(uint256)` method. > Note [1]: On highly volatile gas price markets, especially on some Layer-2 EVM chains, is highly recommended to estimate the randomize fee before a `randomize()` call, and pass a fresh EVM gas price value. Otherwise the call to `randomize()` could potentially revert with either \"insufficient reward\" or \"too much reward\". > Note [2]: Contracts requiring some external entity to report Witnet-certified randomness only when required, would need to implement the `IWitRandomnessConsumer`. The external entity would then have to clone the  public-domain address, attach it to the consumer contract address, and get the `randomize()` function called on the cloned instance as many times as required.",
    "errors": {
      "InvalidInitialization()": [
        {
          "details": "The contract is already initialized."
        }
      ],
      "NotInitializing()": [
        {
          "details": "The contract is not initializing."
        }
      ],
      "OwnableInvalidOwner(address)": [
        {
          "details": "The owner is not a valid owner account. (eg. `address(0)`)"
        }
      ],
      "OwnableUnauthorizedAccount(address)": [
        {
          "details": "The caller account is not authorized to perform an operation."
        }
      ]
    },
    "events": {
      "Initialized(uint64)": {
        "details": "Triggered when the contract has been initialized or reinitialized."
      }
    },
    "kind": "dev",
    "methods": {
      "clone(address)": {
        "params": {
          "_curator": "Address that will have authoritative access to `IWitRandomnessAdmin` methods."
        }
      },
      "consumer()": {
        "details": "If zero, generated randomness will not be reported to any other external address. The consumer contract must implement the `IWitRandomnessConsumer` interface, and accept this instance as source of entropy.It can only be settled by a curator on cloned instances."
      },
      "fetchRandomnessAfter(uint256)": {
        "details": "Reverts if:    i.   no `randomize()` was queried on neither the given block, nor afterwards.    ii.  the first non-failing `randomize()` request found on or after the given block is not solved yet.    iii. all `randomize()` requests that took place on or after the given block were solved with errors.",
        "params": {
          "_blockNumber": "Block number from which the search will start."
        }
      },
      "fetchRandomnessAfterProof(uint256)": {
        "details": "Reverts if:    i.   no `randomize()` was queried on neither the given block, nor afterwards.    ii.  the first non-failing `randomize()` request found on or after the given block is not solved yet.    iii. all `randomize()` requests that took place on or after the given block were solved with errors.",
        "params": {
          "_blockNumber": "Block number from which the search will start."
        },
        "returns": {
          "_evmFinalityBlock": "EVM block number at which the generated randomness can be considered to be final.",
          "_witnetDrTxHash": "Hash of the witnessing commit/reveal act that took place on the Witnet blockchain.",
          "_witnetQueryUUID": "Universal identifier of the query posted from this contract that ultimately solved randomness.",
          "_witnetTimestamp": "Timestamp at which the randomness value was generated by the Witnet blockchain."
        }
      },
      "getRandomizeData(uint256)": {
        "details": "Returns zero values if no randomize request was actually queried on the specified block number.",
        "params": {
          "_blockNumber": "Block number from which the search will start."
        },
        "returns": {
          "_nextRandomizeBlock": "Block number in which a randomize request got queried just after this one, 0 if none.",
          "_prevRandomizeBlock": "Block number in which a randomize request got queried just before this one. 0 if none.",
          "_queryId": "Identifier of the underlying Wit/Oracle query created on the specified block number. "
        }
      },
      "getRandomizeNextBlock(uint256)": {
        "params": {
          "_blockNumber": "Block number from which the search will start."
        },
        "returns": {
          "_0": "Number of the first block found after the given one, or `0` otherwise."
        }
      },
      "getRandomizePrevBlock(uint256)": {
        "params": {
          "_blockNumber": "Block number from which the search will start. Cannot be zero."
        },
        "returns": {
          "_0": "First block found before the given one, or `0` otherwise."
        }
      },
      "getRandomizeQueryId(uint256)": {
        "details": "Returns zero if no randomize was request on or after the specified block number."
      },
      "getRandomizeQueryParams()": {
        "returns": {
          "_callbackGasLimit": "Max. expendable gas upon randomness delivery.",
          "_extraFeePercentage": "Overhead percentage applied when estimating the randomize request fee. ",
          "_witCommitteeSize": "Number of Witnet witnessing nodes required to generate unbiased randomness.",
          "_witInclusionFees": "Minimum amount of fees in $nanoWIT to be paid on the Witnet blockchain."
        }
      },
      "randomize()": {
        "details": "Only one randomize request per block will get ultimately relayed to the Witnet blockchain.",
        "returns": {
          "_evmUsedFunds": "EVM funds actually paid as randomize fee."
        }
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
      },
      "reportWitOracleQueryResult(uint256,bytes)": {
        "details": "It should revert if called from an address different to the WitOracle instance being used by consumer.",
        "params": {
          "queryId": "The unique identifier of the Witnet query being reported.",
          "queryResult": "Abi-encoded Witnet.DataResult containing the CBOR-encoded query's result, and metadata."
        }
      },
      "reportableFrom(address)": {
        "details": "In practice, must only be true on the WitOracle address that's being used bythe consumer contract to post data queries. "
      }
    },
    "stateVariables": {
      "_DEFAULT_RANDOMIZE_WAITING_BLOCKS": {
        "details": "Default number of blocks after a randomize request to consider it delayed if not solved yet."
      },
      "_WIT_ORACLE_MIN_CALLBACK_GAS_LIMIT": {
        "details": "Minimum acceptable callback gas limit that can be settled by the `owner()`. "
      },
      "_WIT_ORACLE_RNG_MAX_RESULT_SIZE": {
        "details": "Size of successful CBOR-encoded randomness generated by the Witnet blockchain. "
      },
      "_WIT_RANDOMNESS_STORAGE_SLOT": {
        "details": "Storage slot pointer"
      },
      "__WIT_ORACLE_RNG_RADON_HASH": {
        "details": "Can be used to track all randomness requests solved so far on the Witnet blockchain."
      }
    },
    "title": "WitRandomnessV3: Unbiased, EVM-agnostic and provably-fair random seeds from the Witnet blockchain.   64-bit entropy seeds can be permissionless pulled at anytime from smart contracts and externally-owned EVM accounts.  Randomness provisioning is securely protected against race-condition and malleability attacks by node validators on both EVM and Witnet blockchains.  This contract acts also as a public-good registry, openly preserving all random seeds generated in the past, and providing after-the-fact traceability proof to the actual witnessing committees and punishable acts that took place on the Witnet blockchain for generating every single one of them.",
    "version": 1
  },
  "userdoc": {
    "events": {
      "Randomized(uint256,uint256,bytes32)": {
        "notice": "Emitted when some requested randomness gets delivered from Witnet."
      },
      "Randomizing(address,uint256,uint64)": {
        "notice": "Emitted when a new randomize request gets posted to the Wit/Oracle framework."
      }
    },
    "kind": "user",
    "methods": {
      "acceptOwnership()": {
        "notice": "=============================================================================================================== --- IWitRandomnessAdmin -------------------------------------------------------------------------------------"
      },
      "base()": {
        "notice": "Address of the underlying logic contract that can be potentially cloned."
      },
      "class()": {
        "notice": "Returns the name of the actual contract implementing the logic of this Witnet appliance."
      },
      "clone(address)": {
        "notice": "Creates a light-proxy clone to the `base()` logic address, to be owned by the specified `curator`address. Curators of cloned instances can optionally settle one single `IWitRandomnessConsumer` consuming contract. The consuming contract, if settled, will be immediately reported every time a new `randomize()` request gets solved and bridged back from Witnet. Either way, randomness resolutions will be reamin stored in the  `WitRandomness` storage, as for future reference. "
      },
      "cloned()": {
        "notice": "Tells whether this contract is a clone of `self()`"
      },
      "consumer()": {
        "notice": "Returns the consumer address where all valid randomize results will be reported to."
      },
      "estimateRandomizeFee(uint256)": {
        "notice": "Returns amount of wei required to be paid as a fee when requesting randomization with a  transaction gas price as the one given."
      },
      "fetchRandomnessAfter(uint256)": {
        "notice": "Retrieves the result of keccak256-hashing the given block number with the randomness value  generated by the Witnet blockchain in response to the first non-failing randomize request solved  after such block number."
      },
      "fetchRandomnessAfterProof(uint256)": {
        "notice": "Retrieves the actual random value, unique hash and timestamp of the witnessing commit/reveal act  that took place in the Witnet blockchain in response to the first non-failing randomize query solved after the given block number."
      },
      "getLastRandomizeBlock()": {
        "notice": "Returns last block number on which a randomize was requested."
      },
      "getRandomizeData(uint256)": {
        "notice": "Retrieves metadata related to the randomize request that got queried to the`WitOracle` contract  on the specified block number, if any."
      },
      "getRandomizeNextBlock(uint256)": {
        "notice": "Returns the number of the next block in which a randomize request was posted after the given one. "
      },
      "getRandomizePrevBlock(uint256)": {
        "notice": "Returns the number of the previous block in which a randomize request was posted before the given one."
      },
      "getRandomizeQueryErrorDescription(uint256)": {
        "notice": "Explains why the last attempt of generating randomness for the specified block number failed."
      },
      "getRandomizeQueryId(uint256)": {
        "notice": "Returns the identifier of the Wit/Oracle query that has either solved randomness for the specified block number, is currently attending randomness for the specified block number, of the one that attempted to solve it. "
      },
      "getRandomizeQueryParams()": {
        "notice": "Returns security and liveness parameters required to the Witnet blockchain  when solving randomness requests, if no others are specified."
      },
      "getRandomizeRadonBytecode()": {
        "notice": "Returns the immutable bytecode of the Radon Request that's being used  for solving randomness requests on the Witnet blockchain."
      },
      "getRandomizeRadonHash()": {
        "notice": "Returns the unique identifier of the Radon Request that's being used  for solving request randomness requests on the Witnet blockchain."
      },
      "getRandomizeStatus(uint256)": {
        "notice": "Returns status of the first non-errored randomize request queried on or after the given block number.  - 0 -> Void: no randomize request was actually queried on or after the given block number.  - 1 -> Awaiting: a randomize request was found but it's not yet solved by the Wit/Oracle.  - 2 -> Ready: a successfull randomize value was reported and is ready to be read.  - 3 -> Error: all attempted randomize requests at or after the given block were solved with errors.  - 4 -> Finalizing: a randomize result was relayed already but cannot yet be considered to be final."
      },
      "getRandomizeWaitingBlocks()": {
        "notice": "Return the number of EVM blocks after a randomize requests that have to elapse before considering such request to be delayed. Results to delayed requests can potentially be provided by later requests, if solved earlier. A value of zero means that randomize  requests will never expire. "
      },
      "initialized()": {
        "notice": "=============================================================================================================== --- Clonable --------------------------------------------------------------------------------------------------"
      },
      "isRandomized(uint256)": {
        "notice": "Returns `true` only if a successfull resolution from the Witnet blockchain is found for the first  non-errored randomize request posted on or after the given block number."
      },
      "randomize()": {
        "notice": "Requests the Witnet blockchain to generate an unbiased 64-bit random seed."
      },
      "reportWitOracleQueryResult(uint256,bytes)": {
        "notice": "Method to be called from the witOracle contract as soon as the given Witnet `queryId` gets reported."
      },
      "reportableFrom(address)": {
        "notice": "Determines if Witnet queries can be reported from given address."
      },
      "specs()": {
        "notice": "Returns the ERC-165 id of the minimal functionality expected for this appliance."
      },
      "verifyRandomnessAfter(uint256,bytes32)": {
        "notice": "Verifies that the specified randomness seed was actually generated on the Witnet blockchain, and was actually used for producing the randomness seed returned by `fetchRandomnessAfter`."
      },
      "witOracle()": {
        "notice": "The Wit/Oracle core address accepted as source of entropy."
      }
    },
    "version": 1
  }
}